JPH05258051A - Batch execution device for tile base image rotation, scaling, and digital half-tone screening - Google Patents

Batch execution device for tile base image rotation, scaling, and digital half-tone screening

Info

Publication number
JPH05258051A
JPH05258051A JP4210530A JP21053092A JPH05258051A JP H05258051 A JPH05258051 A JP H05258051A JP 4210530 A JP4210530 A JP 4210530A JP 21053092 A JP21053092 A JP 21053092A JP H05258051 A JPH05258051 A JP H05258051A
Authority
JP
Japan
Prior art keywords
pixel
tile
block
output
contone
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.)
Pending
Application number
JP4210530A
Other languages
Japanese (ja)
Inventor
Jr John F Hamilton
フランクリン ハミルトン ジュニア ジョン
Iii Anthony J Leone
ジェームス レオン三世 アンソニー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Eastman Kodak Co
Original Assignee
Eastman Kodak Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Eastman Kodak Co filed Critical Eastman Kodak Co
Publication of JPH05258051A publication Critical patent/JPH05258051A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE: To adjust contone through image rotation, anamorphic scaling, and digital half-tone screening which are used when a page description language is executed. CONSTITUTION: A two-dimensional sampling increment is defined in a slow-speed scanning direction so as to rotate the contone image and make the anamorphic scaling effective, and a movement quantity between successive pixels is related to a corresponding pixel-topixel movement quantity in the contone image. A sampling increment is also defined in high and slow scanning directions for a movement quantity between half-tone scaling cells according to a screen angle and screen ruling. To generate output data at each successive pixel position, increment sampling is performed in the contone image to generate a sampled contone value. This value defines a sampling position together with an increment half-tone sampling address. Each title is successively processed in two nested loops and the output data are written at a proper pixel position of a corresponding block.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、イメージ回転、スケー
リングおよびデジタル中間調スクリーニングを介して継
続的階調(連続トーン)イメージを操作する能力を有す
る、ページ記述言語の実行中に発生する電子イメージ処
理に関する。
FIELD OF THE INVENTION This invention relates to electronic images generated during execution of a page description language having the ability to manipulate continuous tone images through image rotation, scaling and digital halftone screening. Regarding processing.

【0002】[0002]

【従来の技術】本出願の内容は、J. F. Hamilton, Jr.
他からの同日付の合衆国特許出願、出願番号741,877
「イメージ回転、スケーリングおよびデジタル中間調ス
クリーニングをまとめて実行するタイル方式の処理方
法」と称する出願においても記載されている(日本出願
も同日付でなされている)。
BACKGROUND OF THE INVENTION The content of this application is JF Hamilton, Jr.
US patent application of the same date from others, application number 741,877
It is also described in an application entitled "Tile-based processing method for collectively performing image rotation, scaling, and digital halftone screening" (the Japanese application is also filed on the same date).

【0003】情報を読者に伝える効率的な方法として、
必ずイメージが文書に組み込まれてきた。イメージ関連
アプリケーションの多様化した配列をコンピュータ処理
することと、パソコンの爆発的使用により、イメージを
デジタルの形で操作する必要性が増加した。当該操作に
は、特に、スケーリング、回転、中間調処理(ハーフト
ーン処理:halftoning)が含まれることが多い。
As an efficient way to convey information to the reader,
Images have always been incorporated into documents. The need for computer manipulation of diversified arrays of image-related applications and the explosive use of personal computers has increased the need for manipulating images in digital form. In particular, the operations often include scaling, rotation, and halftone processing (halftoning).

【0004】数年前に使用され始めて以来、今日まで増
えつづけてきたが、文書イメージはページ記述言語と呼
ばれるコンピュータで処理されることが多い。当該言語
によって、ユーザは、イメージのような印刷ページに現
れる物体を定義することができ、また、当該物体を所望
の方法で処理し、相互に正確な位置決めをおこなって、
ページ全体を適切に形成することができる。デジタルイ
メージ処理においてユーザに最大のフレキシビリティー
を提供するために、ページ記述言語は、有限範囲内で任
意の均一なイメージおよびアナモフィックイメージのス
ケーリング、任意角度のイメージ回転、および任意のス
クリーン角度およびスクリーンルーリングでの中間調処
理を、浮動少数点精度で支援する必要がある。文書イメ
ージをページ上の他の物体と確実に正しく「合わせる」
ために、当該イメージ処理機能は、非常に精密に実行さ
れなけばならない。そうでないと、印刷時に人工不純物
あるいは別のエラーがページ上に現れる。
Document images are often processed by computers called page description languages, which have been in use ever since they began to be used several years ago. The language allows the user to define the objects that appear on the printed page, such as images, and to process the objects in a desired way to position them accurately relative to each other.
The entire page can be properly formed. To provide the user with maximum flexibility in digital image processing, the page description language uses a scaling of arbitrary uniform and anamorphic images within a finite range, arbitrary image rotation, and arbitrary screen angles and screens. It is necessary to support halftone processing in ruling with floating point precision. Ensures that document images are properly "aligned" with other objects on the page
Therefore, the image processing function must be performed very precisely. Otherwise, artifacts or other errors will appear on the page when printing.

【0005】現在数個の異なるページ記述言語が使用さ
れているが、なかでも、イメージスケーリングおよびイ
メージ回転を実施する場合に伝統的に実行されてきた2
つの基本的なアプローチには、重大な制限が存在する。
There are currently several different page description languages in use, among which traditionally they have been implemented when performing image scaling and image rotation.
There are significant limitations to the two basic approaches.

【0006】詳細には、当該技術に広く使用されている
1つの基本的アプローチは、全体イメージのランダムア
クセスフレームメモリーへの格納、および、当該メモリ
ーに位置するイメージの個々のビットでの動作に左右さ
れる。当該アプローチ(以下、「フルフレームメモリ
ー」アプローチと言う)は、回転イメージを作りだすべ
き適切に回転したイメージデータを生成するために、適
切な増分メモリーアドレスを使用して、ビットごとのイ
メージの順次読取り処理を含むことができる。当該技術
で公知の通り、スケーリングは、例えば、所望の通りに
イメージのスケールを変更するために、メモリー内の選
択画素位置へのデータの追加あるいは当該画素位置から
のデータの削除を含めることができる。この全体的アプ
ローチは、比較的高速な読取り/書込みランダムアクセ
スも提供できる十分な規模のフレームメモリを要求す
る。残念ながら、現在利用できる出力ライター、すなわ
ち、レーザープリンタで得られる300 ドット/インチの
解像度で印刷される8 ×10インチ(約20×25 cm)の連続
階調イメージの場合は、フレームメモリーには、約7メ
ガバイトが要求されるであろう。当該サイズのメモリー
は、特に、現在利用できる高速ランダムアクセスメモリ
ー(RAM)回路で製造すると非常に高くなる傾向がある。
当該フレームメモリーの価格が法外なために、一般に、
低価格のプリンタには使用できない。さらに、当該大規
模高速メモリーをもってしても、イメージスケーリング
およびイメージ回転は、マイクロプロッセサで実行する
ソフトウェアベースのプロセスで実行されることが多
く、全体イメージの場合には、比較的低速となる傾向が
ある。
In particular, one basic approach that is widely used in the art depends on storing the entire image in a random access frame memory and operating on individual bits of the image located in that memory. To be done. This approach (hereinafter referred to as the "full-frame memory" approach) uses bitwise sequential reading of the image using the appropriate incremental memory address to produce properly rotated image data that should produce a rotated image. Processing can be included. As is known in the art, scaling can include, for example, adding data to or removing data from selected pixel locations in memory to change the scale of the image as desired. .. This holistic approach requires a frame memory of sufficient size to also provide relatively fast read / write random access. Unfortunately, for currently available output writers, ie, 8 x 10 inch (20 x 25 cm) continuous tone images printed at 300 dot / inch resolution available on laser printers, the frame memory will not , About 7 megabytes will be required. Memories of that size tend to be very expensive, especially when manufactured with currently available high speed random access memory (RAM) circuits.
Due to the exorbitant price of the frame memory,
Not available for low cost printers. Moreover, even with this large amount of fast memory, image scaling and image rotation are often performed in software-based processes running on microprocessors, which tend to be relatively slow for whole images. There is.

【0007】実際的なメモリー制限の点については、当
該技術は、スケーリングおよび回転が「タイルベース」
のアプローチで交互に前もって形成されうることも教示
した。ここでは、イメージは、先ず、「タイル」と呼ば
れる小さな均一の領域に区分される。次に、区分された
各タイルは別々に適切に処理される。通常、1つのタイ
ルは、全体イメージより相当に小さい。一旦タイルが処
理されて出力タイルを作りだすと、当該出力タイルは、
次に、出力バッファなどの空間的に対応する領域に書き
込まれる。全体イメージが出力タイルで形成されるま
で、全タイルに対して処理がおこなわれる。
In terms of practical memory limits, the technique is "tile based" in scaling and rotation.
It has also been taught that the alternative approach can be pre-formed alternately. Here, the image is first divided into small uniform areas called "tiles". Then, each partitioned tile is processed separately and appropriately. Usually, one tile is significantly smaller than the whole image. Once the tiles have been processed to produce an output tile, the output tile
Then, it is written to a spatially corresponding area such as an output buffer. All tiles are processed until the entire image is formed of output tiles.

【0008】当該2つのアプローチが与えられることか
ら、タイリングは、幾つかの顕著な利点を提供する。第
1に、全体イメージの大きさから1つのタイルサイズを
大幅に縮小させることによって、高速フレームメモリー
に対するメモリー要件は減少する。例えば、全体イメー
ジの格納には7メガバイト必要であるが、現在処理され
ている1つの単一タイルの格納に必要なバイト数は約10
キロバイトに減少すると思われる。すると、大規模フル
サイズ高速フレームメモリーの必要性がなくなり、シス
テムメモリーを単純化でき、当該システムメモリーの価
格を相当に引き下げる。イメージサイズ出力バッファは
依然として必要とされるであろうが、当該バッファは、
高速ランダムアクセスメモリーとして機能する必要はな
くなるであろう。その結果、当該バッファは、比較的低
速、かつ、低価格のメモリー回路で製造することができ
る。さらに、1度に1つの単一タイルを処理することに
よって、フレームメモリーを含むデータ転送は、「フル
フレームメモリー」アプローチにおける全体イメージの
タイルではなく特別のタイルにだけ要求されるデータに
減少される。その結果、当該メモリー転送の実行に必要
な操作は非常に単純化され、全体的なタイルベース処理
の中では重要でなくなる。さらに、比較的少量のデータ
だけを一回で処理することにより、特定のハードウェア
回路が簡単に製造されて全体タイルを高速処理できる。
これにより、「フルフレームメモリー」アプローチの時
のスピードを超えて全体イメージが回転および/あるい
はスケール速度を高速化できる。最後に、タイルベース
実施は、パイプラインおよび並列処理に適している。当
該処理により適切なタイル処理ハードウェアは、平行お
よび時間交互ベースで複写および演算されて、数個のタ
イルが1度に一括処理される。これによって、イメージ
スケーリングおよび/あるいは回転の全体的処理をさら
に加速する。都合のよいことに、当該手段は、コスト:
パフォーマンストレードオフに合致して、簡単に大形サ
イズでスケーリングされ、所望の処理能力レベルを達成
できる。
Given the two approaches given, tiling offers several significant advantages. First, by significantly reducing the size of one tile from the size of the entire image, the memory requirements for fast frame memory are reduced. For example, it takes 7 megabytes to store an entire image, but about 10 bytes are currently needed to store one single tile being processed.
It seems to be reduced to kilobytes. Then, there is no need for a large-scale full-size high-speed frame memory, the system memory can be simplified, and the price of the system memory is considerably reduced. An image size output buffer would still be needed, but
It would no longer be necessary to act as a fast random access memory. As a result, the buffer can be manufactured with a relatively slow and inexpensive memory circuit. Furthermore, by processing one single tile at a time, the data transfer involving frame memory is reduced to the data required only for a particular tile rather than the tile of the whole image in the "full frame memory" approach. . As a result, the operations required to perform that memory transfer are greatly simplified and become insignificant in the overall tile-based processing. Moreover, by processing only a relatively small amount of data at once, certain hardware circuits can be easily manufactured to process the entire tile at high speed.
This allows the whole image to be rotated and / or scaled faster than the speed of the "full frame memory" approach. Finally, tile-based implementation is suitable for pipeline and parallel processing. Appropriate tile processing hardware is copied and operated on this parallel and time alternating basis by this process to batch process several tiles at once. This further accelerates the overall processing of image scaling and / or rotation. Conveniently, the means cost:
Consistent with performance trade-offs, it can be easily scaled to larger sizes to achieve desired throughput levels.

【0009】[0009]

【発明が解決しようとする課題】残念なことに、タイル
ベーススケーリングおよび回転によって示された利点に
もかかわらず、タイルベースアプローチは、特に中間調
処理に使用された場合には、各出力タイルが非常に正確
に出力バッファに配置されていなければならない。そう
でないと、イメージに目に見える傷が発生する。特に、
50% 色合いファクターで中間調処理されたイメージに
は、近接タイル間の中間調処理パターンの1画素オフセ
ットにより、イメージに目に見える人工物が現れること
が実験によって観察された。当該人工物は、イメージ全
体の境界線のタイルに沿って「ジグザグ」状の形をと
る。その結果、イメージがその後中間調処理されるな
ら、当該タイル上で作動するスクリーナは、出力バッフ
ァから各タイルを取りだして当該タイルをスクリーンニ
ングし、1ビット精度で出力バッファに戻すことが要求
される。イメージの中間調処理プロセス全体で当該高精
度を達成、かつ、維持することは、実際には非常に困難
であることが証明されている。
Unfortunately, despite the advantages exhibited by tile-based scaling and rotation, the tile-based approach results in each output tile, especially when used for halftone processing. Must be very accurately placed in the output buffer. Otherwise, there will be visible scratches on the image. In particular,
It has been observed experimentally that in a halftoned image with a 50% tint factor, a one-pixel offset in the halftoned pattern between adjacent tiles causes visible artifacts to appear in the image. The artifact has a "zig-zag" shape along the border tiles of the entire image. As a result, if the image is then halftoned, a screener operating on that tile is required to retrieve each tile from the output buffer, screen the tile and return it to the output buffer with 1-bit precision. .. Achieving and maintaining this high accuracy throughout the image halftoning process has proven to be very difficult in practice.

【0010】一見すると、当該精度を緩めることがで
き、「ジグザグ」パターンは、中間調処理されたタイル
の境界線を適切に平準化すれば排除できると考えるかも
しれない。詳細には、ローパス空間フィルタリングで実
施できる当該平準化は、おそらく丸め誤差の目に見える
衝撃を減少させ、かつ生じているタイルのミスアライメ
ントを減少させる。当該ミス位置合わせは、浮動少数点
アドレス値が、実整数アドレスに分割され、平準化され
ない時に生じる。そしてその実整数アドレスは中間調処
理されたタイルが再組みされている出力バッファにアド
レス指定するのに使用される。適切な実験観察から、当
該フィルタリングは、目に見えるタイルのミス位置合わ
せを減少させるが、残念ながら、当該フィルタリングは
存在しているイメージの中間調ドット構造を分解し、破
壊することが分かった。それ故に、タイル境界線フィル
タリングは実行可能な解決方法とはなりえず、タイルベ
ースイメージ処理を行なうには、絶対に1ビット精度を
維持することが必要であると考える。
At first glance, one might think that the precision can be relaxed and that the "zig-zag" pattern can be eliminated by properly leveling the boundaries of the halftoned tiles. In particular, the leveling, which can be implemented with low-pass spatial filtering, probably reduces the visible impact of rounding errors and reduces the resulting tile misalignment. The misalignment occurs when the floating point address value is divided into real integer addresses and is not leveled. The real integer address is then used to address the output buffer where the halftoned tile is being reassembled. Proper experimental observations have shown that the filtering reduces visible tile misregistration, but, unfortunately, the filtering decomposes and destroys the halftone dot structure of existing images. Therefore, tile boundary filtering cannot be a viable solution, and it is absolutely necessary to maintain 1-bit precision in order to perform tile-based image processing.

【0011】また、タイリングの点は別としても、市販
のスクリーナは高価で膨大なメモリー量を必要とし、イ
メージスケーリングおよび/あるいは回転を実行する能
力を有していないことが多い。
Also, apart from tiling, commercially available screeners are expensive, require large amounts of memory, and often do not have the ability to perform image scaling and / or rotation.

【0012】さらに、イメージスケーリングおよび回転
は、「フォントエンド」操作として現在利用できるイメ
ージ処理装置、すなわち、一連のイメージ処理回路内に
あるイメージスキャナの近くに位置する回路で実行され
ることが多い。一方、スクリーニングは、「バックエン
ド」操作として、すなわち、出力ライターと関連のある
回路で実行される。どちらの操作も一般には、他の操作
についての知識をほとんど持っていないので、その結果
人工不純物および他の悪い結果がイメージにたびたび現
れる。ページ記述言語は後処理をおこなうため、すなわ
ち、当該言語は「イメージを見ながら」処理するため、
当該言語は、「フォントエンド」スケーリングあるいは
回転など、あるイメージ上で直前に実行された操作に対
して当該イメージを最適化する機会を提供しない。その
ため、現在使用されている様な、当該言語の特定実施
は、モワレパターンやエイリアスなどの悪影響を排除し
ない。当該悪影響は、例えば、中間調処理プロセスおよ
び出力ライターに関連する同様の相当特性と、周波数お
よび画素配置のサンプリングなどのような「フォントエ
ンド」操作の各特性の相互作用から生じる。
In addition, image scaling and rotation are often performed in image processing devices currently available as "font end" operations, ie, circuits located near the image scanner in a series of image processing circuits. On the other hand, screening is performed as a "back-end" operation, i.e. in the circuitry associated with the output writer. Both manipulations generally have little knowledge of the other manipulations, and as a result artificial impurities and other adverse consequences often appear in the image. Since the page description language performs post-processing, that is, the language processes "while looking at an image",
The language does not provide the opportunity to optimize the image for operations most recently performed on it, such as "font end" scaling or rotation. Therefore, the specific implementation of the language, as it is currently used, does not eliminate the adverse effects of moire patterns, aliases, etc. The adverse effects result from the interaction of similar comparable properties associated with the halftone processing process and the output writer with properties of "font end" operations such as sampling of frequency and pixel placement, for example.

【0013】さらに、市販のスクリーナも極端な低速傾
向を有する。従って、当該スクリーナがページ記述言語
の実施に使用された場合、これにより生じる処理能力
は、70ページ/分(ppm)以上といった現在利用されてい
る出力ライターのスピードより相当に遅くなるため、重
大な障害となろう。極端な低速はユーザを苛立たせるこ
とになる。すると、ユーザは、当該イメージが処理およ
び印刷されるのに必要な時間を待つよりも、さっさと諦
めてイメージを文書に組み込まないでもよいと思うであ
ろう。
In addition, commercially available screeners also tend to be extremely slow. Therefore, when the screener is used to implement a page description language, the resulting processing power is significantly slower than the output writer speeds currently in use, such as 70 pages per minute (ppm) and above, which is significant. It will be an obstacle. Extreme slowness can be frustrating for users. The user would then be willing to give up and not incorporate the image into the document, rather than waiting for the time required for the image to be processed and printed.

【0014】上記の基本的問題にもかかわらず、タイル
ベースアプローチに固有の利点、特に、フレームバッフ
ァのサイズの縮小および価格の引下げにより生ずる利点
が、当該アプローチの使用を強く支持する。
In spite of the above basic problems, the inherent advantages of the tile-based approach, especially those resulting from the reduced size of the frame buffer and the reduced price, strongly support its use.

【0015】従って、非常に正確に、また、低価格で、
イメージ回転、スケーリングおよび中間調処理を実施で
きるタイルベース技法に対する要求が当該技術に存在し
ている。さらに、現在利用できる出力ライターの処理能
力に近づくために、ページ記述言語の処理能力を相当に
早めてタイルベーススケーリング、回転および中間調処
理を実施する必要があるという特定の要求が存在する。
有利なことに、当該技法を出力ライターに組み込めば、
文書イメージの使用を担当に早めるようになる。
Therefore, very accurately and at low cost,
There is a need in the art for tile-based techniques that can perform image rotation, scaling and halftone processing. In addition, there is a particular need to approach the processing power of currently available output writers by considerably speeding up the processing power of page description languages to perform tile-based scaling, rotation and halftone processing.
Advantageously, incorporating the technique into an output writer
The person in charge will expedite the use of the document image.

【0016】よって、本発明の目的は、後処理環境にお
いて、連続階調(コントーン)イメージのイメージスケ
ーリング、回転および中間調処理を、低価格ではあるが
非常に正確に実施できる装置およびその方法を提供する
ことにある。
Accordingly, it is an object of the present invention to provide an apparatus and method for performing image scaling, rotation and halftone processing of a continuous tone (contone) image in a post-processing environment at a low cost but very accurately. To provide.

【0017】特定目的は、当該装置および方法にタイリ
ングを使用し、高速メモリーの必要量を有利に減少させ
る。
A particular purpose uses tiling in the apparatus and method to advantageously reduce high speed memory requirements.

【0018】他の特定目的は、出力バッファのタイル配
置エラーを、中間調処理操作全体を通して1ビットの精
度内でおさえる装置を提供することにある。
Another particular object is to provide a device that will contain tile placement errors in the output buffer within one bit of precision throughout the halftone processing operation.

【0019】更に、他の特定目的は、ページ記述言語の
処理処理能力を十分に加速し、現在利用できる多くの出
力ライターによって提供される処理能力におよそ相当す
るスピードでイメージスケーリング、回転および中間調
処理を行なう当該装置および方法を提供することにあ
る。
Yet another particular purpose is to sufficiently accelerate the processing power of page description languages, image scaling, rotation and halftoning at speeds roughly comparable to the processing power provided by many currently available output writers. It is to provide the apparatus and method for performing the processing.

【0020】[0020]

【課題を解決するための手段及び作用】一般的に言え
ば、これらの目的は、本発明の教示にもとづき、出力イ
メージブロック内の2つの近接する画素位置間の対応す
る移動に対するコントーンイメージ上のコントーンタイ
ルの連続サンプリング位置間の増分移動を指定する画素
サンプリング増分を最初に定義することによりなし遂げ
られる。
Generally speaking, these objectives, in accordance with the teachings of the present invention, are based on a contone image for a corresponding movement between two adjacent pixel locations within an output image block. Is accomplished by first defining a pixel sampling increment that specifies the incremental movement of successive contone tiles between successive sampling positions.

【0021】次に、当該増分に応じて、(a)ブロックの
増分移動量を示すアドレスが生成されて、一連の出力画
素位置を作りだす(b)コントーンイメージがサンプリン
グされて、アドレス指定された各出力画素位置のサンプ
リングされた1つのコントーン値を作って、複数個のサ
ンプリングされたコントーン値を作りだす、および、
(c) 当該サンプリングされたコントーン値およびあら
かじめ定義されたパターンに応じて、アドレス指定され
た出力画素位置に対して対応する1つの中間調出力値を
順次作って、複数個の中間調出力値を作りだす。次に、
各中間調出力値がコントーンタイル内にある画素位置に
関するものである場合は、ブロック内の対応するアドレ
ス指定された出力画素位置に書き込まれる。
Next, in response to the increment, (a) an address indicating the incremental movement amount of the block is generated, and (b) a contone image that produces a series of output pixel positions is sampled and addressed. Create one sampled contone value at each output pixel location to produce a plurality of sampled contone values, and
(C) In response to the sampled contone value and the predefined pattern, one corresponding halftone output value is sequentially created for the addressed output pixel position, and a plurality of halftone output values are generated. Create. next,
If each halftone output value is for a pixel location within the contone tile, it is written to the corresponding addressed output pixel location within the block.

【0022】詳細には、当該の詳細な教示にもとづけ
ば、当該発明の方法は、コントーンイメージをオーバー
ラップしない一連のタイルに、また、出力イメージを一
連のブロックに効果的に区分する処理にもとづく。後者
は、通常、コントーンイメージが回転する角度φ(回転
角度)にもとづいてオーバーラップする。ブロックサイ
ズは、例示の通り、拡大スケーリングの場合は32×32の
位置に固定され、また、縮小スケーリングの場合はある
程度可変である。タイルは、対応するブロック内で回転
する時に当該タイルが当該ブロック内で適合する最大サ
イズになるように、アナモフィックスケールファクター
αおよびβ、および回転角度にもとづいて決定される。
増分画素サンプリング座標は、なかでも、回転角度、ア
ナモフィックスケールファクター、スクリーン角度θ、
タイルおよびブロックサイズにもとづき決定される。そ
の結果、画素X画素を基準としたブロック内の連続画素
移動に関し、中間調出力データが、するブロック内の各
画素に対して、対応するコントーンタイルを完全に含む
コントーンイメージ内の最小サイズのボックス内に含ま
れるコントーンデータから求められる。中間調スクリー
ニングパターン内の対応する増分画素の移動量に関する
増分サンプリング座標も、ブロック内の各画素の連続サ
ンプリングされた中間調値を作りだすために、特に、ス
クリーンルーリングおよびスクリーン角度θにもとづい
て定義される。増分は、中間調スクリーンパターンの連
続タイル間、および、出力イメージの連続ブロック間だ
けでなく、コントーンイメージの連続タイル間の移動量
についても定義される。一旦、当該増分すべてが選択さ
れると、コントーンイメージの各タイルは連続処理され
て、連続した対応する各ブロックを中間調出力データで
埋める。当該処理は、画素X画素ベースで現在の出力ブ
ロックを増分して一連の出力画素位置を作りだす。ま
た、コントーンイメージから増分サンプリングして、各
出力画素位置のサンプリングされた1つのコントーン値
を作りだし、複数個のサンプリングされたコントーン値
を作りだす。また、中間調パターンから増分サンプリン
グをおこない、サンプリングされたコントーン値に応じ
て、各出力画素位置の対応する1つの中間調出力値を順
次作りだして、複数個の中間調出力値を作りだす。当該
増分処理、増分コントーン処理、中間調サンプリング処
理はロックステップでおこり、アドレスが現ブロックの
各連続画素に生成された後、対応するサンプリングされ
たコントーン値および対応する中間調出力値が生成され
る。この処理は、高速スキャン方向に現ブロックの各行
に沿って連続しておこなわれる。また、当該処理は低速
スキャン方向にブロック内の行から行へ、現ブロックが
出力中間調値で完全に埋まるまで続く。中間調データ
は、処理中の現タイル内にある対応するサンプリングさ
れたコントーン値を有する現ブロック内の当該位置のバ
ッファに書き込みだけがおこなわれる。ゼロ値は、その
他の位置全部に書き込まれる。現コントーンタイルが完
全に処理されると、バッファ内容は、ページバッファの
出力ブロックに転送される。当該出力ブロックは、出力
イメージ内の現イメージの空間位置に相当する位置に位
置する。現コントーンタイルが処理されると、タイル増
分により形成される次の連続コントーンタイルが処理さ
れ、出力イメージ内の次のブロックの出力中間調処理さ
れたデータを作り出す。同様の処理が各連続コントーン
タイルに対して行われる。コントーンタイルすべてを確
実に正しく位置決めするために、各連続コントーンタイ
ルの開始位置は、ブロックのエッジ位置と、対応する回
転コントーンタイルの角との間に存在する位置オフセッ
ト値だけ修正される。コントーンタイルは、順次、コン
トーンイメージ全体を通して、行沿いに、すなわち、高
速スキャン方向に、また、行から行へ、すなわち、低速
スキャン方向に処理される。
In particular, based on the detailed teachings, the method of the present invention effectively partitions the contone image into a series of non-overlapping tiles and the output image into a series of blocks. Based on processing. The latter usually overlaps based on the angle φ (rotation angle) at which the contone image rotates. As illustrated, the block size is fixed at a position of 32 × 32 in the case of enlargement scaling, and is variable to some extent in the case of reduction scaling. The tiles are determined based on the anamorphic scale factors α and β and the rotation angle such that the tiles have a maximum size that fits within the block when rotated within the corresponding block.
Incremental pixel sampling coordinates include, among others, rotation angle, anamorphic scale factor, screen angle θ,
Determined based on tile and block size. As a result, for continuous pixel movement within a block with respect to pixel X pixels, the halftone output data contains, for each pixel in the block, the minimum size in the contone image that completely contains the corresponding contone tile. It is calculated from the contone data contained in the box. Incremental sampling coordinates for the amount of movement of the corresponding increment pixel in the halftone screening pattern are also defined to produce consecutively sampled halftone values for each pixel in the block, specifically based on screen ruling and screen angle θ. It Increments are defined not only between successive tiles of a halftone screen pattern and between successive blocks of an output image, but also for the amount of movement between successive tiles of a contone image. Once all of the increments have been selected, each tile of the contone image is processed serially to fill each successive corresponding block with halftone output data. The process increments the current output block on a pixel by pixel basis to create a series of output pixel locations. It also incrementally samples from the contone image to produce one sampled contone value at each output pixel location and a plurality of sampled contone values. In addition, incremental sampling is performed from the halftone pattern, and one halftone output value corresponding to each output pixel position is sequentially created according to the sampled contone value to create a plurality of halftone output values. The increment process, the incremental contone process, and the halftone sampling process occur in lockstep, and after the address is generated for each successive pixel of the current block, the corresponding sampled contone value and the corresponding halftone output value are generated. . This process is continuously performed along each row of the current block in the fast scan direction. Also, the process continues in the slow scan direction row by row within the block until the current block is completely filled with output halftone values. Halftone data is only written to the buffer at that location in the current block with the corresponding sampled contone value in the current tile being processed. Zero values are written in all other locations. When the current contone tile is completely processed, the buffer contents are transferred to the output block of the page buffer. The output block is located at a position corresponding to the spatial position of the current image in the output image. Once the current contone tile is processed, the next contiguous contone tile formed by the tile increments is processed to produce output halftone processed data for the next block in the output image. Similar processing is performed for each successive contone tile. To ensure correct positioning of all contone tiles, the starting position of each consecutive contone tile is modified by the position offset value that exists between the block edge position and the corresponding rotated contone tile corner. . Contone tiles are processed sequentially along the row, ie, in the fast scan direction, and row to row, ie, in the slow scan direction, throughout the contone image.

【0023】中間調データは、中間調基準セルあるいは
スレショルドマトリックスのどちらかでサンプリングす
ると生成できる。前者のアプローチの場合、中間調基準
スタックはマルチプル中間調基準セルを含み、各セルは
通常0%ドットから100%ドットまでの中間調ドットについ
ての異なる描写を含む。サンプリングされた各コントー
ン値は、サンプリングされる特別の中間調基準面を適切
な画素アドレスによって選択し、対応するサンプリング
された中間調値を作りだす。後者のアプローチでは、ス
レショルドマトリックスは、やはり適切な画素アドレス
によって連続してサンプリングされ、サンプリングされ
た現スレショルド値を作りだす。当該スレショルド値
は、対応するサンプリングされた現コントーン値と比較
され、比較の結果により決定される値をもつ中間調出力
ビットを生成する。中間調サンプリングは、中間調面で
あれスレショルドマトリックスであれ、独立して、ま
た、一般にコントーンイメージを通してのサンプリング
とは異なる方向に発生する。但し、サンプリング処理は
両方とも相互にロックステップ内で行われる。
Halftone data can be generated by sampling in either the halftone reference cell or the threshold matrix. In the former approach, the halftone reference stack contains multiple halftone reference cells, each cell typically containing a different depiction of halftone dots from 0% dots to 100% dots. Each sampled contone value selects the particular halftone reference plane to be sampled by the appropriate pixel address to produce the corresponding sampled halftone value. In the latter approach, the threshold matrix is also sequentially sampled with the appropriate pixel address to produce the sampled current threshold value. The threshold value is compared to the corresponding sampled current contone value to produce a halftone output bit having a value determined by the result of the comparison. Halftone sampling occurs independently of the halftone plane or threshold matrix, and generally in a different direction than sampling through the contone image. However, both sampling processes are mutually performed in lockstep.

【0024】当該発明は、2チップのアーキテクチャ、
詳細には、専用ハードウェア回路と結合されたマイクロ
コンピュータを使用して都合よく実施される。専用ハー
ドウェア回路は、以下ではタイル・画素プロセッサ(TP
P)と呼ぶ。マイクロコンピュータは、タイルおよびブロ
ックサイズ、画素サンプリングおよびタイル増分など、
コントーンイメージ全体を通して固定されている各種パ
ラメータ値を設定してから、各連続コントーンタイルお
よび出力ブロックの開始位置を計算する。当該マイクロ
コンピュータは、画素サンプリング増分をTPP にロード
する。その後、当該開始位置は各コントーンタイル毎に
決定されてTPP に送られ、当該コントーンタイルの処理
命令はTPP に送られる。TPP は、内部タイルプロセッサ
を通して、出力イメージの各連続出力画素に対するコン
トーンおよび中間調画素サンプリングアドレスを生成す
る。当該アドレスが順次使用されて、関連のコントーン
およびハードウェア基準メモリーにアクセスし、サンプ
リングされた各コントーン値および対応する中間調処理
された各出力値を作りだす。TPP が各コントーンタイル
を処理すると、当該マイクロコンピュータはTPP が作り
だした中間調データすべてをページ緩衝記憶機構内の対
応するブロックに転送する。次に、TPP に格納されたパ
ラメータ値を更新して、次の連続タイルの開始位置を変
更する。その後、TPP に当該処理開始命令を発し、コン
トーンタイル全部を処理する。本質的に、マイクロコン
ピュータとTPP の組合わせによって、ネストされた処理
ループを一括して実施し、またTPP はハードウェア内の
2つのネストされたループを実行する。
The invention is a two-chip architecture,
In particular, it is conveniently implemented using a microcomputer combined with dedicated hardware circuitry. Dedicated hardware circuits are referred to below as tile / pixel processor (TP
P). The microcomputer is able to handle tile and block sizes, pixel sampling and tile increments, etc.
After setting various parameter values that are fixed throughout the contone image, the starting position of each successive contone tile and output block is calculated. The microcomputer loads the pixel sampling increment into the TPP. Then, the start position is determined for each contone tile and sent to the TPP, and the processing instruction for the contone tile is sent to the TPP. The TPP, through an internal tile processor, generates contone and halftone pixel sampling addresses for each successive output pixel of the output image. The address is used sequentially to access the associated contone and hardware reference memory to produce each sampled contone value and corresponding halftoned output value. As the TPP processes each contone tile, the microcomputer transfers all halftone data produced by the TPP to the corresponding block in the page buffer. Then it updates the parameter value stored in the TPP to change the starting position of the next consecutive tile. After that, the processing start command is issued to the TPP to process all contone tiles. In essence, the combination of the microcomputer and TPP implements the nested processing loops together, and the TPP implements two nested loops in hardware.

【0025】当該発明は、有利なことに、本発明アーキ
テクチャをどの様な形で実行する場合でも、並列処理が
容易に組み込まれ、その結果、処理能力を所望のレベル
までより高い方にスケーリングするという特長を有す
る。そのためには、本発明の2チップのアーキテクチャ
は簡単に拡張され、共通マイクロコンピュータに接続さ
れかつコントロールされるマルチプルTPP を使用して、
並列処理が実施される。各TPP は、マイクロコンピュー
タによって、入力連続階調(コントーン)イメージの特
定の対応する非オーバーラップ部分、例えば、水平スト
リップを単独で処理する構造となろう。マイクロコンピ
ュータは、すべてのTPP に対して各イメージ部分を時間
交互に処理する命令を出し本質的には、相互に平行に処
理する命令を出す。各TPP が処理を実行している間に、
マイクロコンピュータは出力バッファの一部を決定し、
当該TPP により生成された後一時的に適切な先入れ先出
し方式で格納されているデータは当該処理の終了時点で
当該出力バッファへ転送されるであろう。アクティブTP
P の数が増加して平行度がより高くなると、処理能力も
相当に増加する。
The present invention advantageously incorporates parallelism, no matter how the architecture of the present invention is implemented, so that processing power is scaled higher to the desired level. It has the feature. To that end, the two-chip architecture of the present invention is easily extended, using multiple TPPs connected and controlled by a common microcomputer,
Parallel processing is performed. Each TPP will be the structure by which the microcomputer independently processes certain corresponding non-overlapping portions of the input contone image, eg, horizontal strips. The microcomputer issues instructions to all TPPs to process each image portion in alternating time, essentially in parallel to each other. While each TPP is performing processing,
The microcomputer decides a part of the output buffer,
The data generated by the TPP and temporarily stored in an appropriate first-in first-out manner will be transferred to the output buffer at the end of the process. Active TP
As the number of P's increases and the parallelism increases, so does the throughput.

【0026】以下の説明を精読すれば、当該技術に熟練
せる者は、当該発明技法は、イメージスケーリング、回
転、中間調処理を比較的高速で一括して実施するための
幅広いイメージ処理アプリケーションに使用できること
を直ぐに認めるであろう。本発明の卓越したアプリケー
ションの1つは、システムを形成する先行するイメージ
処理機器内ではなく当該システムに使用される出力ライ
ター内に埋め込まれている、デジタルイメージ処理シス
テムの後処理環境においてページ記述言語を実行するこ
とに有ると思われるので、説明を簡潔にするために、上
述の関係について本発明を検討する。
After reading the following description, those skilled in the art will appreciate that the inventive technique can be used in a wide variety of image processing applications for performing image scaling, rotation, and halftoning in bulk at relatively high speeds. You will soon recognize what you can do. One of the outstanding applications of the present invention is a page description language in a post-processing environment of a digital image processing system that is embedded within the output writer used by the system rather than within the preceding image processing equipment forming the system. For the sake of brevity, the invention will be considered in the context of the above.

【0027】当該発明技法および装置が詳細に理解でき
るように、以下の検討を様々な段階において行う。先
ず、本発明にもとづいてページ記述言語を実施するイメ
ージ処理システムの概要を簡単に説明する。次に、各種
の図形描写を使用して、イメージスケーリング、回転お
よび中間調処理を一括して実行する発明のプロセスにつ
いて述べる。その後、当該の発明技法を取り入れている
イメージ処理システムの実施態様を詳細に示す。その
後、本技法の2チップ(例えば、マイクロコンピュータ
/ASIC)実施の詳細な検討をおこなう。後者の検討では、
先ず、ハイレベル擬似コードを使用して両チップによる
操作の機能的説明をおこない、その後、例えば、当該技
法の顕著な部分を実施するASIC(応用特定集積回路 app
lication specific integrated circuit)チップに特定
して使用されると思われる専用ハードウェア回路の説明
をおこなう。
In order that the inventive technique and apparatus may be better understood, the following discussion is conducted at various stages. First, an outline of an image processing system that implements a page description language according to the present invention will be briefly described. The inventive process for collectively performing image scaling, rotation, and halftone processing using various graphical depictions will now be described. Thereafter, embodiments of image processing systems incorporating the inventive techniques of interest will be described in detail. Then, two chips of the technique (eg, microcomputer
/ ASIC) Conduct a detailed study of implementation. In the latter examination,
First, a high-level pseudocode is used to provide a functional description of operation by both chips, and then, for example, an ASIC (application specific integrated circuit app) that implements a salient part of the technique.
lication specific integrated circuit) Describes a dedicated hardware circuit that is supposed to be used by specifying a chip.

【0028】[0028]

【実施例】A. ページ記述言語実施システム 図1は、本発明にもとづいて、イメージスケーリング、
回転および中間調処理能力を提供するページ記述言語
(PDL)を実施するためのイメージ処理システム5の非常
にハイレベルな簡易ブロック図である。図に示す通り、
入力データは、リード線7を介してシステム5に進む。
当該データは、それぞれが関連する最初のイメージデー
タあるいは連続階調(コントーン)イメージデータによ
り追従される一連のPDL コマンドで形成される。各コマ
ンドは、すぐ後のデータの処理方法および出力ページへ
の印刷方法を指定する。連続的に発生するPDL コマンド
は付属のデータと共にデータストリームを形成し、この
データストリームはリード線7を介してプロセッサ10に
進む。プロセッサ10は、それ自体がPDL 処理回路13およ
び出力バッファ17を有するのであるが、当該各コマンド
を、PDL 処理回路を介して付属するデータ上に対応する
イメージ処理操作によりおこなうことにより実施し、そ
の後、得られた処理イメージデータを出力バッファに書
き込む。すると、当該バッファの内容がラスター方式で
読み込まれ、リード線21を介してデジタルマーキング
(書込み)エンジン25に適用される。当該エンジンは、
最も簡単な形で、単一の書込みスポット( 出力ビット)
を、入力に適用される各対応ビットの出力ぺージに書き
込む。通常、エンジン25は、300 ドット/インチ( 約11
8 ドット/cm)以上の縦横出力書込みピッチを持つレーザ
ープリンタである。通常はペーパーのハードコピー出力
である印刷ページ30は、エンジン25により作りだされて
出力バッファ17の内容を有する。
EXAMPLES A. Page Description Language Implementation System FIG. 1 illustrates image scaling,
1 is a very high level simplified block diagram of an image processing system 5 for implementing a page description language (PDL) that provides rotation and halftone processing capabilities. As shown in the figure,
Input data goes to system 5 via lead 7.
The data is formed by a series of PDL commands that are each followed by the associated first image data or contone image data. Each command specifies how to process the data that immediately follows and how to print to the output page. The consecutively generated PDL commands form a data stream with the accompanying data, which data stream travels via lead 7 to processor 10. The processor 10, which has the PDL processing circuit 13 and the output buffer 17 by itself, executes each command by performing the corresponding image processing operation on the attached data through the PDL processing circuit, and then executes the command. , Write the obtained processed image data in the output buffer. Then, the contents of the buffer are read in a raster manner and applied to the digital marking (writing) engine 25 via the lead wire 21. The engine is
In the simplest form, a single write spot (output bit)
Is written to the output page for each corresponding bit applied to the input. Normally, the engine 25 has 300 dots / inch (about 11
It is a laser printer with a vertical and horizontal output writing pitch of 8 dots / cm or more. Printed page 30, which is typically a hardcopy output of paper, has the contents of output buffer 17 produced by engine 25.

【0029】PDL によって、ユーザは、イメージのよう
な印刷ページ30に現れる物体を定義することができ、ま
た、当該物体を所望の方法で処理し、相互に正確に位置
決めすることで、ページ全体を適切に形成することがで
きる。デジタルイメージ処理においてユーザに最大のフ
レキシビリティーを提供するために、PDL は、有限範囲
内で任意の均一なイメージおよびアナモフィックイメー
ジのスケーリング、任意角度のイメージ回転、および任
意のスクリーン角度およびスクリーンルーリングでの中
間調処理を、浮動小数点の精度で支援する必要がある。
文書イメージをページ上の他の物体と確実に正しく「合
わせる」ために、当該イメージ処理機能は、非常に精密
に実行されなけばならない。そうでないと、印刷する時
に人工不純物あるいは別のエラーがページ上に現れる。
The PDL allows the user to define the objects that appear on the printed page 30, such as images, and to process the objects in the desired manner and position them accurately relative to each other to ensure that the entire page is It can be formed appropriately. To provide the user with maximum flexibility in digital image processing, PDL is capable of scaling any uniform and anamorphic image within a finite range, rotating the image at any angle, and at any screen angle and screen ruling. It is necessary to support the halftone processing of with the precision of floating point.
To ensure that the document image is properly "aligned" with other objects on the page, the image processing function must be performed very precisely. Otherwise, artificial impurities or other errors will appear on the page when printing.

【0030】例えば、一連のPDL コマンドは、入力コン
トーンイメージ8が、各方向に 0.5インチのスケーリン
グ、約45度の回転、中間調処理をおこなった後、出力ペ
ージの真ん中に位置決めして、ページ30上に出力イメー
ジ33を作りだすより指定することができる。当該コマン
ドは、テキストの文字"A" および"b" を、"A" が縦横共
に2だけスケーリングされた状態で、出力イメージ33の
どちらの側にも配置されるように指定することもでき
る。当該PDL コマンドおよび付属のデータの処理におい
て、PDL プロセッサ13は、以下に詳細に記載する通り、
コントーンイメージデータで動作して所望のスケーリン
グ、回転、および中間調処理された出力イメージを作り
だし、結果を出力バッファ17に書き込む。プロセッサ13
は、PDL コマンドで定義される最初のデータでも動作す
る。出力バッファ17は、エンジン25ページに対する中間
調処理されたイメージデータを格納できる十分な大きさ
を有する。
For example, a series of PDL commands is used to position the input contone image 8 in the middle of the output page after scaling 0.5 inches in each direction, rotating about 45 degrees, and halftoning. The output image 33 can be specified by creating it on 30. The command can also specify that the letters "A" and "b" of the text be placed on either side of the output image 33, with "A" scaled by 2 both vertically and horizontally. In processing the PDL command and associated data, the PDL processor 13
It operates on the contone image data to produce the desired scaled, rotated and halftoned output image and writes the result to the output buffer 17. Processor 13
Works with the first data defined by the PDL command. The output buffer 17 is large enough to store halftone processed image data for 25 pages of engine.

【0031】本発明は、PDL に使用される特定のコマン
ドや各PDL コマンドおよびこれに関連のデータが生成さ
れる方法にあるのでなく、イメージスケーリング、回
転、中間調処理機能をPDL に組み込むためにこれらの機
能が実施される方法にある。以下の検討は、イメージス
ケーリング、回転および中間調処理にだけ焦点を合わせ
ておこなう。
The present invention is not in the specific commands used for the PDL and the manner in which each PDL command and its associated data is generated, but rather for incorporating image scaling, rotation, and halftoning functions into the PDL. It is in the way these functions are implemented. The following discussion focuses only on image scaling, rotation and halftoning.

【0032】B. 発明のプロセス 発明のタイルベースプロセスについて、先ず、全体的な
質について、図3〜図6、図7、図8および図9に関し
て検討する。システム5のイメージスケーリング、回
転、および中間調処理を実施するための発明プロセスを
一括して形成する各種のタイルベース動作は、図3〜図
6に示す。図2は、図3〜図4より構成されていること
を示す。空間的に対応し、図示されている種々のコント
ーンボックスおび出力ブロックに対するコントーンサン
プリングおよび出力データの書込みは、図7に示す。単
一のコントーンボックスおよび対応する出力ブロックの
詳細図は、それぞれ、図8および図9に示す。以下の検
討全体を通して、上記図面すべてを同時に参照するこ
と。
B. Process of the Invention For the tile-based process of the invention, first consider the overall quality with respect to FIGS. 3-6, 7, 8 and 9. The various tile-based operations that collectively form the inventive process for performing image scaling, rotation, and halftone processing of system 5 are shown in FIGS. FIG. 2 shows that it is composed of FIGS. The spatially corresponding and illustrated contone box and writing of output data to the various contone boxes and output blocks is shown in FIG. Detailed views of a single contone box and corresponding output block are shown in FIGS. 8 and 9, respectively. Please refer to all of the above drawings simultaneously throughout the discussion below.

【0033】当該発明プロセスは、先ず、全体の入力コ
ントーンイメージを滑らかに隣接する同サイズのタイル
に区分する処理にもとづく。図7のコントーンイメージ
301は、コントーンタイル310 1 、310 2 、310 3 ・・
・・に区分されて、コントーンイメージ全体にわたり縦
横に広がる。拡大図として、図3の描写210 は、3 x3
マトリックスで配列された215 1 、215 2 、・・・・・
215 9 の9つのコントーンタイルで形成されるイメージ
部分215 を示す。当該イメージが分割されると、各コン
トーンタイルは連続処理されて、出力、例えば中間調処
理された出力ビット値を作り出す。この出力ビット値は
各タイルに対して、出力バッファの対応する正方形ブロ
ックにタイルとして書き込まれる。この点で、図7の出
力バッファ17のブロック371 1 、371 2 、371 3 ・・・
・は、出力イメージ33を一括して形成し、滑らかに隣接
する対応した出力タイル375 1 、375 2 、375 3 ・・・
・の出力ビット値を有する。各出力タイルは、対応する
単一のコントーンタイルの出力データを有する。以下の
検討を通して、コントーンタイルとはコントーンイメー
ジを一括して形成するタイルをさし、出力タイルとは出
力バッファ17で形成される出力イメージを一括して形成
するタイルをさすことに留意しなければならない。
The inventive process is first based on the process of smoothly partitioning the entire input contone image into adjacent tiles of the same size. Contone image of Figure 7
301 is a contone tile 310 1 , 310 2 , 310 3 ...
・ It is divided into · and spreads horizontally and vertically over the entire contone image. As an enlarged view, the representation 210 of FIG.
215 1 , 215 2 , arranged in a matrix ...
Shows an image portion 215 which is formed by 215 9 9 contone tiles. Once the image is segmented, each contone tile is serially processed to produce an output, eg, a halftoned output bit value. This output bit value is written as a tile for each tile in the corresponding square block of the output buffer. At this point, the blocks 371 1 , 371 2 , 371 3, ... Of the output buffer 17 of FIG.
・ The output images 33 are collectively formed, and the corresponding output tiles 375 1 , 375 2 , 375 3 that are adjacent to each other smoothly are ...
Has an output bit value of. Each output tile has output data for a corresponding single contone tile. Through the following examination, note that a contone tile refers to a tile that collectively forms a contone image, and an output tile refers to a tile that collectively forms an output image formed by the output buffer 17. There must be.

【0034】出力バッファの各ブロックは、サイズが固
定されており、図に示す通り32× 32 の位置がある。各
コントーンタイル毎に別のブロックが存在する。コント
ーンイメージが出力ページで所望の角度φだけ回転され
るので、当該タイルは出力ブロックでφ度だけ回る。こ
れは、空間的に対応するタイル上に重ねられている出力
ブロックの図2の描写210 に、また、図7の傾むいた出
力イメージ33に見られる。
Each block of the output buffer has a fixed size, and has 32 × 32 positions as shown in the figure. There is another block for each contone tile. Since the contone image is rotated on the output page by the desired angle φ, the tile rotates through φ degrees in the output block. This is seen in the representation 210 of FIG. 2 of the output block overlaid on spatially corresponding tiles, and in the skewed output image 33 of FIG.

【0035】以下に詳細に検討する通り、初期化中に、
各タイルのサイズは出力ブロック内で適合する最大値に
設定される。各タイルのサイズは、次の3つのファクタ
ーによって決定される。即ち、低速および高速スキャン
方向のスケールファクター(αおよびβ)、コントーン
イメージが回転する角度(φ)、および図に示す通り32
× 32 出力位置に固定された出力ブロックサイズであ
る。各出力タイルは対応するブロック内で回転するた
め、近接するコントーンタイル215 1 および215 2の出
力データを有する図3に示すブロック217 1 及び217 2
などの、近接ブロックは、出力バッファ内でオーバーラ
ップすることになる。近接ブロック間のオーバーラップ
角度は、コントーンイメージが回転する角度φの大きさ
に支配される。角度が増すと、オーバーラップ量も増
す。ブロック217 1 内のオーバーラップ領域は、斜線の
領域219 に発生する。同様の領域が、他の各ブロックに
も発生する。当該オーバーラップによって、全ての隣接
タイルは、必ず隣接し相互に正しい位置合わせをとる。
As will be discussed in detail below, during initialization:
The size of each tile is set to the maximum value that fits within the output block. The size of each tile is determined by the following three factors. That is, the scale factors (α and β) in the low-speed and high-speed scan directions, the rotation angle (φ) of the contone image, and 32 as shown in the figure.
× 32 The output block size is fixed at the output position. Since each output tile rotates within the corresponding block, blocks 217 1 and 217 2 shown in FIG. 3 having the output data of adjacent contone tiles 215 1 and 215 2 .
Proximity blocks, such as, will overlap in the output buffer. The overlap angle between adjacent blocks is governed by the size of the angle φ at which the contone image rotates. As the angle increases, so does the amount of overlap. Overlap region of the block 217 1 is generated in the hatched area 219. Similar areas occur in each of the other blocks. The overlap ensures that all adjacent tiles are adjacent and in correct alignment with each other.

【0036】描写220 は、図示されている1つのコント
ーンタイル、例えば、対応する出力ブロックであるブロ
ック217 7 に重ねられているタイル215 7 を示す。図か
ら分かるように、当該タイルは、当該ブロックの回転角
度中で方角が確定する。
Depiction 220 shows one contone tile shown, for example tile 215 7 overlaid on the corresponding output block, block 217 7 . As can be seen from the figure, the direction of the tile is fixed in the rotation angle of the block.

【0037】当該方法でコントーンタイルが定義され、
当該ブロックに関して傾けられると、コントーンイメー
ジは2次元でサンプリングされ、事実上、各ブロックに
必要なコントーンデータが関連のコントーンタイルから
得られるようになる。サンプリングは、コントーン面、
すなわち、図7の面301 で行なわれるため、高速および
低速スキャン方向(v および u)の2次元サンプルの増
分が設定される。また、以下に詳細に説明する通り、初
期化中に、当該コントーンイメージのタイルの出力デー
タを含む各出力ブロックの各出力位置に対して、別の連
続コントーンサンプルが生成される。当該コントーンイ
メージのコントーン値領域は、以下、コントーンボック
ス(出力ブロックと区別して)と呼ぶ。当該コントーン
値領域は、ラスター方式で規定の増分で完全サンプリン
グされて、多数の連続コントーンサンプルを作り出す。
この多数の連続コントーンサンプルは中間調処理などの
処理をされ、出力イメージの空間的に対応する出力ブロ
ックを完全に埋めるの十分な数の連続した出力値を生成
する。サンプリングされた各コントーン値は生成・処理
され、結果として得られた中間調処理された出力値は、
出力ブロックの対応する出力位置に書き込まれる。この
点で、それぞれコントーンタイル310 1 、310 2 、310
3 ・・・を含むコントーンボックス320 1 、320 2 、32
0 3 ・・・は、それぞれラスター方式で連続的にサンプ
リングされて、各ボックスに一連のコントーンサンプル
を作りだす。当該サンプルは、ボックス毎に中間調スク
リーニングで処理されて、対応する中間調ビット(書込
みスポット)を作り出す。そしてこの連続中間調ビット
は対応する出力ブロックの適切な連続位置、すなわち、
出力ブロック 371 1、371 2 、371 3 ・・・に書き込ま
れる。図7は、コントーンボックスおよび関連の出力ボ
ックス間の空間的対応を示す。詳細には、サンプリング
されたコントーンボックス320 1 、320 2 、320 3 のコ
ントーン値は、それぞれ331 、332 、333 と番号づけさ
れたラインにより中間調スクリーナ340 に加えられる。
当該ラインによって、3つのコントーンボックスのそれ
ぞれにつくられたコントーンサンプルを目視で区別でき
る。中間調スクリーナ340 は、当該各ボックスに生成さ
れたコントーンサンプルで動作し、以下に検討する方法
で、別の中間調ビットパターンを提供する。ライン331
、332 、333 に現れているコントーンサンプルから得
られた当該中間調ビットパターンは、中間調スクリーナ
340 によって、各ライン341 、342 、343 を通ってクリ
ッピングロジック350 に進む。当該ロジックが提供する
出力ビッ4は、以下に検討する通り、出力バッファ17に
書き込まれる。詳細には、それぞれ361 、362 、363 と
番号づけされたラインにより、対応する出力ブロック37
1 1 、371 2 、371 3 に書き込まれる。この様に、コン
トーンボックス320 1 、320 2 、320 3 から得られたコ
ントーンサンプルは、一連の対応するスクリーンニング
された出力値を作りだし、当該値は、対応する出力ブロ
ック371 1 、371 2 、371 3 に書き込まれる。コントー
ンイメージ301 の各コントーンボックスは順次処理され
て、出力データを対応する出力ブロックに書き込む。当
該書込みは、出力ブロック全部が埋まるまで継続され
る。
With this method, contone tiles are defined,
When tilted with respect to the block, the contone image is sampled in two dimensions, effectively providing the contone data required for each block from the associated contone tile. Sampling is a contone surface,
That is, since it is done in plane 301 of FIG. 7, the increment of the two-dimensional sample in the fast and slow scan directions (v and u) is set. Also, as will be described in more detail below, during initialization another continuous contone sample is generated for each output position of each output block containing the output data for the tile of the contone image. The contone value area of the contone image is hereinafter referred to as a contone box (distinguished from the output block). The region of contone values is fully sampled in defined increments in a raster fashion, producing a large number of consecutive contone samples.
The large number of consecutive contone samples are processed, such as halftoning, to produce a sufficient number of consecutive output values to completely fill the spatially corresponding output blocks of the output image. Each sampled contone value is generated and processed, and the resulting halftoned output value is
It is written to the corresponding output position of the output block. In this regard, contone tiles 310 1 , 310 2 , 310, respectively.
Contone boxes 320 1 , 320 2 , 32 including 3 ...
0 3 ... Are continuously sampled in a raster manner to produce a series of contone samples in each box. The sample is processed box by box in halftone screening to produce corresponding halftone bits (writing spots). This continuous halftone bit is then the appropriate continuous position of the corresponding output block, ie,
Written to the output blocks 371 1 , 371 2 , 371 3 ... FIG. 7 shows the spatial correspondence between the contone box and the associated output box. Specifically, the contone values of the sampled contone boxes 320 1 , 320 2 , 320 3 are added to the halftone screener 340 by lines numbered 331, 332, 333, respectively.
The line allows the contone samples made in each of the three contone boxes to be visually distinguished. The halftone screener 340 operates on the contone samples generated for each box of interest and provides another halftone bit pattern in the manner discussed below. Line 331
, 332, and 333, the halftone bit pattern obtained from the contone sample is the halftone screener.
340 advances through each line 341, 342, 343 to clipping logic 350. The output bit 4 provided by the logic is written to the output buffer 17, as discussed below. In particular, the corresponding output blocks 37 are indicated by the lines numbered 361, 362 and 363 respectively.
Written in 1 1 , 371 2 , 371 3 . Thus, the resulting contone sample from contone box 320 1, 320 2, 320 3, creating a series of corresponding screen training output value, that value, the corresponding output block 371 1, 371 2 , written in 371 3. Each contone box of contone image 301 is processed sequentially to write the output data to the corresponding output block. The writing is continued until the entire output block is filled.

【0038】出力データは、対応するコントーンタイル
の領域を埋めるためには、出力バッファの各ブロックに
のみ必要である。回転角度にもとづいたコントーンタイ
ルがコントーンボックスを完全に専有することができな
いので、以下に定義される通り、クリッピングを使用し
て、処理されようとしているコントーンタイル内のこれ
らのコントーンサンプルを定義し、また、事実上無視さ
れるコントーンボックスの残りのコントーンサンプルか
ら、出力ブロック内の出力タイルに格納される出力値を
生成する。これらの後者の値が隣接出力ブロックのオー
バーラップ領域の出力データを生成するので、対応する
出力位置の出力バッファにゼロ値が書き込まれる。最も
簡単な形としては、クリッピングは、中間調ビット値あ
るいはゼロ値のどちらかを、出力ブロックの各出力位置
への書込みに加える簡単なスイッチとして考えられる。
スイッチ351 、352 、353 は、ライン341 、342 あるい
は343 に現れている中間調ビット値または、ライン345
に適用されたゼロ値を各ライン361 、362 、363 に送る
ことにより、出力ブロック371 1 、372 2 、371 3にク
リッピング機能を提供する。出力ブロックに対して中間
調ビットを選択するかゼロ値を選択するか(スイッチ設
定)は、直交クリッピング座標(K およびL)の同時発生
値にもとづいておこなわれる。当該座標は、現在のタイ
ルサイズが指定されているため、変数 KおよびL の「ユ
ニット」距離がコントーンタイルのエッジの距離と等し
くなるように定義およびスケーリングされる。詳細に
は、K およびL は両方ともコントーンタイル内では1、
当該タイル外では0あるいは2である。当該クリッピン
グ変数は、各コントーンタイルの境界線を効果的に定め
る。また、当該クリッピング変数は対応する出力タイル
により専有される各出力ブロックの領域を出力データで
埋め込みながら、各ブロックの残りの全領域にゼロ値を
書き込ませる。処理後のコントーンサンプルデータ、す
なわち、中間調処理後のビットは、1つのブロック内の
空間的に対応する出力位置に書き込まれる。当該ブロッ
クに対してK およびL の値は両方とも1であり、換言す
ると出力ブロックに含まれている出力タイル内だけで1
であり、オーバーラップ領域では1ではない。K および
L の値は現在の出力ブロックに書き込まれる現在の出力
位置のアドレスがラスター方式で増分されるように、適
切にラスター方式で増分される。
Output data is only needed for each block of the output buffer to fill the area of the corresponding contone tile. Since contone tiles based on rotation angle cannot completely occupy the contone box, use clipping to define these contone samples within the contone tile that is about to be processed, as defined below. And from the remaining contone samples of the contone box that are effectively ignored, produce output values that are stored in the output tiles in the output block. These latter values produce output data in the overlap areas of adjacent output blocks, so a zero value is written to the output buffer at the corresponding output location. In its simplest form, clipping can be thought of as a simple switch that adds either a halftone bit value or a zero value to the write to each output position of the output block.
Switches 351, 352 and 353 are used for the halftone bit value appearing on line 341, 342 or 343 or line 345.
It provides the clipping function to the output blocks 371 1 , 372 2 , 371 3 by sending the zero value applied to each line 361, 362, 363. The choice of halftone bit or zero value (switch setting) for the output block is based on the coincident values of the Cartesian clipping coordinates (K and L). The coordinates are defined and scaled so that the "unit" distances of the variables K and L are equal to the distances of the edges of the contone tiles, given the current tile size. Specifically, K and L are both 1 in the contone tile,
It is 0 or 2 outside the tile. The clipping variable effectively defines the boundaries of each contone tile. Further, the clipping variable causes a zero value to be written in all the remaining areas of each block while embedding the area of each output block occupied by the corresponding output tile with output data. The processed contone sample data, that is, the bits after the halftone processing, are written to spatially corresponding output positions within one block. The values of K and L are both 1 for the block, in other words 1 only in the output tiles contained in the output block.
And not 1 in the overlap region. K and
The value of L is appropriately raster-incremented so that the address of the current output location written to the current output block is raster-incremented.

【0039】図3の描写220 のサンプルライン223 で示
す通り、コントーンサンプリング方向は、出力バッファ
の水平、垂直方向に合わせて決められるが、コントーン
イメージの回転により、各コントーンタイルに関しては
角度が付けられている。当該値は、実際にサンプリング
される入力コントーン値であるため、サンプルライン22
3 1 、223 2 、223 3 ・・・・223 n による傾斜サンプ
リングは、入力コントーンイメージ全体を通して適切な
サンプリング増分でおこなわれ、各コントーンボックス
のタイル215 7 のような各イメージタイルからデータを
求める。ラスター方式では、十分なコントーンサンプリ
ングが起こり各出力ブロックの全出力位置にデータを生
成するため、サンプリングは、各タイルの周囲以上に広
がりコントーンボックス全体を埋める。この点で、サン
プリングライン223 1 、223 2 、223 3 ・・・223 n (
全体としてライン223 を形成する)が、コントーンサン
プルを生成する。図8に示すコントーンタイル310 2
含むコントーンボックス320 2 全体を通して、当該サン
プルのそれぞれに"X" が付けらる。サンプリングされた
値は、図9に示す周辺の領域377 を含むブロック371 3
のような出力ブロック全体を埋めるのに十分な出力デー
タを提供する。ブロック371 3 のような出力ブロック
は、ラスター方式で軸 pおよび qで示す方向に埋められ
る。この時、データは、当該ブロックの左上の角から始
まり右下の角まで続く、32× 32 固定の出力位置のそれ
ぞれ(各位置はソリッドドットで示す)に書き込まれ
る。クリッピングのために、当該ブロック内では、ゼロ
値は、周辺の領域377 ( 分かりやすくするためクロスハ
ッチ表示)に入る出力位置に書き込まれる。この時、中
間調処理されたビット値は、出力タイル375 3 に入る残
りの位置に書き込まれる。同様に、図3の描写210 は、
コントーンタイル215 7 のコントーンサンプリング、お
よび、当該タイルと出力ブロック217 7 との空間的な対
応を示す。
As shown by the sample line 223 in the representation 220 of FIG. 3, the contone sampling direction is determined by the horizontal and vertical directions of the output buffer, but the rotation of the contone image causes an angle for each contone tile. Is attached. Since this value is the input contone value that is actually sampled, sample line 22
3 1, 223 2, 223 3 inclined sampling by · · · · 223 n is carried out in a suitable sampling increments throughout the input contone image, the data from each image tile, such as tiles 215 7 each contone box Ask. In the raster scheme, sufficient contone sampling occurs to generate data at all output positions of each output block, so that the sampling extends beyond the perimeter of each tile to fill the entire contone box. At this point, the sampling lines 223 1 , 223 2 , 223 3 ... 223 n (
Which together form line 223) produces the contone sample. An "X" is attached to each of the samples throughout the contone box 320 2 including the contone tile 310 2 shown in FIG. Sampled values, block 371 3 including a region 377 of the peripheral shown in FIG. 9
Provide enough output data to fill the entire output block such as. Output block, such as block 371 3 is filled in the direction indicated by the axes p and q in a raster fashion. At this time, the data is written to each of 32 × 32 fixed output positions (each position is indicated by a solid dot) starting from the upper left corner of the block and continuing to the lower right corner. Due to clipping, zero values are written to output positions in the surrounding area 377 (cross-hatched for clarity) within the block. At this time, halftoned bit value is written to remaining positions entering the output tile 375 3. Similarly, the representation 210 of FIG.
The contone sampling of the contone tile 215 7 and the spatial correspondence between the tile and the output block 217 7 are shown.

【0040】コントーンイメージの場合、サンプリング
は、出力イメージの一番上の出力ブロックに対応するコ
ントーンボックスの左上の角(ULC)から始まり、当該ボ
ックスを通して垂直、下向きにおこなわれる。当該ブロ
ック自体は、出力イメージのULC に位置する。1つのコ
ントーンボックスがサンプリングされた後、次のコント
ーンボックスのULC でサンプリングが始まり、以後同様
に行なわれる。適切な変数が、現在のコントーンボック
スのULC アドレスを維持するために使用され、高速およ
び低速スキャン増分によって適切に増分がおこなわれ、
各連続コントーンボックスのULC からサンプリングを開
始する。このように、図3の出力イメージ部分 217を形
成する 217 1、217 2 、217 3 などの連続出力ブロック
を埋める出力データが生成される。その結果、当該出力
イメージは、出力データが各ブロックの出力タイルデー
タを提供しながら、ブロックx ブロックを基準として構
築される。
In the case of a contone image, sampling begins at the upper left corner (ULC) of the contone box corresponding to the top output block of the output image and is done vertically, downwards through that box. The block itself is located in the ULC of the output image. After one contone box is sampled, sampling starts at the ULC of the next contone box, and so on. Appropriate variables are used to maintain the ULC address of the current contone box and are incremented appropriately by the fast and slow scan increments,
Start sampling from ULC of each continuous contone box. In this way, output data is generated that fills successive output blocks such as 217 1 , 217 2 , 217 3 forming the output image portion 217 of FIG. As a result, the output image is constructed on a block by block basis, with the output data providing the output tile data for each block.

【0041】図4の描写230 は、2次元的コントーンサ
ンプリングを詳細に示す。図例の2つのサンプリングラ
イン223 1 および223 1+1 が詳細に示される。変数、pi
xel_v およびpixel _u は、コントーンイメージの現
在のサンプリング位置のアドレスを座標 u、v に関して
格納する。当該変数は、画素サンプリング増分である△
pixel _u _fast、△pixel _ v_fast、△pixel _u
_slow、および△pixel _v _slow(本文書では、△u
_fast、△v _fast、△_slowおよび△v _fastとも言
う)の分だけ、高速および低速スキャン方向に適切に増
分される。当該増分は実際にはすべて "△" 値である
が、初期化中に設定されて正しい数のコントーンサンプ
ルを作りだし、各コントーンボックスを埋めるようにす
る。描写230 に示す通り、コントーンサンプリングは、
ライン223 1 などのサンプリングラインの左のスタート
ポイントから始まり、fast scan v およびu 画素サンプ
リング増分である、△pixel _v _fastおよび△pixel
_u _fastだけサンプリングアドレスを連続増分して、
当該ラインのある位置から次の位置へと進み、サンプリ
ングポイント231 1 、231 2 、231 3 、231 4 および23
1 5 が等しく分散されたシーケンスを作りだす。最後の
サンプリング位置が図例の位置231 5 などのサンプリン
グラインに達した時は、当該サンプリングアドレスは、
低速スキャン画素サンプリング増分値である△v _slow
および△u _slowだけ増分されて、次に連続するサンプ
リングライン、すなわち、ライン223 1+1 の一番左の位
置からサンプリングを始め、以後同様に行なわれる。こ
れにより得られたコントーンサンプルポイントは各サン
プルライン上において「X」で示されている。
The representation 230 of FIG. 4 details two-dimensional contone sampling. The two sampling lines 223 1 and 223 1 + 1 in the example shown are shown in detail. Variable, pi
xel_v and pixel_u store the address of the current sampling position of the contone image with respect to coordinates u, v. The variable is the pixel sampling increment Δ
pixel _u _fast, △ pixel _v_fast, △ pixel _u
_Slow and △ pixel _v _slow (in this document, △ u
_Fast, Δv _fast, Δ_slow and Δv _fast) are appropriately incremented in the fast and slow scan directions. The increments are actually all "△" values, but are set during initialization to create the correct number of contone samples and fill each contone box. As shown in description 230, the contone sampling is
Beginning from the left start point of the sampling line, such as line 223 1, a fast scan v and u pixels sampling increment, △ pixel _v _fast and △ pixel
Continuously increment the sampling address by _u _fast,
Advances to the next position from the position with the line, the sampling points 231 1, 231 2, 231 3, 231 4 and 23
1 5 creates an evenly distributed sequence. When the last sampling position has reached the sampling line, such as position 231 5 of FIG example, it is the sampling addresses,
Slow scan pixel sampling increment value Δv_slow
And Δu_slow are incremented to start sampling from the leftmost position of the next consecutive sampling line, ie, line 2231 + 1 , and so on. The resulting contone sample points are indicated by an "X" on each sample line.

【0042】図4の描写240 に示す通り、サンプリング
された各コントーン値は、単に、フロントメモリー、す
なわち、特別の中間調基準セルを選択するための中間調
基準スタックのアドレスとして機能する。スタック242
は、1つのメモリーに格納されているが(図示なし)、
あらかじめ定義された数、すなわち、256 個の異なるセ
ルを格納する。各セルは、図例の64× 64 画素で形成さ
れる特定の中間調ドットのビットマップを持っている。
スタック242 内で、ドットサイズは、ドットプロファイ
ル245 で示す通り、セル242 0 のゼロサイズのドットか
らセル242 255の100%ドット( すなわち、当該セルを完
全に埋めるドット)へと少しずつ変化する。図例のセル
242 47および242 181 は、それぞれ中サイズのドット24
5 47および245 181 を格納する。当該ドットパターンは
滑らかに示されているが実際には量子化されている。所
望のセルが選択されると、当該スクリーン角度、スクリ
ーンルーリングおよび出力書込み(レーザー)周波数で
決定される2次元的高速および低速スキャン増分を用い
て、当該セルはスクリーン角度θにより指令される方向
にサンプリングされて、出力ブロックに適切な数の中間
調ドットが含まれるようにする。
As shown in the representation 240 of FIG. 4, each sampled contone value simply serves as the address of the front memory, ie, the halftone reference stack for selecting a particular halftone reference cell. Stack242
Is stored in one memory (not shown),
It stores a predefined number, namely 256 different cells. Each cell has a bitmap of the particular halftone dots formed by the 64 × 64 pixels in the illustrated example.
In the stack 242, the dot size, as shown by the dot profile 245, cell 242 0 100% dot from zero dot of cells 242 255 (i.e., the dots fill the cell completely) gradually changes into. Figure cell
242 47 and 242 181 are each a medium-sized dot 24
Stores 5 47 and 245 181 . Although the dot pattern is shown smoothly, it is actually quantized. Once the desired cell is selected, the cell is oriented in the direction dictated by screen angle θ using two-dimensional fast and slow scan increments determined by the screen angle, screen ruling and output writing (laser) frequency. It is sampled so that the output block contains the proper number of halftone dots.

【0043】コントーン・中間調ドットサンプリング
は、サンプリングされた各コントーン値がサンプリング
された中間調ドット値を作りだす状態でロックステップ
に進む。しかし、中間調サンプリングが起こる方向およ
び増分値は、コントーンサンプリングが起こる方向およ
び増分値と全く無関係である。
The contone / halftone dot sampling proceeds to the lock step in a state where each sampled contone value produces a sampled halftone dot value. However, the direction and increment at which halftone sampling occurs is completely independent of the direction and increment at which contone sampling occurs.

【0044】ここで、説明の便宜上、現在のコントーン
サンプル値が中間調基準セル245 47を選択すると仮定す
る。また、スクリーン角度θは、およそ10度であると仮
定する。図5の描写250 に示す通り、部分スクリーン24
8 などの中間調ドットスクリーンは、2倍周期のシーム
レス2次元中間調ドットパターン(seamless doubly per
iodic two-dimensional halftone dot pattern)を含
む。当該描写は、出力ブロック、詳細には、中間調スク
リーン248 上に重ねられたブロック217 7 を示す。中間
調ドットサンプリングは、スクリーンの高速および低速
スキャン方向に2次元ラスター方式でおこなわれてい
く。当該方向は、出力バッファに平行である。しかし、
サンプリングは、実際には選択された中間調ドットセル
内でおこなわれるため、スクリーン角度のマイナス方向
のセル内では傾斜サンプリングがおこなわれる。スクリ
ーンパターンの周期性のため、一旦サンプリングライン
が描写260 に示す251 、252 、253 あるいは254 などの
中間調セルのエッジにあたると、当該ラインは、単に、
反対側のエッジに移動し、そこから次のサンプリングを
再開する。
[0044] Here, for convenience of explanation, it is assumed that the current contone sample values to select a halftone reference cell 245 47. Further, the screen angle θ is assumed to be about 10 degrees. Partial screen 24, as shown in drawing 250 of FIG.
Halftone dot screens such as 8 have a seamless 2D halftone dot pattern (seamless doubly per
iodic two-dimensional halftone dot pattern). The depiction is the output block, in particular, a block 217 7 superimposed on the halftone screen 248. Halftone dot sampling is performed by a two-dimensional raster method in the fast and slow scan directions of the screen. The direction is parallel to the output buffer. But,
Since the sampling is actually performed in the selected halftone dot cell, the tilt sampling is performed in the cell in the minus direction of the screen angle. Due to the periodicity of the screen pattern, once the sampling line hits the edge of a halftone cell such as 251, 252, 253 or 254 shown in drawing 260, the line is simply
Move to the opposite edge and restart the next sampling from there.

【0045】この点で、図例のサンプリングライン257
m および257 m+1 は、中間調基準セル242 47を進み、各
ラインに沿った一連の中間調サンプリングポイントを作
りだす。コントーンサンプリングと同様の方法で、中間
調基準セルサンプリングが、軸 xおよび yに沿って、各
中間調サンプリングライン方向への増分方式でおこなわ
れる。2つの変数、pixel _x および pixel_y は、中
間調基準セルの現サンプリング位置の x座標およびy 座
標のアドレスを格納する。当該変数は、画素サンプリン
グ増分である△pixel _x _fast、△pixel _y _fas
t、△pixel _x_slowおよび△pixel _y _slow(本文
書では、△x _fast、△y _fast、△x_slowおよび△y
_fastとも言う)だけ、高速および低速スキャン方向
に適切に増分される。当該増分は、初期化中に設定され
て、正しい数の中間調ドットサンプルポイントを作りだ
し、各出力ブロックを埋めるようにする。描写260 に示
す通り、コントーンサンプリングは、ライン257 m など
のサンプリングラインの左のスタートポイントから始ま
り、fast scan y および x pixel lのサンプリング増分
である、△y _fastおよび△x _fastの分だけサンプリ
ングアドレスを連続増分して、当該ラインのある位置か
ら次の位置へと進み、図例のサンプリングポイント261
1 、261 2 、261 3 、261 4 を含む、等しく分散された
シーケンスを作りだす。最後のサンプリング位置に達す
ると、当該サンプリングアドレスは、低速スキャン画素
サンプリング増分である△y _slowおよび△x _slowの
増分がおこなわれて、次に連続するサンプリングライ
ン、すなわち、ライン257 m+1 などの一番左の位置から
サンプリングを始め、以下同様に行なわれる。これによ
り得られた中間調サンプルポイントは、各サンプリング
ライン上の"X" によって示される。当該サンプルポイン
トのどれかが基準セルの中間調ドットの上か中にある場
合は、これに対応する中間調処理された出力値は1か 0
である。結果として得られた出力値1あるいは0は、ス
クリーニングされた中間調処理ビットであり、これらは
クリッピングロジックを介して、出力バッファ内に出力
イメージの書込みスポットの値として格納される。
At this point, the sampling line 257 in the illustrated example
m and 257 m + 1, the process proceeds halftone reference cell 242 47, creating a series of halftone sampling points along each line. In a manner similar to contone sampling, halftone reference cell sampling is done along axes x and y in an incremental manner along each halftone sampling line. Two variables, pixel_x and pixel_y, store the address of the x and y coordinates of the current sampling position of the halftone reference cell. The variables are Δpixel _x _fast and Δpixel _y _fas, which are pixel sampling increments.
t, △ pixel_x_slow and △ pixel_y_slow (in this document, △ x_fast, △ y_fast, △ x_slow and △ y
(Also referred to as _fast), appropriately incremented in the fast and slow scan directions. The increment is set during initialization to create the correct number of halftone dot sample points to fill each output block. As shown in drawing 260, contone sampling starts from the left start point of the sampling line, such as line 257 m, and samples by Δy _fast and Δx _fast, which are sampling increments of fast scan y and x pixel l. The address is continuously incremented to advance from one position of the line to the next position, and the sampling point 261
1, 261 2, 261 3, 261 including 4, produce equally distributed sequence. When the last sampling position is reached, the sampling address is incremented by slow scan pixel sampling increments Δy _slow and Δx _slow to the next consecutive sampling line, ie, line 257 m + 1 . Sampling is started from the leftmost position, and so on. The resulting halftone sample points are indicated by an "X" on each sampling line. If any of the sample points are on or in the halftone dot of the reference cell, is the corresponding halftoned output value 1?
Is. The resulting output values of 1 or 0 are the halftone processed bits that have been screened and are stored in the output buffer as clipping spot values in the output image via clipping logic.

【0046】中間調サンプリングの当該プロセスはよく
知られており、本文書の参考に含まれる米国特許番号4,
918,622 (1990 年4 月19日 E.M.Grangerおよび、その他
に対して発行され----以後、本特許は'622 Granger他と
呼ぶ。また、この特許は本願の譲受人に譲渡されてい
る)に完全に開示される。従って、当該プロセスを深く
洞察するために、'622 Granger他の特許が参照される。
本発明の特別の中間調処理プロセスを使用することが重
大でないので、必要に応じて、その他の公知の幅広い中
間調処理プロセスを使用することもできる。
The process of halftone sampling is well known and is described in US Pat.
918,622 (issued April 19, 1990 to EMGranger and others ---- hereafter referred to as the '622 Granger et al., Which is assigned to the assignee of the present application). Disclosed in. Reference is therefore made to the '622 Granger et al. Patent for a deeper insight into the process.
If desired, a wide range of other known halftone processing processes may be used, as it is not critical to use the particular halftone processing process of the present invention.

【0047】最後に、中間調スクリーナによって作りだ
された中間調ビットは、図6の描写270 に示す通りクリ
ッピングロジックを介して適用される。上記の通り、ク
リッピングは、「有効」中間調ビット即ち、出力ブロッ
クの出力タイルの上あるいは中に位置し、出力バッファ
に書き込まれる中間調ビットと、出力バッファでゼロに
設定されるブロック内の残りの中間調ビットとを区別す
るために用いられる。描写270 の記号の通り、スクリー
ニングされた中間調ビットは、リード線274 を介してス
イッチ275 の1つの入力に適用される。ゼロ値は、リー
ド線278 を介して当該スイッチの別の入力に適用され
る。クリッピング変数 KおよびY のAND 組合わせから、
AND ゲート273 によってリード線276 上に作られ、スイ
ッチ275 のコントロール入力に適用されている値にもと
づいて、当該スイッチは中間調スクリーニングビットあ
るいはゼロ値を出力リード線277 に導く。リード線277
に現れるビットは、出力バッファの現在の出力ブロック
内のシーケンシャルアドレスに格納される。リード線27
1 に現れるクリッピング変数 KおよびL の値は両方とも
1であり、中間調スクリーナによって作られたスクリー
ニングされた中間調ビットは有効である。従って、AND
ゲート273 の出力は当該ビットとしては高いが、そうで
なければゼロである。
Finally, the halftone bits produced by the halftone screener are applied via clipping logic as shown in the representation 270 of FIG. As mentioned above, clipping is a “valid” halftone bit, that is, the halftone bits that are located on or in the output tiles of the output block and are written to the output buffer and the rest of the block in the block that is set to zero in the output buffer. It is used to distinguish from the halftone bits of. As symbolized by representation 270, the screened halftone bit is applied to one input of switch 275 via lead 274. The zero value is applied to another input of the switch via lead 278. From the AND combination of clipping variables K and Y,
Based on the value produced by AND gate 273 on lead 276 and applied to the control input of switch 275, the switch directs the halftone screening bit or zero value to output lead 277. Lead wire 277
The bits appearing at are stored at sequential addresses in the current output block of the output buffer. Lead wire 27
The values of the clipping variables K and L appearing at 1 are both 1 and the screened halftone bits produced by the halftone screener are valid. Therefore, AND
The output of gate 273 is high for that bit, but zero otherwise.

【0048】既に検討した通り、コントーンサンプリン
グおよびスクリーニング操作は、ロックステップ、すな
わち、ユニソン(unison)で起こり、各操作とも対応する
サンプルポイントを同時に作る。コントーンイメージ・
中間調基準面および出力イメージ面(出力バッファ)で
同時に増分する画素の移動、およびその結果生じる画素
位置間の対応を明確に視覚化するには、図10に示すよ
うに縦に位置決めされたこれらの面を考慮する必要があ
る。増分サンプリング距離がコントーンイメージ面630
および中間調基準面620 で適切に選択された状態で、コ
ントーンイメージ回転角度φ、中間調スクリーン角度
θ、およびスケールファクター(αおよびβ)が与えら
れると、出力イメージ面の現在の出力位置と一緒にコン
トーンおよび中間調基準面の対応する現在のサンプリン
グ位置が、必ず共通のライン上に残る。詳細には、3つ
の面すべてを縦に横切るライン685 上に残る。これらの
3つの各面で別のポイントにサンプリングが進むと、ラ
イン685 はその位置をシフトし、これらの3つの縦に位
置決めされたポイントの別のセットと、各面で1回横切
るようにする。
As discussed above, the contone sampling and screening operations occur in lockstep, or unison, with each operation simultaneously creating a corresponding sample point. Contone image
In order to clearly visualize the pixel increments that simultaneously increase in the halftone reference plane and the output image plane (output buffer), and the resulting correspondence between pixel locations, these vertically aligned pixels are shown in FIG. Aspects need to be considered. Incremental sampling distance is contone image plane 630
And, with proper selection in the halftone reference plane 620, given the contone image rotation angle φ, halftone screen angle θ, and scale factors (α and β), the current output position of the output image plane and Together, the corresponding current sampling positions of the contone and halftone reference planes always remain on a common line. Specifically, it remains on line 685, which runs vertically across all three sides. As sampling progresses to another point on each of these three planes, line 685 shifts its position so that it crosses another set of these three vertically positioned points, once on each plane. .

【0049】タイル661 および664 の出力データを含む
ことになるブロック651 および654などの出力イメージ6
40 のブロックであればどのブロックであっても、発明
のプロセスが動作して、鎮線670 で示す通り、データの
対応するボックス、すなわち、コントーンイメージ面お
よび中間調基準面のボックス633 および623 を介してサ
ンプリングする。サンプリングされたコントーン値は、
破線683 で示される通り、サンプリングする特定の中間
調基準面を選択するのに使用される。サンプリングされ
た中間調ビットは、破線687 で示す通り、出力イメージ
面610 の対応する出力タイル661 および664 内の出力位
置を埋めるのに使用される。本発明のプロセスは、出力
イメージ640 の左上の角のブロックから始まる出力イメ
ージ面の連続ブロックを埋め、コントーンおよび中間調
基準面の対応するデータボックスを介して処理をおこな
って、出力イメージ640 の右下の角まで進む。このプロ
セスは、当該イメージの書込みが完了するまで続けられ
る。
Output image 6 such as blocks 651 and 654, which will contain the output data for tiles 661 and 664.
For any of the 40 blocks, the process of the invention operates and the corresponding boxes of data, namely the contone image plane and the halftone reference plane boxes 633 and 623, as shown by the line 670. To sample via. The sampled contone value is
Used to select the particular halftone reference plane to sample, as indicated by dashed line 683. The sampled halftone bits are used to fill the output locations within the corresponding output tiles 661 and 664 of the output image plane 610, as shown by dashed line 687. The process of the present invention fills a contiguous block of the output image plane starting from the block in the upper left corner of the output image 640 and processes it through the corresponding data boxes in the contone and halftone reference planes to produce the right image of the output image 640. Go to the bottom corner. This process continues until the writing of the image is complete.

【0050】C. 発明の技法を使用するイメージ処理
システム 本発明のプロセスの質的説明は上述の通りである。図1
2および図13は、イメージ処理機能の一部として当該
プロセスを実施するイメージ処理システム700のハイレ
ベルブロック図を示す。図11は図12および図13で
構成される。
C. Image processing using inventive techniques
System A qualitative description of the process of the invention has been given above. Figure 1
2 and 13 show a high level block diagram of an image processing system 700 implementing the process as part of the image processing function. FIG. 11 is composed of FIGS. 12 and 13.

【0051】図に示す通り、システム700 は、コマンド
・コントロールプロセッサ701 、イメージデータデコン
プレッサ720 、イメージ処理パイプライン730 および出
力バッファ・メモリー管理ユニット760 で形成され、す
べてバス750 で相互に接続されている。システム700
は、入力バス705 上に適切なヘッダー750 を有するパケ
ットの形で入力イメージデータを受け取る。当該パケッ
トのそれぞれは、付随するイメージデータと共に1つ以
上の特定のイメージ処理命令を含み、付随するイメージ
データは通常は圧縮されている。コマンド・コントロー
ルプロセッサ701は、システム700 の全体的なコントロ
ールをおこなう。この点で、プロセッサ701 は、各入力
パケットのヘッダーを読み込んで、別の処理をおこなう
ために当該パケットを適切な目的地へ送る。当該処理
は、イメージ回転、スケーリングあるいは中間調処理な
どの場合には、プロセッサ701 自体から、あるいは、デ
コンプレッサ720 あるいはイメージ処理パイプライン73
0 など、他の場所から開始できる。出力バッファ・メモ
リー管理ユニット760 は、処理されたイメージデータの
一時的格納、および/あるいは、局部的使用のために、
あるいは、マーキングエンジンの出力イメージデータを
保持するためのフレームメモリーとして、ランダムアク
セルメモリー(RAM)の複数ページを提供する。
As shown, the system 700 comprises a command control processor 701, an image data decompressor 720, an image processing pipeline 730 and an output buffer memory management unit 760, all interconnected by a bus 750. There is. System 700
Receives input image data in the form of a packet with an appropriate header 750 on input bus 705. Each of the packets includes one or more specific image processing instructions with associated image data, the associated image data typically being compressed. The command control processor 701 controls the system 700 as a whole. At this point, the processor 701 reads the header of each incoming packet and sends the packet to the appropriate destination for further processing. In the case of image rotation, scaling, or halftone processing, the processing is performed by the processor 701 itself, the decompressor 720, or the image processing pipeline 73.
You can start elsewhere, such as 0. The output buffer / memory management unit 760 is provided for temporary storage and / or local use of processed image data.
Alternatively, multiple pages of random accelerator memory (RAM) are provided as a frame memory for holding the output image data of the marking engine.

【0052】コマンド・コントロールプロセッサ710
は、レジスター711 、マイクロコンピュータ713 、ROM
715 およびRAM717を有し、これらはすべてローカルバス
716 で相互に接続されている。当該バスは、図示されて
いない適切な回路で、入力バス705 および相互接続バス
719 および750 にインターフェースで接続されている。
レジスター711 は、リード線705 に加えられている外部
コマンドでロードでき、また、当該コマンドで読みだす
ことができるが、各種のパラメータを格納し、システム
700 の全体的コントロールをおこなう。またレジスタ71
1 は、アップストリームイメージハンドリング、および
/あるいは、処理システムにインターフェースをとるた
めに使用する状態情報を提供する。マイクロコンピュー
タ713 は、一般に市販されている各種のシングルチップ
マイクロコンピュータの1つである。ROM 715 は、プロ
グラムおよび定数データを格納する。RAM 717 は、マル
チレベルの中間調基準(フォント)データ、詳細には、
以下に検討する通り、16個の異なる256 レベル中間調基
準セルスタック、および、あらかじめ定義されたノイズ
データを格納する。当該RAM には、システムの初期化中
に、バス705 に現れたフロントデータおよびノイズデー
タがロードされる。
Command Control Processor 710
The register 711, microcomputer 713, ROM
715 and RAM717, all of which are local buses
716 connected to each other. The bus is an appropriate circuit, not shown, that has an input bus 705 and an interconnect bus.
Interfaced to 719 and 750.
Register 711 can be loaded and read by an external command applied to lead 705, but it stores various parameters and is used by the system.
Takes overall control of 700. Also register 71
1 provides upstream image handling and / or state information used to interface to the processing system. The microcomputer 713 is one of various single-chip microcomputers that are generally commercially available. ROM 715 stores programs and constant data. RAM 717 is a multi-level halftone reference (font) data,
Stores 16 different 256-level halftone reference cell stacks and pre-defined noise data, as discussed below. The RAM is loaded with front data and noise data appearing on bus 705 during system initialization.

【0053】デコンプレッサ720 は、入力イメージデー
タのパケットを受け取り、公知の方法により、一時的に
システム700 に格納され、処理される圧縮データを解除
する。
The decompressor 720 receives the packet of input image data and decompresses the compressed data which is temporarily stored in the system 700 and processed by known methods.

【0054】イメージ処理パイプライン730 は、圧縮解
除されたイメージデータに特定のイメージ処理をおこな
う。当該パイプラインは、トライリニアインターポレー
タ733 、RAM メモリー731 および735 、タイル・画素プ
ロセッサ(TPP)740 およびタイリングRAM742で構成され
る。入力される24ビットイメージデータ(24D)は、トラ
イリニアインターポレータ733 、およびTPP740に適用さ
れる。詳細には、インターポレータ733 は、3次元ベー
スでテーブル索引および補間操作を使って、公知の各種
のカラートランスフォームをおこなって、入力される
赤、緑、青(R 、G 、B)値をシアン、黄色、マゼンタ
(C 、Y 、M 、B)値に変換する。RAM731は、インターポ
レータ733 が使用する各種の索引テーブルを格納する。
当該索引テーブルはどちらかといえば複雑であるが、"
基準" 出力ライターで作成される。トライリニアインタ
ーポレータは、RAM735に格納された索引テーブルに送ら
れる12ビット出力データ(12D)値を提供する。後者の索
引テーブルは比較的簡単で、12ビット出力データを8ビ
ットの形に変換して、ドットゲインアフェクトなどの
C、Y 、M 、K 値、特に、現在使用されている出力ライ
ターの補償をおこなう。異なる出力ライター(マーキン
グエンジン)が使用される場合は、RAM735に格納された
テーブルが適切に変化して、当該ライターの出力特性を
示す。RAM735の索引テーブルを変更すると、RAM731に格
納されたどちらかといえば複雑な3次元補間テーブルを
変更する必要はない。24ビットカラー入力データではな
く8ビット(コントーン)がインターポレータ733 に適
用されると、コントーンデータは変化しないで、単にイ
ンターポレータおよびRAM735を介してTPP740に送られ
る。
The image processing pipeline 730 performs specific image processing on the decompressed image data. The pipeline is composed of a trilinear interpolator 733, RAM memories 731 and 735, a tile pixel processor (TPP) 740 and a tiling RAM 742. The input 24-bit image data (24D) is applied to the trilinear interpolator 733 and TPP740. In particular, the interpolator 733 uses a table index and interpolation operation on a three-dimensional basis to perform various well-known color transforms and input red, green, blue (R, G, B) values. To cyan, yellow, and magenta (C, Y, M, B) values. The RAM 731 stores various index tables used by the interpolator 733.
The index table is rather complicated,
Created with a "reference" output writer. The tri-linear interpolator provides a 12-bit output data (12D) value that is sent to the look-up table stored in RAM735. The latter look-up table is relatively simple, 12-bit. Converts the output data into 8-bit form, such as dot gain effect
Compensates for C, Y, M, K values, especially the currently used output writers. If a different output writer (marking engine) is used, the table stored in RAM 735 changes appropriately to show the output characteristics of that writer. If the index table of RAM735 is changed, there is no need to change the rather complicated three-dimensional interpolation table stored in RAM731. If 8 bits (contones) are applied to the interpolator 733 rather than 24-bit color input data, the contone data is unchanged and is simply sent to the TPP 740 via the interpolator and RAM 735.

【0055】RAM735が提供する8ビットデータは、TPP
740 に適用されるコントーン値である。当該TPP は、以
下に詳細に検討される通りマイクロコンピュータ713 と
結合されて、タイルベースのイメージ回転、スケーリン
グおよび中間調スクリーニングを提供するために発明の
技法を実施する。TPP 740 はマイクロコンピュータ713
で適切に構成され、1度に1つのコントーンデータタイ
ル全部を処理し、例えば、中間調処理された出力ビット
を作りだす。タイル開始座標を受け取ることによりTPP
が構成されると、TPP は、マイクロコンピュータ713 と
は無関係に完全なコントーンタイルを処理する。当該マ
イクロコンピュータはコントーンイメージ全体をタイル
化し、各タイルのスタートポイントの座標、すなわち、
ULC の座標、コントーンおよび中間調基準サンプリング
の増分サンプリング距離を計算し、当該情報をTPP に提
供した後、TPP に対して最初のコントーンタイルの処理
開始命令を出す。TPP により当該タイルの完全処理が終
わると、マイクロコンピュータは、次のコントーンタイ
ルのTPP の開始タイル座標を更新し、TPP よりタイルの
処理を開始する。このように、各連続コントーンイメー
ジタイルに対する当該処理はコントーンイメージ全体の
処理が終わるまで続く。通常128 キロバイトx 8ビット
のタイリングRAM742は、TPP 740 が使うコントーンイメ
ージの "N"の完全ラインを、すなわち、" ストリップ"
を効果的に格納する。RAM742は、高速RAM で形成される
が、比較的小型であることから、相当な速度の完全サイ
ズのフレームバッファより安く実施が複雑ではないとい
う利点がある。RAM742に格納されたコントーンイメージ
ラインの実際の番号 "N"にもとづいて、TPP 740 は、高
速および低速スキャン方向の各方向に、N から 1/N の
範囲内でイメージスケーリングをおこなうことができ
る。
The 8-bit data provided by RAM735 is TPP
The contone value applied to the 740. The TPP is combined with a microcomputer 713, as discussed in detail below, to implement the inventive techniques to provide tile-based image rotation, scaling and halftone screening. TPP 740 is a microcomputer 713
Properly configured to process one contone data tile at a time, producing, for example, halftoned output bits. TPP by receiving tile start coordinates
Is configured, the TPP processes complete contone tiles independently of the microcomputer 713. The microcomputer tiles the entire contone image, and the coordinates of the start point of each tile, that is,
It calculates the ULC coordinate, the incremental sampling distance of the contone and halftone reference sampling, provides this information to the TPP, and then issues a command to the TPP to start processing the first contone tile. When the TPP completes the processing of the tile, the microcomputer updates the starting tile coordinates of the TPP of the next contone tile, and starts processing the tile from the TPP. Thus, the process for each successive contone image tile continues until the entire contone image has been processed. Tiling RAM 742, which is typically 128 Kbytes x 8 bits, is a "strip" of "N" complete lines of the contone image used by the TPP 740.
To store effectively. The RAM 742 is formed of high-speed RAM, but its relatively small size has the advantage that it is cheaper and less complex to implement than a full-size frame buffer of considerable speed. Based on the actual number "N" of the contone image lines stored in RAM742, the TPP 740 can perform image scaling within N to 1 / N in each of the fast and slow scan directions. ..

【0056】出力バッファ・メモリー管理ユニット760
は、アドレスジェネレータ762 、メモリーコントローラ
769 および出力バッファ766 を含む。出力情報は、パイ
プライン730 から、バス747 および750 介して、ユニッ
ト760 に適用される。当該ユニット内で、当該情報のア
ドレス部分は、バス761 を介して、アドレスジェネレー
タ762 に送られ、当該アドレスジェネレータは当該アド
レスをブロックアドレスに変換し当該ブロックアドレス
をリード線763 を介してメモリーコントローラに送る。
当該メモリーコントローラは、当該ブロックアドレスを
適切なメモリーアドレスに変換し、後者のアドレスをリ
ード線767 を介して出力バッファ766 のアドレス入力に
送る。当該出力情報のデータ部分は、バス761 を介して
バッファ766 のデータ入力に送られる。これらのバッフ
ァは複数ページのRAM768を含む。当該RAM は、ページバ
ッファの同一サイズの2つグループ768 A および768 B
に分割されており、これらは公知の「ピンポン」方式で
全体として操作され、データを他のグループ、すなわ
ち、768 B から読み込みながら、出力データをもう一つ
のグループ 768A に書き込むことができるRAM である。
バッファ768 から読み取られた出力データは、出力デー
タリード線772 を介して、2進(「バイレベル」)マー
キング(書込み)エンジンに供給される。
Output buffer / memory management unit 760
Address generator 762, memory controller
Includes 769 and output buffer 766. Output information is applied to unit 760 from pipeline 730, via buses 747 and 750. In the unit, the address portion of the information is sent to the address generator 762 via the bus 761, which converts the address into a block address and the block address to the memory controller via the lead wire 763. send.
The memory controller translates the block address into an appropriate memory address and sends the latter address to the address input of output buffer 766 via lead 767. The data portion of the output information is sent to the data input of buffer 766 via bus 761. These buffers contain multiple pages of RAM 768. The RAM consists of two groups of page buffers of the same size 768 A and 768 B.
These are RAMs that are manipulated as a whole in a well-known "ping-pong" fashion, where the output data can be written to another group, 768 A , while reading data from another group, 768 B. is there.
The output data read from buffer 768 is provided to a binary (“bilevel”) marking (writing) engine via output data lead 772.

【0057】次に、図12および図13に示されている
システム700 に使用される当該発明の技法の2チップ実
施(マイクロコンピュータ713 およびTPP プロセッサ74
0)のブロック図を示す図14を参照する。当該手段は、
全体で、タイルトランスフォーム・中間調(TTH)回路80
0 と呼ばれる。
Next, a two-chip implementation of the inventive technique used in the system 700 shown in FIGS. 12 and 13 (microcomputer 713 and TPP processor 74).
Reference is made to FIG. 14 which shows a block diagram of (0). The means is
Overall, tile transform / halftone (TTH) circuit 80
Called 0.

【0058】TTH 回路800 は、マイクロコンピュータ71
3 、TPP 740 および出力バッファ・メモリー管理ユニッ
ト760 で形成される。上記に検討した通り、マイクロコ
ンピュータ713 は、コントーンイメージおよび増分サン
プリング距離の各タイルの開始ポイントを計算する。当
該マイクロコンピュータは、回転角度φ、スクリーン角
度θの正弦および余弦も計算する。なぜなら当該計算
は、TPP でおこなうよりもソフトウェアで実施する方が
簡単である。TPP 740 は、専用ハードウェア回路で、詳
細には、コントーン基準面および中間調基準面に形成さ
れた領域を通してサンプリングすることにより各タイル
を処理する、ゲートアレー、応用特定集積回路(ASIC)
あるいは別の簡単に注文で入手できる大規模集積回路で
形成される。
The TTH circuit 800 is a microcomputer 71
3, formed by TPP 740 and output buffer memory management unit 760. As discussed above, the microcomputer 713 calculates the starting point for each tile of the contone image and incremental sampling distance. The microcomputer also calculates the sine and cosine of the rotation angle φ and the screen angle θ. Because the calculation is easier to perform in software than it is in TPP. The TPP 740 is a dedicated hardware circuit, specifically a gate array, application specific integrated circuit (ASIC) that processes each tile by sampling through regions formed in the contone and halftone reference planes.
Alternatively, it is formed from another easily customizable large scale integrated circuit.

【0059】マイクロコンピュータおよびそのコントロ
ールプログラムはTPP と一緒に、全体で、2つのネスト
されたループを実行する。2つのループの内、アウター
ループは、主にマイクロコンピュータ内で実行をおこな
ってイメージの各コントーンタイルを処理する。一方、
インナーループは、TPP 内で単独に実行して各タイル内
の各画素を処理する。以下に詳細に検討する通り、当該
マイクロコンピュータは各コントーンタイルを処理でき
るよう、TPP を適切に配置してからTPP に対し当該タイ
ルを完全処理するよにう命令する。さらに、当該マイク
ロコンピュータは、以下に検討する通り、スケーリング
パラメータ、回転パラメータおよび中間調処理パラメー
タなど、全体イメージに必要な各種のパラメータ値を設
定する。これらのパラメータが設定されると、イメージ
全体を通して一定に保たれる。
Together with the TPP, the microcomputer and its control program execute two nested loops in total. The outer loop, of the two loops, runs primarily in the microcomputer to process each contone tile of the image. on the other hand,
The inner loop runs independently in the TPP to process each pixel in each tile. As discussed in detail below, the microcomputer will place the TPP properly so that it can process each contone tile and then instruct the TPP to fully process the tile. Further, the microcomputer sets various parameter values necessary for the entire image, such as scaling parameters, rotation parameters, and halftone processing parameters, as will be discussed below. Once these parameters are set, they remain constant throughout the image.

【0060】図14に示す通り、入力(コントーン)デ
ータは、リード線805 からのジョブコントロールデータ
(コマンド情報)と共に、リード線803 を介してマイク
ロコンピュータ713 に適用される。各種の監視制御信号
も、リード線807 を介してマイクロコンピュータに適用
されて、イメージ処理を調整、コントロールする。当該
マイクロコンピュータは、使用可/使用中などの状態情
報をリード線811 に提供し、入力フロー制御信号をリー
ド線809 に提供する。当該状態情報はアップストリーム
回路(図示なし)に接続されて、TTH 回路800 の現在の
状態を知らせる。フロー制御信号は、当該マイクロコン
ピュータが一度に受け取る入力コントーンデータ量の調
整に使用される。マイクロコンピュータ713 は、構成情
報はリード線813 を介して、タイル情報はリード線815
を介して、また、各種制御信号はリード線817 を介し
て、TPP 740 に提供する。構成情報およびタイル情報
は、イメージの各連続コントーンタイルの処理にTPP が
必要とするパラメータ数値である。当該構成イメージ
は、1イメージに1回適用される。一方、当該タイル情
報は、連続コントーンタイル毎に更新される。TPP 740
は、使用可/使用中信号などの状態情報をマイクロコン
ピュータに提供する。リード線819 から提供される当該
状態情報を監視することにより、マイクロコンピュータ
は、別のタスクの実行の他に連続コントーンタイルのパ
ラメータ値を計算する。一方、TPP は、現タイルの画素
サンプリング操作を実施する。さらに、TPP の処理が終
了して状態を変更すると直ぐに、マイクロコンピュータ
は、簡単なハンドシェークプロトコルと共に、次の連続
コントーンタイルのパラメータ値を持つTPP をロードし
てからタイル処理を開始して、TPP の待ち時間を最小化
し、システム処理能力を増加させる。以下に詳細に検討
する通り、TPP は、RAM717から適切な中間調フロントデ
ータおよびノイズデータにアクセスして、中間調スクリ
ーニングの間に使用できるようにする。そのためには、
TPP は、適切なアドレス情報(現在の x yサンプリング
位置のアドレス)をリード線841 を介してRAM717に適用
する。また、リード線843 を介して、求められた中間調
データおよびノイズデータを受け取る。タイリングRAM7
42は、アドレスリード線831 およびデータリード線833
を介して、TPP 740 に接続され、現在処理されているコ
ントーンタイルの "N" ラインストリップのコントーン
データを格納する。コントーンデータの最初のストリッ
プは、タイル処理の前にマイクロコンピュータ713 によ
ってRAM742にロードされる。この時、各連続ストリップ
は各先行ストリップが完全に処理された後にロードされ
る状態となっている。RAM742に格納されたデータは、TP
P によってサンプリングされる。
As shown in FIG. 14, the input (contone) data is applied to the microcomputer 713 via the lead wire 803 together with the job control data (command information) from the lead wire 805. Various supervisory control signals are also applied to the microcomputer via leads 807 to coordinate and control image processing. The microcomputer provides status information, such as ready / busy, on lead 811 and an input flow control signal on lead 809. The status information is connected to an upstream circuit (not shown) to inform the current status of the TTH circuit 800. The flow control signal is used to adjust the amount of input contone data that the microcomputer receives at one time. The microcomputer 713 uses the lead wire 813 for the configuration information and the lead wire 815 for the tile information.
Various control signals are provided to the TPP 740 via a lead wire 817. The composition information and tile information are parameter values that the TPP needs to process each successive contone tile of the image. The constituent image is applied once to one image. On the other hand, the tile information is updated for each continuous contone tile. TPP 740
Provides the microcomputer with status information such as a ready / busy signal. By monitoring the status information provided on lead 819, the microcomputer calculates the parameter value of the continuous contone tile in addition to performing another task. On the other hand, TPP performs the pixel sampling operation of the current tile. Furthermore, as soon as the processing of the TPP is finished and the state is changed, the microcomputer loads the TPP with the parameter value of the next consecutive contone tile with a simple handshake protocol and then starts the tile processing to start the TPP. Minimize latency and increase system throughput. As discussed in detail below, the TPP will access the appropriate halftone front data and noise data from RAM717 for use during halftone screening. for that purpose,
The TPP applies the appropriate address information (address of the current xy sampling location) to RAM 717 via lead 841. Also, the obtained halftone data and noise data are received via the lead wire 843. Tiling RAM7
42 is address lead 831 and data lead 833
Connects to the TPP 740 via and stores the contone data for the "N" line strip of the contone tile currently being processed. The first strip of contone data is loaded into RAM 742 by microcomputer 713 prior to tiling. At this time, each successive strip is ready to be loaded after each preceding strip has been completely processed. The data stored in RAM742 is TP
Sampled by P.

【0061】TPP が、当該出力イメージの現ブロックの
各出力ビットを生成すると、当該ビットは、FIFO(先入
れ先出し方式)ファイル857 内に格納される。FIFOファ
イルは、作られた現出力ブロックのデータを累積する。
このFIFOは、非同期コントローラで読み取ったバッファ
で通常実施されるので破線で示される。
When the TPP produces each output bit of the current block of the output image, the bit is stored in the FIFO (First In First Out) file 857. The FIFO file accumulates the data of the current output block created.
This FIFO is shown in dashed lines as it is typically implemented in a buffer read by an asynchronous controller.

【0062】TPP が、出力データの各部ブロックを生成
し、当該事象をハンドシェークプロトコルで、また、リ
ード線819 に現れた状態情報の変更にもとづいて、マイ
クロコンピュータ713 に知らせると、当該マイクロコン
ピュータは、出力イメージの当該ブロックの座標を、リ
ード線823 を介してアドレスジェネレータ762 に供給す
る。当該アドレスジェネレータは、ブロック転送(「BL
Ting」)プロセッサであり、実ブロックアドレスを出力
バッファ766 の当該イメージブロック座標に変換し、当
該アドレスをメモリーコントローラ769 に適用する。そ
の後、当該アドレスジェネレータは、ブロックアドレス
を当該コントローラに適用し、マイクロコンピュータに
よって、出力データの現ブロックのブロック転送を、FI
FOファイル815 から出力バッファ766 に開始する。リー
ド線722 に現れる出力バッファ766 の内容は、マーキン
グエンジンに適用されて、出力イメージのハードコピー
に印刷される。
When the TPP generates each block of the output data and notifies the event to the microcomputer 713 based on the handshake protocol and the change in the status information appearing on the lead wire 819, the microcomputer 713 The coordinates of the block of the output image are supplied to the address generator 762 via the lead wire 823. The address generator uses block transfer (“BL
Ting ”) processor, which translates the real block address into the image block coordinates of the output buffer 766 and applies the address to the memory controller 769. Then, the address generator applies the block address to the controller, and the microcomputer transfers the block of the current block of the output data to the FI.
Start from FO file 815 to output buffer 766. The contents of output buffer 766 appearing on lead 722 are applied to the marking engine and printed into a hard copy of the output image.

【0063】D. マイクロコンピュータ713 およびTP
P 740 で実行される操作の擬似コード記述 図14のTTH 回路800 に示すマイクロコンピュータ713
で実行されるメインループ900 のフローチャートは、図
16および図17に示す。図15は図16〜図17で構
成されていることを示す。当該ループは、全体イメージ
の処理、また、TPP 740 操作の構成および調整をおこな
って、コントーンイメージの各タイルを処理する。
D. Microcomputer 713 and TP
Pseudocode description of operations performed on P 740 Microcomputer 713 shown in TTH circuit 800 of FIG.
The flow chart of the main loop 900 executed in FIG. 16 is shown in FIGS. FIG. 15 shows that it is configured by FIGS. 16 to 17. The loop processes the entire image and also configures and coordinates the TPP 740 operation to process each tile of the contone image.

【0064】詳細には、メインループ900 に入力される
と先ず、ブロック905 が実行処理される。実行される
と、当該ブロック905 は公知のパワーアップ初期化シー
ケンスをおこなう。その後、実行処理はブロック910 に
進む。実行されると、ブロック910 は以下に記載の、コ
ントーンイメージ処理の「セットアップ」TPP 回路800
に使用される各種のパラメータ値の初期値を計算する。
一旦、この処理がおこなわれると、実行処理は判断ブロ
ック915 に進む。当該ブロックは、TPP 回路800がコン
トーンイメージ処理を開始するよう命令されたかどうか
を判断する。TTH回路800 がイメージ処理命令をまだ受
けていない場合は、実行処理は、当該判断ブロックから
出ているNOパス917 を経由してブロック920 に進む。ブ
ロック920は、実行されると、最新のイメージ処理コマ
ンドが入力されたジョブコントロールデータを読み込
む。その後、実行処理は、判断ブロック915 に戻って当
該コマンドを妨げる。一方、TTH 回路800 が入力された
コントーンイメージの処理命令を受けている場合は、実
行処理は、判断ブロック915 から出ているYES パス916
を通ってブロック925 に進む。ブロック925 が実行され
ると、以下に記載の通り、現在処理されようとしている
全体イメージに対して一定である各種パラメータの初期
値を計算する。
More specifically, when input to the main loop 900, the block 905 is first processed. When executed, the block 905 performs the known power-up initialization sequence. Thereafter, execution proceeds to block 910. Once executed, block 910 is described below, in the contone image processing “setup” TPP circuit 800.
Calculate initial values for various parameter values used in.
Once this is done, execution proceeds to decision block 915. The block determines if the TPP circuit 800 has been commanded to begin contone image processing. If the TTH circuit 800 has not yet received the image processing instruction, execution proceeds to block 920 via NO path 917 exiting from the decision block. When executed, block 920 reads the job control data with the latest image processing command entered. The execution process then returns to decision block 915 to block the command. On the other hand, if the TTH circuit 800 has received the processing instruction of the input contone image, the execution processing is YES YES from the decision block 915.
Continue through to block 925. When block 925 is executed, it computes initial values for various parameters that are constant for the entire image currently being processed, as described below.

【0065】ブロック925 が完全に実行されると、実行
処理はブロック930 に進む。実行されると、以下に示す
通り、現在処理されているイメージのコントーンタイル
を識別する各種パラメータの初期値を計算する。する
と、ブロック930 は、当該パラメータ値をTPP 740 にロ
ードする。その後、ブロック935 は、TPP 740 にコント
ーンイメージの当該タイルを処理する命令を出す。その
後、TPP 740 が当該タイルを処理している間に、実行処
理はブロック940 に進む。当該ブロックは、実行される
とTPP 740 が現在作成中の当該コントーンタイルのデー
タ用の出力イメージ内の現ブロックのアドレスの(x, y)
座標を生成する。その後、図16および図17に示す通
り、実行処理は判断ブロック945 に進む。当該判断ブロ
ックは、TPP 740 が現在のコントーンタイル処理を完了
するまで、NOパス946 による実行閉回路によりマイクロ
コンピュータを待たせる。TPP 740 が現在のタイル処理
を完了すると、実行処理は、判断ブロック945 から出て
いるYES パス947 を通ってブロック950 に進む。ブロッ
ク950 が実行されると、アドレスジェネレータ762 (図
14参照)に(x, y)ブロック座標値を提供し、当該アド
レスの受取りを確認するアドレスジェネレータからハン
ドシェークを受け取ると直ぐに、ブロック950は当該タ
イルに保持されているブロック出力データのブロック転
送をFIFO 857から出力バッファ766 へ行なうようTPP 74
0 に命令する。ブロック950 が完全に実行されると、実
行処理は、図16および図17に示す通り、判断ブロッ
ク955 に進む。当該判断ブロックは、コントーンイメー
ジが完全に処理されたかどうか、すなわち、まだ処理し
なければならないコントーンイメージがあるかどうかを
判断する。当該イメージが完全に処理されていない場
合、判断ブロック955 は、NOパス958 を介して実行処理
をブロック930 に戻し、当該イメージの次の連続コント
ーンタイルのパラメータ値などを計算する。一方、コン
トーンイメージが完全に処理されていた場合は、判断ブ
ロック955 は、YES パス959 を介して実行処理を判断ブ
ロック915 に戻し、次のイメージ処理命令を待ち、以下
同様に行なわれる。
When block 925 is completely executed, execution proceeds to block 930. When executed, it computes initial values for various parameters that identify the contone tile of the image currently being processed, as shown below. Block 930 then loads the TPP 740 with the parameter value. Thereafter, block 935 issues a TPP 740 instruction to process the tile of the contone image. Execution then proceeds to block 940 while TPP 740 is processing the tile. The block is the address of the current block in the output image for the data of the contone tile that the TPP 740 is currently creating when executed (x, y).
Generate coordinates. The execution process then proceeds to decision block 945, as shown in FIGS. The decision block causes the microcomputer to wait with an execution closed circuit by NO path 946 until the TPP 740 completes the current contone tile processing. When the TPP 740 has completed the current tile processing, execution processing proceeds to YES block 947 exiting decision block 945 to block 950. When block 950 is executed, block 950 provides the address generator 762 (see FIG. 14) with the (x, y) block coordinate values and as soon as it receives a handshake from the address generator to acknowledge receipt of that address. TPP 74 to transfer the block output data held in the block from FIFO 857 to the output buffer 766.
Command 0. Once block 950 has been completely executed, execution proceeds to decision block 955, as shown in FIGS. The decision block determines whether the contone image has been completely processed, that is, there are still contone images that have to be processed. If the image has not been completely processed, decision block 955 returns execution processing to block 930 via NO path 958 to calculate the parameter values, etc. for the next consecutive contone tile of the image. On the other hand, if the contone image has been completely processed, decision block 955 returns execution to YES block 959 to decision block 915, waits for the next image processing instruction, and so on.

【0066】擬似コードの詳細な説明に入る前に、今後
の理解を助けるために、また、容易に参照できるよう
に、ここで、以下の用語、座標、変数を定義する。
Before going into the detailed description of the pseudo code, the following terms, coordinates and variables are defined here for the sake of future understanding and for easy reference.

【0067】用語 定義 デルタ −増分量を意味する。 Term Definition Delta-means incremental amount.

【0068】 高速/低速 −通常は、ページ、タイルあるいは中間調基準セルを横 切る高速スキャン方向を意味する。低速スキャン方向 は、高速スキャン方向に直交で、通常は、ページ、タ イルあるいは中間調基準セルの下方に向ける。Fast / Slow-usually means the fast scan direction across a page, tile, or halftone reference cell. The slow scan direction is orthogonal to the fast scan direction and is usually oriented below the page, tile or halftone reference cells.

【0069】 k, l −クリッピング座標 u, v −コントーンサンプリングアドレス座標 x, y −中間調基準セルサンプリング座標 p, q −出力イメージ(ページ)アドレス変数 定義 △tile_u _slow、△tile_v _slow −コントーンイメージ面の低速および高 △tile_u _fast、△tile_v _fast 速スキャン方向のタイル間移動の増分 tile_u 、tile_v −現在のコントーンタイル位置 △tile_x _slow、△tile_y _slow −中間調基準セルを通しての低速および △tile_x _fast、△tile_y _fast 高速スキャン方向のタイル間移動の増 分(スクリーニング) tile_x 、tile_y −現在の中間調基準セルタイル位置 △tile_p _slow、△tile_q _slow −出力バッファを通しての低速および高 △tile_p _fast、△tile_q _fast 速スキャン方向のタイル間移動の増分 tile_p 、tile_q −出力バッファの現在のタイル位置 p _tile_start (=0) −出力バッファのタイルオフセット q _tile_start (=0) (普通、タイリングの場合はゼロ) △p φ, △q φ −出力ブロックのエッジと対応するコン トーンタイルの角との間の位置のオフ セット △pixel _x _slow、△pixel _y _slow −中間調基準セルを通しての低速お △pixel _x _fast、△pixel _y _fast よび高速スキャン方向の移動増分 画素サンプリング pixel _x 、△pixel _y −中間調基準セルのブロック内の現在の 画素サンプリング位置 △pixel _u _slow、△pixel _v _slow −コントーンイメージを通しての低 △pixel _u _ fast 、△pixel _v _fast 速および高速スキャン方向の移動 の増分画素サンプリング pixel _u 、, pixel _v −コントーンイメージのコントーンボッ クスの現在の画素サンプリング位置 △pixel _k _slow、△pixel _l _slow −コントーンイメージを通しての低 △pixel _k _fast、△pixel _l _fast 速および高速スキャン方向のクリ ッピング変数の増分画素移動 pixel _k 、pixel _l −コントーンイメージ内で処理される現 在のコントーンボックスの画素につい ての現クリッピング位置 イメージ_u(=0) −コントーンイメージの初期座標(イメ イメージ_v =0) ージをクリップする場合は、0以外可 能) イメージ_x 、イメージ_y −中間調スクリーンオフセット(スクリ ーンのオフセットに使用できる) block _size、tile_size −出力ブロックサイズおよび(コントー ンと出力)タイルサイズ △k _block 、△l _block −各種面におけるブロック間移動の増分 △u _block 、△v _block (コントーン面ではボックス間) △x _block 、△y _block △p _block 、△q _block block _k 、block _l −クリッピング変数用の、および、コン block _u 、block _v トーンイメージ(詳細には、コントー block _x 、block _y ンボックス)、中間調基準セル、およ block*p 、block _q び出力(ページ)バッファ内の現在の ブロック位置 2 16 −番号をレジスターの上位16ビットにシ フトするのに使用する定数(2 16) 当該定義が行われたので、これらを記憶し、次に、擬似
コードの詳細な説明をおこなう。
K, l − Clipping coordinates u, v − Contone sampling address coordinates x, y − Halftone reference cell sampling coordinates p, q − Output image (page) address variable definition Δtile_u_slow, Δtile_v_slow-Contone Low and high image plane △ tile_u _fast, △ tile_v _fast speed Increment of movement between tiles in scan direction tile_u, tile_v-current contone tile position △ tile_x _slow, △ tile_y _slow-low speed through halftone reference cell and △ tile_x _Fast, △ tile_y _fast Increase in movement between tiles in fast scan direction (screening) tile_x, tile_y-Current halftone reference cell tile position △ tile_p_slow, △ tile_q _slow-Slow and high through output buffer △ tile_p_fast, △ tile_q _Fast Increment of movement between tiles in fast scan direction tile_p, tile_q-Output The current tile position of the buffer p_tile_start (= 0) -the tile offset of the output buffer q_tile_start (= 0) (normally zero in the case of tiling) △ p φ, △ q φ-the edge corresponding to the output block Offset of position between corners of tone tile △ pixel _x _slow, △ pixel _y _slow-slow through the halftone reference cell △ pixel _x _fast, △ pixel _y _fast and fast scan direction moving increment pixel sampling pixel _x , △ pixel_y-current pixel sampling position within the block of halftone reference cells △ pixel_u_slow, △ pixel_v_slow-low through the contone image △ pixel_u_fast, △ pixel_v_fast for fast and fast scan directions Incremental pixel sampling of movement pixel_u, pixel_v-current pixel sampling position of contone box of contone image △ pixel_k_slow, △ pixel_l_slow-low through the contone image △ pixel_k_fast, △ pixel_l_fast fast and incremental pixel movement of clipping variable in fast scan direction pixel_k, pixel_l-processed in contone image Current clipping position image for the pixel of the current contone box image_u (= 0) -Initial coordinate of the contone image (image image_v = 0) Can be other than 0 when clipping image Image_x , Image_y-halftone screen offset (which can be used for screen offset) block_size, tile_size-output block size and tile size (control and output) △ k_block, △ l_block-inter-block movement on various planes Increment △ u _block, △ v _block (between boxes on the contone surface) △ x _block, △ y _block △ p _Block, Δq _block block _k, block _l-for clipping variables, and con block _u, block _v tone images (specifically, control block _x, block _y inboxes), halftone reference cells, and block * p, block_q and the current block position in the output (page) buffer 2 16- Constant used to shift the number into the upper 16 bits of the register (2 16 ) Store these since the definition was made. Then, a detailed description of the pseudo code will be given.

【0070】図18は、図16および図17のメインル
ープ900 に発生するステップ925-945 で形成されるタイ
ル処理ルーチン1000のフローチャートである。発明の技
法を使って、ルーチン1000は、全体でコントーンイメー
ジを形成するタイルを連続的に処理して、回転、スケー
リングおよび/あるいは中間調処理された出力イメージ
を作りだす。当該ルーチンは、各種のイメージパラメー
タを設定し、次に、コントーンイメージの「最初」のタ
イルの各種パラメータを設定して、最初のタイルを処理
する。そして、各連続コントーンタイルに特定のパラメ
ータ値を適切に増分して、コントーンイメージ全体が処
理されるまで、各連続タイルを処理する。
FIG. 18 is a flow chart of the tile processing routine 1000 formed in steps 925-945 occurring in the main loop 900 of FIGS. Using inventive techniques, routine 1000 sequentially processes tiles that together form a contone image to produce a rotated, scaled and / or halftoned output image. The routine sets various image parameters and then sets various parameters for the "first" tile of the contone image to process the first tile. Then, each successive tile is processed until the entire contone image is processed by appropriately incrementing the parameter value specific to each successive contone tile.

【0071】詳細には、ルーチン1000に入力されると直
ぐに、実行処理は、「イメージ」パラメータを設定する
ステップ925 に進み、イメージパラメータと呼ばれる各
種の値、すなわち、コントーンイメージ全体に対して一
定のパラメータ値を設定する。当該パラメータ値は、例
えば、コントーン回転角度φ、アナモフィックスケール
ファクターαおよびβ、スクリーン角度θ、およびスク
リーンルーリングにもとづいて計算される。特に、ステ
ップ925 に入力されると直ぐに、ブロック1010はブロッ
クとタイルのサイズを設定するよう実行される。ブロッ
クサイズは、タイルが回転する角度、すなわち、コント
ーンイメージ回転角度φにもとづいて設定される。この
場合、最大のタイルサイズは32である。ブロックサイズ
が設定されると、次にタイルサイズが設定される。その
後、実行処理はブロック1020に進む。このブロック1020
は、各行のタイル数およびタイルのカラム数に関して、
コントーンイメージ内で処理されるタイル数を決定す
る。一旦、決定されると、ブロック1030が実行されて、
コントーンサンプリングおよび中間調基準セルを通して
のサンプリングのための、またクリッピング変数の画素
移動のための増分座標値(固有の「△」値)を計算す
る。その後、ブロック1040が実行されて、コントーンイ
メージ面内、中間調基準セル内および出力バッファを通
しての連続タイル間の移動の増分座標値(固有の「△」
値)を計算する。一旦計算されると、「イメージ」パラ
メータを設定するステップ925 が完了する。
Specifically, as soon as the routine 1000 is entered, execution proceeds to step 925, which sets "image" parameters, where various values, called image parameters, are constant for the entire contone image. Set the parameter value of. The parameter value is calculated based on, for example, the contone rotation angle φ, the anamorphic scale factors α and β, the screen angle θ, and the screen ruling. In particular, once entered in step 925, block 1010 is executed to set the block and tile sizes. The block size is set based on the angle at which the tile rotates, that is, the contone image rotation angle φ. In this case, the maximum tile size is 32. When the block size is set, the tile size is set next. Thereafter, execution processing proceeds to block 1020. This block 1020
With respect to the number of tiles in each row and the number of columns in the tile,
Determines the number of tiles processed in the contone image. Once determined, block 1030 is executed and
Compute incremental coordinate values (unique “Δ” values) for contone sampling and sampling through halftone reference cells, and for pixel movement of clipping variables. Thereafter, block 1040 is executed to increment the incremental coordinate values for movement between consecutive tiles in the contone image plane, in the halftone reference cell, and through the output buffer (a unique "△").
Value) is calculated. Once calculated, the step 925 of setting the "image" parameters is complete.

【0072】この点で、実行処理は、「タイル」パラメ
ータを設定するステップ930 に進む。当該ステップに入
力されると、実行処理は、先ず、ブロック1050に進む。
当該ブロックで実行がおこなわれると、対応するブロッ
クに関連するコントーンタイルの回転によって生じる、
出力ブロックの位置のオフセット値△p φ, △q φを計
算する。当該オフセット値が計算されると、実行処理は
ブロック1060に進む。ステップ930 に位置する当該ブロ
ックの最初の部分は、座標がコントーンイメージの最初
のタイルのスタートポイント(ULC)を指示するように初
期化する。その後、最初のタイルにつづき各連続コント
ーンタイルが順次処理されて、出力バッファの連続画素
位置に書き込まれる出力ビットを作りだす。このよう
に、各出力ブロックは、全体出力イメージが形成される
まで連続出力画素のタイルで埋めれる。コントーンイメ
ージの各連続タイルが処理されると、適切なタイル座標
が増分されて、次のコントーンタイル処理の準備を行
い、以下同様に行われる。すべてのコントーンタイルが
処理されると、実行処理は、ステップ1060およびルーチ
ン1000から出る。
At this point, the execution process proceeds to step 930 which sets the "tile" parameter. Once entered in that step, the execution process first proceeds to block 1050.
When executed on that block, it is caused by the rotation of the contone tile associated with the corresponding block,
Offset value of the position of the output block △ p phi, calculates the △ q phi. Once the offset value has been calculated, execution proceeds to block 1060. The first portion of the block, located at step 930, is initialized so that the coordinates indicate the start point (ULC) of the first tile of the contone image. Each successive contone tile is then processed sequentially, beginning with the first tile, producing output bits that are written to successive pixel locations in the output buffer. In this way, each output block is filled with tiles of consecutive output pixels until the entire output image is formed. As each successive tile of the contone image is processed, the appropriate tile coordinates are incremented to prepare for the next contone tiling, and so on. Once all contone tiles have been processed, execution processing exits step 1060 and routine 1000.

【0073】図19は、図18のタイル処理ルーチン10
00で実行されるブロックおよびタイルサイズを設定する
ステップ1010のフローチャートである。当該ステップ
は、既に述べたように、適切なブロックおよびタイルサ
イズを決定する。
FIG. 19 shows the tile processing routine 10 of FIG.
11 is a flowchart of step 1010 of setting a block and tile size executed at 00. This step determines the appropriate block and tile sizes, as already mentioned.

【0074】ステップ1010への入力が終わると直ぐに、
実行処理は、判断ブロック1110に進む。当該ブロック
は、実行されて縮小スケーリングがコントーンイメージ
のどちらかの方向に発生するか、すなわち、スケールフ
ァクターαあるいはβが1より小さいかどうかを判定す
る。両ファクターとも1より大きい場合は、実行処理
は、判断ブロック1110から出ているNOパス1115を介して
ブロック1140に進む。ブロック1140は、実行されると各
次元にそってブロックサイズを32に、すなわち、32x 32
の出力画素位置を有するブロックを作る設定をおこな
う。一方、縮小スケーリングがどちらかの方向に発生す
る場合は、実行処理は、判断ブロック1110から出ている
YES パス1120を介してブロック1130に進む。ブロック11
30は、実行されるとスケールファクターおよびコントー
ン回転角度φにもとづいてブロックサイズを決定する。
ブロック1130おび1150の絶対値関数に使用される添字
「f 」は、絶対値関数が、適切な浮動少数点精度で計算
されることを示す。ブロック1130あるいは1140のどちら
かでブロックサイズが決定されると、実行処理はブロッ
ク1150に進みブロック1150はタイルサイズを計算する。
タイルサイズは、ブロックサイズおよびコントーンイメ
ージ回転角度φの正弦および余弦にもとづき、また、最
大でもブロックサイズより1画素小さい。ブロック1150
が実行された後、実行処理はステップ1010を出る。
As soon as the input to step 1010 is completed,
Execution processing proceeds to decision block 1110. The block is executed to determine if a reduced scaling occurs in either direction of the contone image, ie if the scale factor α or β is less than one. If both factors are greater than one, execution proceeds to block 1140 via NO path 1115 exiting decision block 1110. When executed, block 1140 reduces the block size to 32 along each dimension, i.e. 32 x 32.
Setting to create a block having the output pixel position of. On the other hand, if reduced scaling occurs in either direction, then execution is out of decision block 1110.
YES Proceed to block 1130 via path 1120. Block 11
When executed, 30 determines the block size based on the scale factor and the contone rotation angle φ.
The subscript "f" used for the absolute value function in blocks 1130 and 1150 indicates that the absolute value function is calculated with the appropriate floating point precision. Once the block size is determined in either block 1130 or 1140, execution proceeds to block 1150, which calculates the tile size.
The tile size is based on the block size and the sine and cosine of the contone image rotation angle φ, and is at most one pixel smaller than the block size. Block 1150
After execution is performed, execution processing exits step 1010.

【0075】図20は、図18のタイル処理ルーチン10
00で実行されるタイル数を計算するステップ1020のフロ
ーチャートである。既に検討した通り、ステップ1020
は、各行のタイル数およびタイルのカラム数に関して、
コントーンイメージ内で処理されるタイル数を決定す
る。
FIG. 20 shows the tile processing routine 10 of FIG.
11 is a flowchart of step 1020 of calculating the number of tiles executed at 00. As already discussed, step 1020
With respect to the number of tiles in each row and the number of columns in the tile,
Determines the number of tiles processed in the contone image.

【0076】ステップ1020に入力されると直ぐに、実行
処理は、判断ブロック1210に進む。当該ブロックは、実
行されるとコントーンイメージの高さ H(インチ単位)
の関数としてコントーンイメージMAX _ROW を形成する
イメージタイルの行の数、高速スキャン方向(α)のア
ナモフィックスケールファクター、レーザー書込みおよ
びコントーン周波数(それぞれ、インチ当たりの書込み
スポットあるいはインチ当たりのコントーンサンプルに
関する)およびタイルサイズを計算する。計算が終わる
と、実行処理は、ブロック1220に進み、コントーンイメ
ージの幅 W(インチ単位)の関数としてコントーンイメ
ージMAX _COL を形成するイメージタイルのカラム数、
低速スキャン方向(β)のアナモフィックスケールファ
クター、レーザー書込みおよびタイルサイズを計算す
る。ブロック1220の実行が終わると、実行処理はステッ
プ1020を出る。
Once entered in step 1020, execution proceeds to decision block 1210. When the block is executed, the height of the contone image H (in inches)
The number of rows of image tiles that form the contone image MAX_ROW as a function of, the anamorphic scale factor in the fast scan direction (α), the laser writing and the contone frequency (respectively to the writing spot per inch or the contone sample per inch). ) And the tile size. Once the calculation is complete, execution proceeds to block 1220, where the number of columns of image tiles forming the contone image MAX_COL as a function of the width W (in inches) of the contone image,
Calculate the anamorphic scale factor, laser writing and tile size in the slow scan direction (β). When execution of block 1220 is complete, execution processing exits step 1020.

【0077】図21は、図18に示すタイル処理ルーチ
ン1000で実行される設定画素座標を変更するステップ10
30のフローチャートである。既に検討した通り、ステッ
プ1030は、コントーンサンプリングおよび中間調基準セ
ルを通してのサンプリングのための、またクリッピング
変数の画素移動のための増分座標値(固有の「△」値)
を計算する。当該値は、現在処理されているコントーン
イメージ全体を通して一定である。
FIG. 21 shows a step 10 for changing the set pixel coordinates executed in the tile processing routine 1000 shown in FIG.
30 is a flowchart of 30. As discussed above, step 1030 is an incremental coordinate value (a unique "△" value) for contone sampling and sampling through the halftone reference cell, and for pixel movement of the clipping variable.
To calculate. The value is constant throughout the contone image currently being processed.

【0078】図に示す通り、ステップ1030への入力がお
こなわれると直ぐに、実行処理は1310に進む。当該ブロ
ックは、実行されるとコントーンイメージ回転角度φの
正弦と余弦、およびタイルとブロックのサイズにもとづ
いて、クリッピング変数、kおよびl の増分画素移動の
パラメータ値、すなわち、△pixel _k _fast、△pixe
l _l _fast、△pixel _k _slow、および△pixel _
l _slowを計算する。増分値の計算がすべて終了する
と、実行処理はブロック1320に進み、実行されてコント
ーン面の画素サンプリング増分のパラメータ値を計算す
る。当該パラメータ値、△pixel _u _fast、△pixel
_v _fast、△pixel _u _slow、および△pixel _v
_slowは、アナモフィックスケールファクター、コント
ーンおよびレーザー周波数、コントーンイメージ回転角
度φの正弦および余弦、およびブロックサイズにもとづ
いて決定される。当該パラメータ値がすべて決定される
と、実行処理はブロック1330に進む。当該ブロックは、
実行されると中間調基準面の画素サンプリング増分のパ
ラメータ値、すなわち、△pixel _x _fast、△pixel
_y _fast、△pixel _x _slow、および△pixel _y
_slowを計算する。当該増分は、スクリーンルーリン
グ、レーザー周波数、スクリーン角度θの正弦と余弦、
およびブロックサイズにもとづいて計算されてあもので
ある。当該パラメータ値の計算が終了すると、実行処理
はステップ1030から出る。
As shown in the figure, as soon as an input is made to step 1030, the execution process proceeds to 1310. The block, when executed, is based on the sine and cosine of the contone image rotation angle φ, and the size of the tile and block, the clipping variable, the parameter value of the incremental pixel movement of k and l, ie Δpixel _k _fast, △ pixe
l _l _fast, ∆pixel _k _slow, and ∆pixel _
Calculate l_slow. When all the increment values have been calculated, execution proceeds to block 1320, which is executed to calculate the parameter values for the contone surface pixel sampling increments. Parameter value, △ pixel _u _fast, △ pixel
_V _fast, △ pixel _u _slow, and △ pixel _v
_Slow is determined based on the anamorphic scale factor, the contone and laser frequency, the sine and cosine of the contone image rotation angle φ, and the block size. When all the parameter values have been determined, execution proceeds to block 1330. The block is
When executed, the parameter value of the pixel sampling increment of the halftone reference plane, ie, Δpixel _x _fast, Δpixel
_Y _fast, △ pixel _x _slow, and △ pixel _y
Calculate _slow. The increments are screen ruling, laser frequency, sine and cosine of screen angle θ,
And calculated based on the block size. When the calculation of the parameter value is completed, the execution process exits from step 1030.

【0079】図22は、図18に示すタイル処理ルーチ
ン1000で実行される設定画素座標を変更するステップ10
40のフローチャートである。既に検討した通り、ステッ
プ1040は、中間調基準セル内、出力バッファ内およびコ
ントーンイメージプレーン内の連続タイル間の移動の増
分座標値(固有の「△」値)を計算する。当該値は、現
在処理されているコントーンイメージ全体を通して一定
である。
FIG. 22 shows a step 10 of changing the set pixel coordinates executed by the tile processing routine 1000 shown in FIG.
It is a flow chart of 40. As discussed above, step 1040 computes incremental coordinate values (unique “Δ” values) for movement between consecutive tiles within the halftone reference cell, within the output buffer, and within the contone image plane. The value is constant throughout the contone image currently being processed.

【0080】図に示す通り、ステップ1040に入力される
と、実行処理はブロック1410に進む。実行されるとコン
トーンイメージ回転角度φの正弦と余弦およびタイルサ
イズにもとづいて、出力バッファの連続タイル間移動の
パラメータ値、すなわち、△tile_p _fast、△tile_
q _fast、△tile_p _slow、△tile_q _slowを計算
する。当該パラメータ値がすべて計算されると、実行処
理はブロック1420に進み、実行されると、コントーン面
の連続タイル間移動のパラメータ値を計算する。当該パ
ラメータ値△tile_u _fast、△tile_v _slowは、初
期値は0設定されている。残りのパラメータ値、△tile
_v _fast、△tile_u _slowは、アナモフィックスケ
ールファクター、コントーンおよびレーザー周波数、お
よびタイルサイズにもとづいて決定される。当該パラメ
ータ値すべてが決定されると、実行処理はブロック1430
に進み、実行されると中間調基準面の連続タイル間の移
動のパラメータ値、すなわち、△tile_x _fast、△ti
le_y _fast、△tile_x_slow、および△tile_y _s
lowを計算する。当該増分は、スクリーン角度θの正弦
と余弦、タイルサイズおよび中間調基準面の画素サンプ
リング増分にもとづく。当該パラメータ値が計算される
と、実行処理はステップ1040を出る。
As shown, once entered in step 1040, execution proceeds to block 1410. When executed, based on the sine and cosine of the contone image rotation angle φ and the tile size, the parameter value of the movement between consecutive tiles of the output buffer, ie, Δtile_p_fast, Δtile_
Calculate q_fast, Δtile_p_slow, Δtile_q_slow. When all of the parameter values have been calculated, execution proceeds to block 1420, which, when executed, calculates the parameter values for the continuous inter-tile movement of the contone surface. Initial values of the parameter values Δtile_u_fast and Δtile_v_slow are set to 0. Remaining parameter value, △ tile
_V_fast and Δtile_u_slow are determined based on the anamorphic scale factor, contone and laser frequency, and tile size. When all the parameter values have been determined, the execution process is block 1430.
When executed, the parameter value of movement between consecutive tiles of the halftone reference plane, that is, Δtile_x_fast, Δti
le_y_fast, △ tile_x_slow, and △ tile_y_s
Calculate low. The increment is based on the sine and cosine of the screen angle θ, the tile size and the halftone reference plane pixel sampling increment. Once the parameter values have been calculated, execution processing exits step 1040.

【0081】上記の通り、連続出力ブロックエッジと対
応するコントーンタイルの間には、タイル回転および整
数ブロックアドレス指定に関連する切捨てのため、オフ
セットがおこる。コントーンイメージのサンプリングが
出力バッファの正しい整数位置に必ず対応させるために
は、タイルの「実際の」コントーンサンプリング位置と
出力ブロックの対応する整数画素アドレスとの間のオフ
セットを、コントーンタイルに対して決定しなければな
らない。当該オフセット値は1度決定するだけで、それ
以降は、各コントーンタイルのサンプリング初期位置の
補償に使用される。このためには、各ブロックの左上角
(ULC)は浮動少数点精度で容易に決定される。しかし、
整数サンプリングアドレスは、切下げのために約1ビッ
ト変化する可能性がある。そのため、各タイルの当該位
置で、上および左に1ビットシフトされることになる。
オフセットを決定し、各コントーンタイルのサンプリン
グ初期位置をオフセット値分だけ修正すれば、サンプリ
ングエラーが発生せず、各コントーンタイルがサンプリ
ングされてコントーンタイルすべて正しく位置決めされ
る。
As noted above, there is an offset between consecutive output block edges and the corresponding contone tile due to truncation associated with tile rotation and integer block addressing. To ensure that the sampling of the contone image corresponds to the correct integer position in the output buffer, the offset between the tile's "real" contone sampling position and the corresponding integer pixel address in the output block must be in the contone tile. You have to make a decision. The offset value is determined only once, and thereafter, it is used to compensate the sampling initial position of each contone tile. To this end, the upper left corner (ULC) of each block is easily determined with floating point precision. But,
The integer sampling address may change by about 1 bit due to rounding down. Therefore, one bit is shifted up and to the left at the position of each tile.
If the offset is determined and the initial sampling position of each contone tile is corrected by the offset value, no sampling error occurs and each contone tile is sampled and all contone tiles are correctly positioned.

【0082】図23は、ブロック内のタイルの回転によ
って生じる、出力ブロック217 7 のエッジと対応するコ
ントーンタイル215 7 の角との間にあるオフセット位置
を図式的に示す。ブロック217 7 は辺1515、1530、1540
および1550をもつ正方形である。タイル215 7 は、当該
ブロックに最大に適合する大きさとなっている。また、
コントーン回転角度φを与えらて、サンプリング座標
(0,0)を有するULC 1545がブロックの左辺1550と位置が
合うような方向に向けられている。タイルの他の3つの
角1520,1525 及び1535の位置は、タイルのULC 、即ち
(p,q)軸の座標(0,0)を基準にして、座標(- temps, t
empc)、(tempc - temps, tempc + temps)および(te
mpc, temps)によって与えられる。図25および図26
に示す通り、位置サンプリングオフセット、△p φおよ
び△q φは、それぞれ、min (0, temps, tempc-temps,
-temps)および min(0, tempc, tempc+ temps, temps)
とすることにより定義される。距離 tempcとtemps は、
タイルサイズおよびコントーン回転角度φの正弦と余弦
に関して、それぞれ定義される。
FIG. 23 diagrammatically shows the offset position between the edge of the output block 217 7 and the corner of the corresponding contone tile 215 7 caused by the rotation of the tiles within the block. Block 217 7 sides 1515,1530,1540
And a square with 1550. Tile 215 7 is sized to fit in the maximum in the block. Also,
Given a contone rotation angle φ, the ULC 1545 with sampling coordinates (0,0) is oriented to align with the left side 1550 of the block. The location of the other three corners of the tile, 1520, 1525 and 1535, is the ULC of the tile, ie
Coordinates (-temps, t with reference to the coordinates (0,0) of the (p, q) axis
empc), (tempc-temps, tempc + temps) and (te
mpc, temps). 25 and 26
As shown in, the position sampling offsets, Δp φ and Δq φ are min (0, temps, tempc-temps,
-temps) and min (0, tempc, tempc + temps, temps)
It is defined by The distances tempc and temps are
It is defined with respect to the sine and cosine of the tile size and the contone rotation angle φ, respectively.

【0083】オフセットの説明が終ったので、図25お
よび図26に着目する。図25および図26は、オフセ
ット値△p φおよび△q φを計算すべきブロック位置オ
フセット計算ステップ1050のフローチャートを全体で示
している。またこのステップ1050は図18に示されてい
るタイル処理ルーチン1000で実行される。図24は図2
4が図25および図26により構成されていることを示
す。ステップ1050は△p φを計算するステップ 1610 お
よび△q φを計算するステップ 1650 で形成される。ス
テップ1610は、△p φの値が−の最大値を取るように、
すなわち、(0,temps, tempc-temps, -temps)が−の最
大になるように計算する。一方、ステップ1650は、△q
φの値が−の最大値を取るように、すなわち、(0, temp
c, tempc+temps, temps)が−の最大になるように計算す
る。
Now that the description of offset has been completed, attention is directed to FIGS. 25 and 26. 25 and 26 show the whole flow chart of the block position offset calculation step 1050 for calculating the offset values Δp φ and Δq φ . Further, this step 1050 is executed by the tile processing routine 1000 shown in FIG. FIG. 24 shows FIG.
4 is configured by FIGS. 25 and 26. Step 1050 is formed by step 1610 of calculating Δp φ and step 1650 of calculating Δq φ . In step 1610, the value of Δp φ takes the maximum value of −,
That is, (0, temps, tempc-temps, -temps) is calculated so that it becomes the maximum of-. On the other hand, in step 1650,
The value of φ takes the maximum value of −, that is, (0, temp
c, tempc + temps, temps) is calculated to be the maximum of −.

【0084】以下に詳細に説明するように、ステップ10
50への入力がおこなわれると直ぐに、実行処理は △p
φを計算するステップ 1610 に進む。ここでは、先ずブ
ロック1615が実行される。当該ブロックは、△p φ値の
初期値を0 に設定する。その後、実行処理は判断ブロッ
ク1618に進む。当該ブロックは、値 tempcがマイナス、
すなわち、△p φの初期値0より小さいかどうかを試験
する。値 tempcがマイナスの場合は、実行処理はYES パ
ス1619を介してブロック1625に進む。当該ブロックが実
行されて、現在の△p φの値を tempcと同じ値に設定し
て、実行処理を判断ブロック1628に進める。一方、値 t
empcがマイナスでない場合は、判断ブロック1618は、NO
パス1620を介して実行処理を判断ブロック1628に送る。
後者の判断ブロックは、tempc-temps 値が現在の△p φ
値より小さいかどうかを判定する。tempc-temps の値が
現在の△p φ値より小さい場合は、判断ブロック1628
は、YES パス1629を介して実行処理をブロック1635に送
り、ここで、現在の△p φ値を tempc-tempsと同じ値に
設定する。すると、実行処理は、判断ブロック1638に進
む。実行処理は、判断ブロック1628が、tempc-temps の
値が現在の△p φ値より大きいか等しいと判定した場合
にも、ブロック1638まで進む。判断ブロック1638は、-t
empsの値が現在の△p φ値より小さいかどうか判定す
る。-tempsの値が現在の△p φ値より小さい場合は、判
断ブロック1638は、YES パス1639を介して実行処理をブ
ロック1645に進めて、現在の△p φの値を -temps の値
と等しく設定する。すると実行処理はステップ1610から
出る。一方、 -temps の値が△p φの値より大きいか等
しい場合には、実行処理は、判断ブロック1638から出て
いるNOパス1640を介してステップ1610から出る。
Step 10 as described in detail below.
As soon as the input to 50 is done, the execution process is △ p
Proceed to step 1610 to calculate φ . Here, first, block 1615 is executed. The block sets the initial value of the Δp φ value to 0. Thereafter, execution processing proceeds to decision block 1618. For the block, the value tempc is negative,
That is, it is tested whether the initial value of Δp φ is smaller than 0. If the value tempc is negative, execution proceeds to block 1625 via YES path 1619. The block is executed, the current value of Δp φ is set to the same value as tempc, and the execution process proceeds to decision block 1628. On the other hand, the value t
If empc is not negative, decision block 1618 returns NO.
Execution processing is sent to decision block 1628 via path 1620.
In the latter decision block, the tempc-temps value is the current Δp φ.
Determine if less than the value. If the value of tempc-temps is less than the current Δp φ value, then decision block 1628.
Sends execution processing to block 1635 via YES path 1629 where the current Δp φ value is set to the same value as tempc-temps. Execution processing then proceeds to decision block 1638. Execution processing also proceeds to block 1638 if decision block 1628 also determines that the value of tempc-temps is greater than or equal to the current Δp φ value. Decision block 1638 is -t
Determine if the value of emps is less than the current Δp φ value. If the value of -temps is less than the current value of Δp φ , decision block 1638 advances execution via YES path 1639 to block 1645 to make the current value of Δp φ equal to the value of -temps. Set. Execution processing then exits from step 1610. On the other hand, if the value of -temps is greater than or equal to the value of Δp φ , then execution proceeds from step 1610 via NO path 1640 exiting decision block 1638.

【0085】ステップ1610が完全に実行されて現在処理
されているタイルの現在の△p φの値を決定すると、ス
テップ1650は、当該タイルの△q φの値の計算を実行す
る。以下詳細に説明するが、ステップ1650への入力がお
こなわれると直ぐに、実行処理はブロック1655に進み、
実行されると△q φの初期値を0 に設定する。その後、
実行処理は判断ブロック1658に進む。当該ブロックは、
値 tempcがマイナス、すなわち、△q φの初期値0より
小さいかどうかを試験する。値 tempcがマイナスの場合
は、実行処理はYES パス1659を介してブロック1665に進
む。当該ブロックは、実行されて現在の△q φの値を t
empcと同じ値に設定して、実行処理を判断ブロック1668
に進める。一方、値 tempcがマイナスでない場合は、判
断ブロック1658は、NOパス1660を介して実行処理を判断
ブロック1668に送る。後者の判断ブロックは、tempc +
temps の値が現在の△q φ値より小さいかどうかを判定
する。tempc+temps の値が現在の△q φ値より小さい場
合は、判断ブロック1668は、YES パス1669を介して実行
処理をブロック1675に送り、ここで、現在の△q φ値を
tempc+tempsと同じ値に設定する。すると、実行処理
は、判断ブロック1678に進む。実行処理は、判断ブロッ
ク1668が、tempc+temps の値が現在の△q φ値より大き
いか等しいと判定した場合にもブロック1678まで進む。
判断ブロック1678は、temps の値が現在の△q φ値より
小さいかどうか判定する。 tempsの値が現在の△q φ
より小さい場合は、判断ブロック1678は、YES パス1679
を介して実行処理をブロック1685に進めて、ここで、現
在の△q φの値を tempsと同じ値に設定する。すると実
行処理はステップ1650から出る。一方、temps の値が△
qφの値より大きいか等しい場合には、実行処理は、判
断ブロック1678から出ているNOパス1680を介してステッ
プ1650から出る。
Once step 1610 has been fully executed to determine the current value of Δp φ for the tile currently being processed, step 1650 performs a calculation of the value of Δq φ for that tile. As will be described in detail below, as soon as an input is made to step 1650, execution proceeds to block 1655,
When executed, it sets the initial value of Δqφ to 0. afterwards,
Execution processing proceeds to decision block 1658. The block is
Test whether the value tempc is negative, that is, less than the initial value 0 of Δq φ . If the value tempc is negative, execution proceeds to block 1665 via YES path 1659. The block is executed and the current value of Δq φ is t
Set the same value as empc and judge execution processing Block 1668
Proceed to. On the other hand, if the value tempc is not negative, decision block 1658 sends the execution process to decision block 1668 via NO path 1660. The latter decision block is tempc +
Determine whether the value of temps is less than the current Δq φ value. If the value of tempc + temps is less than the current Δq φ value, decision block 1668 directs execution processing, via YES path 1669, to block 1675, where the current Δq φ value is determined.
Set to the same value as tempc + temps. Execution processing then proceeds to decision block 1678. Execution processing also proceeds to block 1678 if decision block 1668 determines that the value of tempc + temps is greater than or equal to the current Δq φ value.
Decision block 1678 determines if the value of temps is less than the current Δq φ value. If the value of temps is less than the current Δq φ value, decision block 1678 returns YES pass 1679.
Execution proceeds to block 1685 where the current value of Δq φ is set to the same value as temps. Execution processing then exits from step 1650. On the other hand, the value of temps is △
If it is greater than or equal to the value of , execution proceeds from step 1650 via NO path 1680 exiting decision block 1678.

【0086】図18のタイル処理ルーチン1000で実行さ
れるタイルを処理するステップ1060のハイレベルフロー
チャートは、図27に示す。検討した通り、ステップ10
60は、座標をコントーンイメージの最初のタイルの開始
点(ULC)を指示するように初期化した後、ループを介し
て、最初のタイルを処理する。次に、各連続コントーン
タイルを順次処理して、出力イメージの対応する各出力
ブロックを出力ビットで完全に埋める。さらに、コント
ーンイメージの各連続タイルを処理した後に、ステップ
1060は、適切なタイル座標を増分して次の連続コントー
ンタイル処理の準備をする。
The high level flowchart of step 1060 for processing tiles performed by the tile processing routine 1000 of FIG. 18 is shown in FIG. As discussed, step 10
The 60 processes the first tile through a loop after initializing the coordinates to indicate the starting point (ULC) of the first tile of the contone image. Then, each successive contone tile is processed sequentially to completely fill each corresponding output block of the output image with output bits. In addition, after processing each successive tile of the contone image, the step
The 1060 increments the appropriate tile coordinates to prepare for the next continuous contone tiling.

【0087】詳細には、図27に示す通り、ステップ10
60への入力がおこなわれると直ぐに、実行処理は、先
ず、ブロック1710へ進む。当該ブロックは、実行されて
イメージの最初のタイルの種々の各タイルベースのパラ
メータ値を初期化する。その後、実行処理は、2つのネ
ストされたループであるアウターループ1720およびイン
ナーループ1730を通って、コントーンイメージのすべて
のタイルを順次処理する。特に、アウターループ1720は
タイルの行全体を1度に処理する。一方、インナールー
プ1730は各行のそれぞれのタイルを処理する。ループ17
20および1730への入力がおこなわれると直ぐに、実行処
理は、先ず、インナーループにあるブロック1740に進
む。当該ブロックは、実行されて出力(ページ)バッフ
ァ内の出力ブロックの現位置(block _p, block_q )
を計算する。その後、実行処理はブロック1750に進み、
実行されて処理中の現コントーンタイルに特有の各増分
値、すなわち、△p _block,△q _block,△k _block,
△l _block,△u _block,△v_block,△x _block お
よび△y _block を計算する。当該計算がすべておこな
われると、実行処理はブロック1760に進み、実行される
と当該増分を使用して、処理中の現タイルにやはり特有
の各パラメータ値、すなわち、block _k, block_l, b
lock_u, block_, block _x および block_y を初期
化する。その後、実行処理はブロック1770に進む。当該
ブロックは、以下に記載する通り、現コントーンタイル
を完全に処理する。現コントーンタイルがステップ1770
で処理されると、実行処理はステップ1780に進み、処理
中の現在の行の次の連続コントーンタイルの種々の高速
スキャンベースパラメータを増分する。増分がおこなわ
れると、ステップ1770はこのコントーンタイルを処理
し、当該処理は、コントーンタイルのすべての行の処理
が終了するまで継続される。当該タイル処理が完了する
と、実行処理は、インナーループからアウターループ17
20内にあるブロック1790まで進む。当該ブロックは、各
種の低速スキャンパラメータを、コントーンイメージの
次の連続行の最初のコントーンタイルを指示するよう増
分する。増分がおこなわれると、実行処理は、インナー
ループ1730に戻り当該行のすべてのタイルを処理し、以
下同様に行なわれる。コントーンタイルのすべてのタイ
ルが処理されると、実行処理はアウターループ1720およ
びタイルを処理するステップ1060から出る。
Specifically, as shown in FIG. 27, step 10
As soon as the input to 60 is made, the execution process first proceeds to block 1710. The block is executed to initialize various respective tile-based parameter values for the first tile of the image. The execution process then sequentially processes all tiles of the contone image through two nested loops, outer loop 1720 and inner loop 1730. In particular, the outer loop 1720 processes the entire row of tiles at once. Inner loop 1730, on the other hand, processes each tile in each row. Loop 17
As soon as the inputs to 20 and 1730 are made, execution proceeds first to block 1740 in the inner loop. The block is executed and the current position of the output block in the output (page) buffer (block_p, block_q)
To calculate. The execution process then proceeds to block 1750,
Each increment value specific to the current contone tile being executed and being processed, ie Δp_block, Δq_block, Δk_block,
Calculate Δl_block, Δu_block, Δv_block, Δx_block and Δy_block. Once all the calculations have been made, execution proceeds to block 1760, where the increments are used to execute each parameter value that is also specific to the current tile being processed: block_k, block_l, b.
Initialize lock_u, block_, block_x and block_y. Thereafter, execution processing proceeds to block 1770. The block fully processes the current contone tile, as described below. The current contone tile is step 1770
Processing proceeds to step 1780, where it increments various fast scan base parameters of the next consecutive contone tile of the current row being processed. Once the increment has been made, step 1770 processes this contone tile and the process continues until all rows of the contone tile have been processed. When the tile processing is completed, the execution processing is performed from the inner loop to the outer loop 17
Continue to block 1790 within 20. The block increments various slow scan parameters to indicate the first contone tile of the next successive row of contone images. When the increment is done, the execution process returns to the inner loop 1730 to process all tiles in the row, and so on. When all tiles of the contone tile have been processed, execution processing exits from outer loop 1720 and step 1060 processing tiles.

【0088】図27に示すタイルを処理するステップ10
60の詳細なフローチャートは、図29および図30全体
で示す。図28は、図28が図29および図30で構成
されることを示す。図27のブロック1710-1790 を形成
する各ステップは、図29および図30に示す。
Step 10 of processing the tile shown in FIG.
A detailed flowchart of 60 is shown throughout FIGS. 29 and 30. FIG. 28 shows that FIG. 28 is composed of FIGS. 29 and 30. The steps forming block 1710-1790 of FIG. 27 are illustrated in FIGS.

【0089】図に示す通り、ステップ1060に入力がおこ
なわれると、実行処理はブロック1710に進む。ここで
は、パラメータ値、image _u, image_v, image_x, i
mage_y, p_tile_start および q_tile_start を、
それぞれイメージ内の最初のコントーンタイルのパラメ
ータ値、tile_u, tile _v, tile _x, tile _y, til
e _p および tile _q と同一に設定する。ここで、ア
ウターループ1720およびインナーループ1730が入力され
る。次にブロック1740が実行されて、現ブロックの出力
座標、すなわち、block _p および block_q を、tile
_p および tile_q の現在値に対応するオフセット値
△p φおよび△q φを加えた値に設定する。その結果16
ビット右にシフトされ、整数ブロックアドレスを作る。
その後、ブロック1750は、当該コントーンイメージで処
理中の最初のコントーンタイルに特有の増分値、△p _
block, q_block,△k _block,△l _block,△u _bloc
k,△v _block,△x _block および△y _block を計算
する。このようにして、△p_block および△q _block
は、ブロックアドレスの小数部分で形成される。残り
のタイルベース増分値の内、△k _block,△l _block,
△u _block および△v _block は、コントーンイメー
ジ回転角度φの正弦と余弦、△p _block および△q _
block の値、タイルサイズ、およびコントーンおよびレ
ーザー周波数にもとづいて計算される。残りの2つのタ
イルベース増分値、△x _block および△y _block
は、スクリーン角度θの正弦と余弦、△p _block およ
び△q _block 、スクリーンルーリングおよびレーザー
周波数にもとづいて計算される。当該増分値がブロック
1750で決定されると、ブロック1760は、タイルベースパ
ラメータ、block _k,block _l,block _u,block _v,
block _x および block_yの初期値を、当該増分値に
もとづき計算する。当該パラメータ値も、処理中の現コ
ントーンタイルに特有である。その後、ブロック1770
は、直前のブロックを通して決定されたパラメータ値に
よって定義されたように、現コントーンタイル全体の処
理を実行する。当該コントーンタイルが完全に処理され
て、現在の行で処理しなければならない他のコントーン
タイルが有るなら、タイルベースのパラメータ、 tile
_u, tile _v, tile _x, tile _y, tile _p および
tile_q は、ブロック1780で、高速スキャン方向に適切
な各タイルベース増分量、つまり、△tile_u _fast,
△tile_v _fast, △tile_x _fast, △tile_y _fa
st,△tile_p _fastおよび△tile_q _fastだけ増分
されて、現在の行の次のコントーンタイルを定義する。
当該カラムカウンター、col も1だけ増分される。現在
の行で処理する最低一つのコントーンタイルがあるこの
時点で、実行処理はブロック1740に戻り当該タイルの処
理を行ない、以下同様に行なう。しかし、現在の行にあ
る全タイルの処理が終われば、実行処理はインナールー
プ1730を出てブロック1790に進む。コントーンタイルで
処理しなければならない他の行が少なくとも1つあるな
ら、タイルベースパラメータ、 tile _u,tile_v,tile
_x,tile_y,tile_p および tile _q は、ブロック17
90で、低速スキャン方向に適切な各タイルベース増分
量、つまり、△tile_u _slow, △tile_v _slow, △
tile_x _slow, △tile_y _slow, △tile_p _slow
および△tile_q _slowだけ増分されて、次の連続行の
最初のコントーンタイルを定義する。当該行カラムカウ
ンター、row も1だけ増分される。処理する最低一行の
コントーンタイルがあるこの時点で、実行処理はブロッ
ク1740に戻り、その行の各コントーンタイルの連続処理
を行ない、以下同様に行なう。コントーンイメージのす
べての行が処理されると、実行処理は、アウターループ
1720から出てブロック1820に進み、当該ブロックはコン
トーンイメージが完全に処理されたという適切な信号を
生成する。すると、実行処理はステップ1060から出る。
As shown, when an input is made to step 1060, execution proceeds to block 1710. Here, the parameter values image_u, image_v, image_x, i
mage_y, p_tile_start and q_tile_start
Parameter values for the first contone tile in the image, tile_u, tile_v, tile_x, tile_y, til
Set the same as e_p and tile_q. Here, the outer loop 1720 and the inner loop 1730 are input. Next, block 1740 is executed, in which the output coordinates of the current block, block_p and block_q, are tiled.
Offset value corresponding to the current value of _p and tile_q △ p φ and △ q set phi to a value obtained by adding a. As a result 16
Bit-shifted to the right to make an integer block address.
Thereafter, block 1750 depicts an increment value, Δp_, specific to the first contone tile being processed with the contone image.
block, q_block, △ k _block, △ l _block, △ u _bloc
Calculate k, Δv_block, Δx_block and Δy_block. In this way, Δp_block and Δq_block
Is formed by the fractional part of the block address. Of the remaining tile-based increments, △ k _block, △ l _block,
Δu _block and Δv _block are sine and cosine of the contone image rotation angle φ, Δp _block and Δq _
Calculated based on block value, tile size, and contone and laser frequency. The remaining two tile-based increments, Δx _block and Δy _block
Is calculated based on the sine and cosine of the screen angle θ, Δp_block and Δq_block, screen ruling and laser frequency. The increment value is a block
Once determined at 1750, block 1760 determines the tile base parameters block_k, block_l, block_u, block_v,
The initial values of block_x and block_y are calculated based on the increment value. The parameter value is also specific to the current contone tile being processed. Then block 1770
Performs the processing of the entire current contone tile as defined by the parameter values determined through the previous block. If the contone tile is fully processed and there are other contone tiles that must be processed in the current row, the tile-based parameter tile
_U, tile _v, tile _x, tile _y, tile _p and
tile_q is block 1780, where each tile-based increment is appropriate for the fast scan direction, ie, Δtile_u_fast,
△ tile_v_fast, △ tile_x_fast, △ tile_y_fa
Incremented by st, Δtile_p_fast and Δtile_q_fast to define the next contone tile of the current row.
The column counter, col, is also incremented by 1. At this point, there is at least one contone tile to process in the current row, execution processing returns to block 1740 to process that tile, and so on. However, once all tiles in the current row have been processed, execution exits inner loop 1730 and proceeds to block 1790. The tile base parameter, tile_u, tile_v, tile, if there is at least one other line that must be processed by the contone tile.
_X, tile_y, tile_p and tile_q are block 17
At 90, each tile-based increment amount appropriate for the slow scan direction, ie, △ tile_u_slow, △ tile_v_slow, △
tile_x_slow, △ tile_y_slow, △ tile_p_slow
And Δtile_q_slow are incremented to define the first contone tile of the next consecutive row. The row column counter, row, is also incremented by 1. At this point, there is at least one row of contone tiles to process, execution processing returns to block 1740 to continue processing each contone tile in that row, and so on. When all the rows of the contone image have been processed, the execution process is the outer loop.
Exiting from 1720 to block 1820, which produces the proper signal that the contone image has been fully processed. The execution process then exits from step 1060.

【0090】図29および図30に示されるタイルを処
理するステップ1060の一部として実行されるプロセスタ
イルルーチン1770のハイレベルフローチャートは、図3
1に示す。既に検討した通り、当該ルーチンは、回転、
スケーリングおよび/あるいは中間調処理によって所望
通りにタイル全体を処理する。
A high level flowchart of the process tile routine 1770, which is performed as part of the step 1060 of processing tiles shown in FIGS. 29 and 30, is shown in FIG.
Shown in 1. As we have already considered, the routine is
Process the entire tile as desired by scaling and / or halftoning.

【0091】図に詳細に示す通り、ルーチン1770に入力
がおこなわれると直ぐに、実行処理は、先ず、ブロック
1910に進む。当該ブロックは、実行されると、生成中の
現在の出力ブロックの最初の画素に対する種々の画素ベ
ースパラメータ値を初期化する。初期化が終わると、実
行処理は、判断ブロック1920に進む。ここでは、直前の
ユーザーの入力にもとづいて、タイル(すなわち、タイ
ルモード)と画素の単一ラスターのどちらを処理するか
が決定される。コントーンイメージが回転されないなら
ば、通常、画素の単一ラスタが処理される。タイルが処
理される場合は、判断ブロック1920は実行処理を、YES
パスを介してブロック1930に送り、実行されると、タイ
ルの pカウンターを初期化する。一方、画素の単一ラス
ターが使用される場合は、判断ブロック1920は実行処理
を、NOパスを介して1940に送り、実行されると、ラスタ
ーの pカウンターを初期化する。ブロック1930か1940の
いずれかが実行されると、実行処理は2つのネストされ
たループ、つまり、アウターループ1950およびインナー
ループ1960に入る。アウターループは、一行中の全画素
を一度に処理する。一方、インナーループは、各行の各
画素を処理する。以下詳細に説明すると、ループ1950お
よび1960への入力がおこなわれると直ぐに、実行処理
は、先ず、インナーループ内にあるブロック1970に進
む。当該ブロックは、実行されると、コントーン基準面
と中間調基準面において、クリップされたサンプリング
を通して、出力ブロックの現在アドレス指定されている
画素のデータを求め、当該画素位置におけるその結果を
出力ブロックに格納する。その後、実行処理はブロック
1980に進み、実行されると、高速スキャン方向に、各パ
ラメータ値(すなわち、q, pixel_k,pixel _l, pixel
_u, pixel_v, pixel_x およびpixel _y)を増分し
て、出力ブロックの現行の次の連続画素の出力値生成時
に使用できるようにする。当該出力ブロックの画素の行
全体が出力ブロックに書き込まれると、実行処理は、イ
ンナーループからアウターループ1950に位置するブロッ
ク1990に進む。当該ブロックは、低速スキャン方向に、
種々のパラメータ、詳細には、p, pixel_k,pixel _l,
pixel _u,pixel _v,pixel _x および pixel_y だ
け増分して、現在の出力ブロックの次の連続行の最初の
画素の出力値生成時に使用できるようにする。処理され
ると、実行処理はインナーループ1960に戻り、この行の
全画素の処理をおこない、以下同様に行なう。現在の出
力ブロック内の画素の全行が書き込まれると、実行処理
はアウターループ1950および画素処理ルーチン1770から
出る。
As shown in detail in the figure, as soon as an input is made to the routine 1770, the execution process begins with the block
Continue to 1910. The block, when executed, initializes various pixel-based parameter values for the first pixel of the current output block being generated. When initialization is complete, execution proceeds to decision block 1920. Here, it is decided whether to process a tile (ie tile mode) or a single raster of pixels based on the last user input. If the contone image is not rotated, then a single raster of pixels is typically processed. If the tile is processed, decision block 1920 causes the execution process to be YES.
Sends via path to block 1930, which when executed initializes the tile's p counter. On the other hand, if a single raster of pixels is used, decision block 1920 directs the run process to the 1940 via the NO path, which, when executed, initializes the raster's p counter. When either block 1930 or 1940 is executed, execution processing enters two nested loops, an outer loop 1950 and an inner loop 1960. The outer loop processes all pixels in a row at once. On the other hand, the inner loop processes each pixel in each row. More specifically, as soon as inputs to loops 1950 and 1960 are made, execution proceeds first to block 1970 within the inner loop. When the block is executed, it obtains the data of the pixel currently addressed in the output block through clipped sampling on the contone reference plane and the halftone reference plane, and outputs the result at the pixel position to the output block. Store. Then the execution process is blocked
Proceeding to 1980, when executed, each parameter value (that is, q, pixel_k, pixel_l, pixel
_U, pixel_v, pixel_x and pixel_y) are incremented to make them available when generating the output value of the current next consecutive pixel of the output block. Once the entire row of pixels in the output block has been written to the output block, execution proceeds from the inner loop to block 1990 located in the outer loop 1950. The block is in the slow scan direction,
Various parameters, specifically p, pixel_k, pixel_l,
Increment by pixel_u, pixel_v, pixel_x and pixel_y to make it available when generating the output value of the first pixel of the next consecutive row of the current output block. Once processed, the execution process returns to the inner loop 1960 to process all pixels in this row, and so on. When all rows of pixels in the current output block have been written, execution processing exits the outer loop 1950 and pixel processing routines 1770.

【0092】図31に示すプロセスタイルルーチン1770
の詳細なフローチャートは、図32に示す。図31のブ
ロック図1910−1990を形成する個々のステップは図32
に示す。
The process tile routine 1770 shown in FIG. 31.
A detailed flowchart of is shown in FIG. The individual steps forming block diagrams 1910-1990 of FIG.
Shown in.

【0093】図に示す通り、ステップ1770への入力がお
こなわれると直ぐに、実行処理はブロック1910に進む。
ここでは、生成中の現出力ブロックの最初の画素のパラ
メータ値、つまり、pixel _k, piexel _l, pixel_u,
pixel_v, pixel_x およびpixel_y を決定する。そ
の後、カウンターp は、ステップ1920-1940 を介して、
タイルモードが使用されているかどうかに応じて、0あ
るいは block_size-1にそれぞれ初期化される。一旦初
期化されると、実行処理はアウターループ1950およびイ
ンナーループ1960に入る。当該インナーループでは、出
力ブロックの各行のすべての画素について実行がおこな
われるが、実行処理は、先ず、ブロック1970に進んで、
プロセス画素ルーチン(以下に詳細に検討の通り)を通
して当該行の現画素の出力値を生成し、また、当該出力
値を当該出力ブロックの当該画素に格納する。その後、
ブロック1980は、パラメータ値、つまり、pixel _k, p
ixel_l,pixel _u, pixel_v,pixel _x および pixel
_y を、高速スキャン方向に、増分量△pixel _k*fas
t, △pixel _l _fast, △pixel _u _fast, △piexe
l_v _fast, △pixel _x _fastおよび△pixel _y
_fastを使って増分し、それ以降で出力ブロックの現在
の行の次の連続画素の出力値生成時に使用できるように
する。q カウンターの現在の内容も1だけ増分され、出
力ブロックの現在の行の次の連続画素を指示するように
する。出力ブロック(あるいは、ラスター)の現在の行
で生成する最低一個の画素値があるこの時点で、実行処
理はブロック1970に戻り、当該画素の出力値を求め、以
下同様に行なう。しかし、現在の行(あるいは、ラスタ
ー)の全画素の出力値が書き込まれると、実行処理は、
インナーループ1960を出て、アウターループのブロック
1990に進む。出力ブロックに書き込まなければならない
画素の行の出力値が最低1つは残っているとなら、画素
パラメータ値、詳細には、pixel _k, pixel_l,pixel
_u, pixel_v,pixel _x および pixel_y は、ステッ
プ1990を介して、低速スキャン方向に、対応する増分
量、つまり、△pixel _k _slow, △pixel _l _slo
w, △pixel _u_slow, △pixel _v _slow, △pixel
_x _low および△pixel _y _low を使って増分され
て、それ以降で、出力ブロックの次の連続行の最初の画
素の出力値生成時に使用できるようにする。p カウンタ
ーの現在の内容も1だけ増分されて、現在のブロックの
出力画素の次の連続行を指示するようにする。一方、出
力値が出力ブロックのすべての行について書き込まれれ
ば、実行処理はアウターループ1950およびルーチン1770
から出る。
As shown, the execution process proceeds to block 1910 as soon as an input is made to step 1770.
Here, the parameter value of the first pixel of the current output block being generated, that is, pixel_k, piexel_l, pixel_u,
Determine pixel_v, pixel_x and pixel_y. After that, the counter p goes through steps 1920-1940
Initialized to 0 or block_size-1, respectively, depending on whether tile mode is used. Once initialized, execution enters outer loop 1950 and inner loop 1960. In the inner loop, execution is performed for all the pixels in each row of the output block, but the execution processing first proceeds to block 1970,
Generate the output value of the current pixel of the row through the process pixel routine (as discussed in detail below) and store the output value in the pixel of the output block. afterwards,
Block 1980 contains parameter values, namely pixel_k, p
ixel_l, pixel_u, pixel_v, pixel_x and pixel
_Y is incremented in the direction of high-speed scan △ pixel _k * fas
t, △ pixel _l _fast, △ pixel _u _fast, △ piexe
l_v _fast, △ pixel _x _fast and △ pixel _y
Increment with _fast so that it can be used later when generating the output value of the next consecutive pixel in the current row of the output block. The current contents of the q counter is also incremented by one so that it points to the next consecutive pixel in the current row of the output block. At this point, there is at least one pixel value generated in the current row of the output block (or raster), the execution process returns to block 1970 to determine the output value for that pixel, and so on. However, when the output values of all pixels in the current row (or raster) are written, the execution process
Exit inner loop 1960 and block outer loop
Proceed to 1990. If there is at least one output value left in the row of pixels that must be written to the output block, the pixel parameter value, specifically pixel_k, pixel_l, pixel
_U, pixel_v, pixel_x and pixel_y are corresponding increments in the slow scan direction, ie, Δpixel_k_slow, Δpixel_l_slo through step 1990.
w, △ pixel _u_slow, △ pixel _v _slow, △ pixel
It is incremented using _x _low and Δpixel _y _low so that it can be used later when generating the output value of the first pixel of the next consecutive row of the output block. The current contents of the p counter are also incremented by one to indicate the next consecutive row of output pixels for the current block. On the other hand, if the output value has been written for all the rows of the output block, the execution process is the outer loop 1950 and the routine 1770.
Get out of.

【0094】図32のプロセスタイルステップ 1970 の
一部として実行されるプロセス画素ルーチン1970のハイ
レベルフローチャートは、図33に示す。当該ルーチン
は、上述したように、コントーン基準面および中間調基
準面でクリップされたサンプリングを通して、出力ブロ
ックの現在アドレス指定画素データを求め、結果を出力
ブロックの当該画素位置に格納する。
A high level flowchart of the process pixel routine 1970, which is executed as part of the process tile step 1970 of FIG. 32, is shown in FIG. The routine determines the current addressed pixel data of the output block through sampling clipped on the contone reference plane and the halftone reference plane, as described above, and stores the result at the pixel location of the output block.

【0095】詳細には、図に示す通り、ルーチン1970に
入力がおこなわれると直ぐに、実行処理は、先ず、ブロ
ック2110に進む。当該ブロックは、実行されて2つのマ
スクを設定する。2つのマスクとは、1つはノイズデー
タアレーへのアクセス用、もう1つは、適切な中間調基
準データアレーへのアクセス用で、両方ともRAM717から
出ている(図11および図14参照)。各マスクは、各
アレーのアドレス指定に使用するpixel _x およびpixe
l _y のアドレス内で適切なビットを分けるために使用
される。当該マスクが設定されると、実行処理は、図3
3の通り、ブロック2115に進み、実行されると、現在の
画素アドレス pixel_k, pixel_l,pixel _u および p
ixel_v の整数部分を抜き出す。その後、ブロック2120
は、クリッピング変数の現在値VALID を判定することに
より、現在の出力ブロック内に内包するために生成中の
現在の画素が、対応する出力タイル内にあるかどうかを
明確にする。上記の通り、変数 VALIDの値は、当該画素
の kおよび lのクリッピングアドレスの最下位整数ビッ
トだけの ANDの組み合わせで形成される。当該ビット
は、あらかじめ定義されているマスク、すなわち、"0x0
001"を有するpixel _y および pixel_y のアドレスの
“論理積”("ANDing")をとることにより切り離され
る。 "0x0001" の "0x" は16進法を定義している。ブロ
ック2120が完全に実行されると、実行処理は判断ブロッ
ク2125に進む。当該判断ブロックは、実行されて、コン
トーンイメージの現在のサンプリングされた画素が当該
イメージのエッジをオーバーラップするかどうかを現在
の整数画素アドレスにもとづき判定する。このようなオ
ーバーラップがある場合は、判断ブロック2125は、実行
処理をYES パス2127を介して実行ブロック2130に送る。
ブロック2130は、実行されて当該画素のサンプリングさ
れたコントーン値を、カラーホワイトと関連するあらか
じめ定義された数に設定する。一方、コントーンイメー
ジの現在サンプリングされた画素がイメージ内にある場
合、すなわち、イメージエッジにオーバーラップしない
場合は、判断ブロック2125は、実行処理をNOパス2129を
介してブロック2135に送る。ブロック2135は、当該画素
のサンプリングされたコントーン値を、タイリングRAM7
42から求める。(図11および図14参照)。
Specifically, as shown, as soon as an input is made to the routine 1970, the execution process first proceeds to block 2110. The block is executed to set two masks. Two masks, one for accessing the noise data array and one for accessing the appropriate halftone reference data array, both from RAM717 (see FIGS. 11 and 14). .. Each mask is the pixel_x and pixe used to address each array
Used to separate the appropriate bits within the l_y address. When the mask is set, the execution process is performed as shown in FIG.
3, proceed to block 2115 and when executed, the current pixel address pixel_k, pixel_l, pixel_u and p
Extract the integer part of ixel_v. Then block 2120
Determines the current value of a clipping variable, VALID, to determine if the current pixel being generated for inclusion in the current output block is in the corresponding output tile. As described above, the value of the variable VALID is formed by ANDing only the least significant integer bits of the k and l clipping addresses of the pixel. This bit is a predefined mask, ie "0x0
It is separated by taking the "AND" of the addresses of pixel_y and pixel_y with 001 ". The" 0x "of" 0x0001 "defines the hexadecimal system. Block 2120 is completely executed. If so, execution proceeds to decision block 2125. The decision block is executed to determine if the current sampled pixel of the contone image overlaps the edge of the image at the current integer pixel address. If there is such an overlap, decision block 2125 sends execution processing to execution block 2130 via YES path 2127.
Block 2130 is executed to set the sampled contone value for the pixel to a predefined number associated with color white. On the other hand, if the currently sampled pixel of the contone image is in the image, ie, does not overlap the image edge, decision block 2125 sends execution processing to block 2135 via NO path 2129. A block 2135 stores the sampled contone value of the pixel in question in the tiling RAM 7
I ask from 42. (See FIGS. 11 and 14).

【0096】その後、図33に示す通り、実行処理は判
断ブロック 2140 に進む。当該判断ブロックは、直前の
ユーザ入力にもとづいて、中間調スクリーニングが起こ
るかどうか、すなわち、「コントーンモード」が現在使
用されていないかどうかを判定する。スクリーニングが
起こらない場合は、中間調値ではなくコントーンが出力
バッファに提供されて、その結果、中間調処理の出力イ
メージではなく連続出力イメージとなる。すると、判断
ブロック2140は、実行処理を、YES パス2142を介してブ
ロック2145に送る。ブロック2145は、実行されてサンプ
リングされたコントーン値を出力バッファの現在の画素
の出力データとして供給する。その後、実行処理はルー
チン1970を出る。一方、中間調スクリーニングが起こる
と、判断ブロック2140は、実行処理をNOパス2144を介し
て判断ブロック2150に送る。判断ブロック2150は、出力
ブロックの現在のアドレス指定されたビットが、それぞ
れ0 あるいはスクリーニングされたある出力値に設定
される場合は、実行処理を、クリッピング変数 VALIDの
現在値にもとづいてブロック2155あるいは2160のどちら
かに送る。現在の出力ビットが出力ブロックと関連のあ
る出力タイルの外にある場合は、当該ビットはゼロに設
定される。この場合、判断ブロック2150は、実行処理を
NOパス2152を介してブロック2155に送る。ブロック2155
は、出力ビットをゼロに設定する。すると、ブロック21
70は、ゼロ値を出力ブロックの現在のビット位置、詳細
にはFIFO 857へ書き込む処理を実行する(図14参
照)。ブロック2170が実行されると、図33に示す通
り、実行処理はルーチン1970からでる。
Thereafter, execution processing proceeds to decision block 2140, as shown in FIG. The decision block determines, based on the last user input, whether halftone screening occurs, that is, whether "contone mode" is not currently used. If screening does not occur, the contone, rather than the halftone value, is provided to the output buffer, resulting in a continuous output image rather than the halftone processed output image. The decision block 2140 then sends the execution process to the block 2145 via the YES path 2142. Block 2145 provides the executed and sampled contone value as the output data for the current pixel in the output buffer. The execution process then exits routine 1970. On the other hand, if halftone screening occurs, decision block 2140 sends the execution process to decision block 2150 via NO path 2144. Decision block 2150 directs execution to block 2155 or 2160 based on the current value of the clipping variable VALID if the current addressed bit of the output block is set to 0 or some output value screened, respectively. Send to either. If the current output bit is outside the output tile associated with the output block, then that bit is set to zero. In this case, decision block 2150 causes the execution process to
Send to block 2155 via NO path 2152. Block 2155
Sets the output bit to zero. Then block 21
70 performs the process of writing a zero value to the current bit position of the output block, specifically FIFO 857 (see FIG. 14). When block 2170 is executed, execution processing exits routine 1970, as shown in FIG.

【0097】一方、現在の出力ビットが出力ブロックの
対応する出力タイル内にある場合は、当該ビットは、ス
クリーニングされた出力値を有することになる。図33
に示す通り、判断ブロック2150は、実行処理をYES パス
2154を介してブロック2160に進める。ブロック2160は、
実行されると、中間調基準スタックを適切にサンプリン
グし、またその特定セルは当該出力ビットと関連する現
在のコントーン値によって選択される。更に、ブロック
2160は特定の中間調スタック(フォント)を選択したり
および/あるいは、アドレス指定されたノイズ値を使用
して中間調サンプリングアドレスを変更する。(以下に
詳細に検討)。特に、RAM717のノイズデータアレーは、
pixel _x および pixel_y アドレスの当該ビットを使
用してアドレス指定されている。当該アレーは、16個の
異なる中間調基準スタック(フォント)の1つを選択す
るために使用されるあらかじめ格納された4ビットノイ
ズデータのシームレス擬似ランダムアレーを含む。当該
スタックは、あらかじめ定義された異なる中間調ドット
パターンを格納する。特定のパターンは重要ではない。
しかし、ランダムフォントを選択すれば、格納された中
間調ドットパターンに対する空間的サンプリング周波数
のビーティングが原因となって出力イメージに現れるお
それのあるモワレパターンなどのような空間的に繰り返
される人工物は、うまく分解されて現れない。フォント
が選択されると、現在の出力画素に関連する現在のコン
トーン値は、対応する中間調基準面を選択する。選択さ
れた基準面は、現在の下位の pixel_x および pixel_
y アドレスにもとづいてサンプリングされ、スクリーニ
ングされた出力ビットを作りだす。次に、ブロック2160
が、出力ブロックの現在アドレス指定された画素のスク
リーニングされた出力ビットの作成を完了すると、実行
処理はブロック2170に進み、当該値を出力ブロックのビ
ット位置、詳細にはFIFO857 に書き込む(図14参
照)。ブロック2170が実行されると、図33の通り、実
行処理はルーチン1970を出る。
On the other hand, if the current output bit is in the corresponding output tile of the output block, then that bit will have the screened output value. FIG. 33
The decision block 2150, as shown in FIG.
Proceed to block 2160 via 2154. Block 2160 is
When executed, the halftone reference stack is properly sampled and that particular cell is selected by the current contone value associated with that output bit. Furthermore, blocks
The 2160 selects a particular halftone stack (font) and / or uses the addressed noise value to change the halftone sampling address. (Detailed discussion below). Especially, the noise data array of RAM717 is
Addressed using the relevant bits in the pixel_x and pixel_y addresses. The array comprises a seamless pseudo-random array of pre-stored 4-bit noise data used to select one of 16 different halftone reference stacks (fonts). The stack stores different predefined halftone dot patterns. The particular pattern is not important.
However, if a random font is selected, spatially repeating artifacts such as moire patterns that may appear in the output image due to the beating of the spatial sampling frequency on the stored halftone dot pattern, It is disassembled well and does not appear. When a font is selected, the current contone value associated with the current output pixel selects the corresponding halftone reference plane. The selected reference plane is the current subordinate pixel_x and pixel_
Create output bits that are sampled and screened based on the y address. Then block 2160
After completing the creation of the screened output bits of the currently addressed pixel of the output block, execution proceeds to block 2170, where the value is written to the bit position of the output block, specifically FIFO857 (see Figure 14). ). When block 2170 is executed, the execution process exits routine 1970, as shown in FIG.

【0098】図34は、図33のプロセス画素ルーチン
1970の詳細なフローチャートを示す。図33のブロック
2110-2170 を形成する各ステップは、図34に示す。
FIG. 34 shows the process pixel routine of FIG.
19 shows a detailed flowchart of 1970. Block of Figure 33
The steps for forming 2110-2170 are shown in FIG.

【0099】詳細には、図に示す通り、ブロック2110
は、2つのマスクを設定する。 noise_bit _maskはノ
イズデータアレーへのアクセス用、font_bit _maskは
適切な中間調基準データアレーへのアクセス用で、両方
ともRAM717から出ている(図11および図14参照)。
当該マスクは、各アレーのアドレス指定に使用するpixe
l _x および pixel_y アドレス内に適切なビットを定
義する。ブロック2115内では、pixel _k, pixel_l, p
ixel_u および pixel_v の現在値は、それぞれ、適切
なビット位置数だけ右にシフトされて、対応する整数ア
ドレス、つまり、int_, int _l, int_u および int
_v を求める。その後、ブロック2120は、整数画素アド
レス int_k および int_l をマスク"0x0001"と組み合
わせて、1ビットクリッピング変数 VALIDの値を決定す
る。マスク "0x0001" の "0x" は、16進法を定義する。
その後、ブロック2125-2135 は、コントーンイメージの
サンプリングされた現在の画素が、コントーンイメージ
のエッジにオーバーラップするかどうかによって、出力
バッファの現在の出力ビットのコントーン値を、カラー
ホワイトの値かサンプリングされたコントーン値に設定
する。コントーンモードが使用されていない場合は、ブ
ロック2140-2145 は、実行処理によってサンプリングさ
れたコントーン値を戻してから、ルーチン1970から出
る。一方、コントーンモードが使用されていないために
中間調が実行される場合は、ブロック2150-2170 は、ク
リッピング変数 VALIDの状態にもとづいて、現在の出力
ビットを、変数VALID が偽(すなわち、0)の場合はゼロ
に、変数VALID が真(すなわち、1)の場合はスクリーニ
ングされた出力ビットに設定する。当該プロセス中間調
ルーチンは、上記の通り、パラメータコントーンの現在
値、pixel _x, pixel_y,noise _bit _maskおよび f
ont _bit maskを使って、現在の出力ビットの中間調デ
ータビット値を決定する。変数 pixel_x およびpixel
_y の上位ビットを使用して決定される noise_bit _
maskの値は、擬似ランダムに、特別の中間調基準スタッ
ク(フォント)を選択して、当該スタックの特別の中間
調面およびpixel _x と pixel_y の下位ビットを選択
する変数コントーン値を使って、font_bit _maskの値
によって指定された通り、サンプリングして、当該面の
特別のサンプリング位置を決定する。当該面のサンプリ
ング位置に格納されたシングルビット値は、スクリーニ
ングされた出力データである。当該ビットは、0であれ
スクリーニングされた出力データであれ、ブロック2170
によって、FIFO 857にある次の出力位置に書き込まれる
(図14参照)。その後、図34の通り、実行処理は、
ルーチン1970から出る。
Specifically, as shown in the figure, block 2110
Sets two masks. The noise_bit_mask is for accessing the noise data array and the font_bit_mask is for accessing the appropriate halftone reference data array, both from RAM717 (see FIGS. 11 and 14).
The mask is the pixe used to address each array.
Define the appropriate bits in the l_x and pixel_y addresses. In block 2115, pixel_k, pixel_l, p
The current values of ixel_u and pixel_v are shifted right by the appropriate number of bit positions, respectively, to the corresponding integer addresses, namely int_, int_l, int_u and int.
Find _v. Thereafter, block 2120 combines the integer pixel addresses int_k and int_l with the mask "0x0001" to determine the value of the 1-bit clipping variable VALID. The "0x" in the mask "0x0001" defines the hexadecimal system.
Blocks 2125-2135 then determine whether the contone value of the current output bit of the output buffer is a color white value, depending on whether the sampled current pixel of the contone image overlaps the edge of the contone image. Set to the sampled contone value. If contone mode is not used, blocks 2140-2145 return the contone value sampled by the run process before exiting routine 1970. On the other hand, if halftones are performed because contone mode is not being used, blocks 2150-2170 determine the current output bit based on the state of the clipping variable VALID and the variable VALID is false (that is, 0). ) For zero, and if the variable VALID is true (ie, 1), set it to the screened output bit. The process halftone routine, as described above, is the current value of the parameter contone, pixel_x, pixel_y, noise_bit_mask and f.
The ont_bit mask is used to determine the halftone data bit value of the current output bit. Variables pixel_x and pixel
Noise_bit_determined using the upper bits of _y
The value of mask is pseudo-randomly selected using a special halftone reference stack (font) and a variable contone value that selects the special halftone plane of that stack and the lower bits of pixel_x and pixel_y. Sampling, as specified by the value of _mask, determines the particular sampling location of the surface. The single bit value stored at the sampling location of the surface is the screened output data. The bit, whether 0 or the screened output data, is block 2170.
Is written to the next output location in the FIFO 857 (see FIG. 14). After that, as shown in FIG. 34, the execution process is
Exit routine 1970.

【0100】E. タイル・画素プロセッサ(TPP)740
の専用ハードウェア実施例 図11および図14に示すタイル・画素プロセッサ(TP
P)740 の実施例のハイレベルブロック図を図36および
図37に示す。図35は、図35が図36および図35
で構成されていることを示す。
E. Tile / Pixel Processor (TPP) 740
Dedicated hardware embodiment of Tile / Pixel Processor (TP
A high-level block diagram of the P) 740 embodiment is shown in FIGS. 35 is the same as FIG. 36 and FIG.
It is composed of.

【0101】図に示す通り、TPP 740 は、タイルレジス
ター2310、タイルプロセッサ2320、画素プロセッサ2350
およびコントロールロジック2380で形成される。タイル
・画素プロセッサは、ネストされたループを一括実行し
て、各タイルの各出力ブロックによって、イメージ内の
各コントーンタイルと各画素を処理する。実際には、タ
イルプロセッサ2320は、図31と図32で示したよう
に、プロセスタイルルーチン1770を実行する。一方、画
素プロセッサ2350は、図33と図34で示したように、
プロセス画素ルーチン1970を実行する。TPP は、ゲート
アレー、ASICあるいは他の直ぐに個別化できる大規模集
積回路装置を使用して好適に実行される。コントロール
ロジック2380は単純な組合わせロジックおよび/あるい
は有限状態マシンで形成されている。当該ロジックの特
有の実施は、当該技術に熟練せる者に直ぐに明白となり
うるもので、TPP 740 の全体的操作をコントロールす
る。「開始処理(Start Processing)」リード線817 に
よって、また、マイクロコンピュータ713 (図14参
照)によって提供されるパルスに応答して、図36およ
び図37のコントロールロジック2380は、「次処理(Do
Next)」リード線2384にパルスを発して、タイルプロセ
ッサー2320に命令を出し、現在のクロックパルスに合わ
せて、レジスターにリード線815 に現れる値をロードす
る。次に、次のクロックパルスに合わせて、コントーン
イメージ内の現タイルの処理を開始する命令を発する。
同時に、コントロールロジック2380は、状態情報リード
線819 内に位置する「タイル処理済(Tile Done)」リー
ド線2382にローレベルを出して、マイクロコンピュータ
にタイル処理がアクティブにおこなわれていることを知
らせる。当該処理が完了すると、タイルプロセッサ2320
は、「タイル処理済」リード線2386にパルスを発して、
コントロールロジック2380に知らせる。すると、当該コ
ントロールロジック2380は、ハイレベルを「タイル処理
済」リード線2382に発して、マイクロコンピュータ713
(図14参照)に、当該コントーンタイルが完全に処理
されたことを知らせる。
As shown, the TPP 740 includes a tile register 2310, a tile processor 2320, and a pixel processor 2350.
And formed with control logic 2380. The tile and pixel processor executes a nested loop in batches to process each contone tile and each pixel in the image by each output block of each tile. In effect, the tile processor 2320 executes the process tile routine 1770 as shown in FIGS. 31 and 32. On the other hand, the pixel processor 2350, as shown in FIGS. 33 and 34,
The process pixel routine 1970 is executed. The TPP is preferably implemented using a gate array, ASIC or other readily personalizable large scale integrated circuit device. Control logic 2380 is formed of simple combinatorial logic and / or finite state machines. The particular implementation of the logic can be readily apparent to one skilled in the art and controls the overall operation of the TPP 740. In response to the pulses provided by the "Start Processing" lead 817 and by the microcomputer 713 (see FIG. 14), the control logic 2380 of FIGS.
Next) ”Pulse lead 2384 to issue an instruction to tile processor 2320 to load the register with the value appearing on lead 815 in time with the current clock pulse. Then, on the next clock pulse, it issues a command to start processing the current tile in the contone image.
At the same time, the control logic 2380 asserts a low level on the "Tile Done" lead 2382 located in the status information lead 819 to inform the microcomputer that tiling is being actively performed. . When this process is completed, the tile processor 2320
Pulses the "tiled" lead 2386,
Notify control logic 2380. The control logic 2380 then issues a high level to the "tiled" lead 2382 to cause the microcomputer 713
Notify (see FIG. 14) that the contone tile has been completely processed.

【0102】TPP 740 初期化中にリード線817 の「処理
開始」パルスに応答して、図36および図37に示すタ
イルレジスター2310は、マイクロコンピュータ713 によ
って並列に、リード線815(図14参照)を介して、タイ
ル情報、すなわち、処理される現タイルおよび適切な増
分画素値を指定するパラメータ値がロードされる。当該
パラメータ値は、ブロックアドレス(block _k, block
_l,block _u block_v,block _x およびblock _y)
および高速および低速スキャン両方向の画素増分(△ p
ixel_k _fast, △pixel _l _fast, △pixel _u _
fast, △pixel_v _fast, △pixel _x _fast, △pix
el _y _fast および△pixel _k _slow, △pixel
_l _slow, △pixel _u _slow, △pixel _v _slo
w, △pixel _x _slow および△pixel _y _slow)
を含む。図36および図37に示す通り、当該ブロック
アドレスおよびタイル増分は、コントロールロジック23
10により、リード線2312、2314および2316を介してタイ
ルプロセッサ2320内にある適切な加算器あるいはマルチ
プレクサ2430に進められる。
In response to the “start processing” pulse on lead 817 during TPP 740 initialization, tile register 2310 shown in FIGS. 36 and 37 is paralleled by microcomputer 713 to lead 815 (see FIG. 14). Via, the tile information, that is, the current tile to be processed and the parameter values that specify the appropriate increment pixel values are loaded. The parameter value is the block address (block_k, block
_L, block _u block _v, block _x and block _y)
And pixel increments in both fast and slow scan directions (Δ p
ixel_k _fast, △ pixel _l _fast, △ pixel _u _
fast, △ pixel _v _fast, △ pixel _x _fast, △ pix
el _y _fast and △ pixel _k _slow, △ pixel
_L _slow, △ pixel _u _slow, △ pixel _v _slo
w, △ pixel _x _slow and △ pixel _y _slow)
including. As shown in FIGS. 36 and 37, the block address and the tile increment are set in the control logic 23.
The 10 leads via leads 2312, 2314 and 2316 to the appropriate adder or multiplexer 2430 in the tile processor 2320.

【0103】タイルプロセッサ2320は、加算器2322、加
算器2325およびマルチプレクサ2328および2330を有す
る。当該加算器およびマルチプレクサは、6回、つま
り、異なる画素パラメータ値のそれぞれについて1回折
り返され、図の通りに接続される。タイルプロセッサ
は、6つの別々のレジスター、つまり、6つの画素パラ
メータ(pixel _k,pixel _l, pixel_u, pixel_v, p
ixel_x および pixel_y )およびコントロールロジッ
ク2340のそれぞれに1つのレジスターを有する画素レジ
スター2333も有する。当該画素レジスターは、出力バッ
ファ内の現ブロックの各画素プロセッサ2350の出力値を
生成するために、6つの画素パラメータ値を保持する。
コントロールロジック2340は、タイルプロセッサ2320の
全体操作、詳細には、図40のフローチャート2600にも
とづき、また、以下に詳細に検討する通り、画素プロセ
ッサを形成するレジスター、加算器およびマルチプレク
サのそれぞれの状態をコントロールする。
The tile processor 2320 has an adder 2322, an adder 2325 and multiplexers 2328 and 2330. The adder and multiplexer are folded back six times, one for each different pixel parameter value, and connected as shown. The tile processor has six separate registers, namely six pixel parameters (pixel_k, pixel_l, pixel_u, pixel_v, p).
ixel_x and pixel_y) and control logic 2340 also has a pixel register 2333 with one register each. The pixel register holds six pixel parameter values to generate an output value for each pixel processor 2350 of the current block in the output buffer.
The control logic 2340 is based on the overall operation of the tile processor 2320, in particular the flowchart 2600 of FIG. To control.

【0104】次に、タイルプロセッサ2320の検討を単純
化するために、同じ6組の加算器、マルチプレクサおよ
び画素レジスターの内の1つ、つまり、図例のpixel _
k パラメータ値だけに関して詳細な検討をおこなう。こ
の点で、コントロールロジック2340のコントロールのも
とに、また、タイルプロセッサの初期化中に、マルチプ
レクサ2330の入力 I 1は、リード線2316を介して block
_k の開始アドレスをタイルレジスター2310から受け取
る。出力ブロックの最初の行の最初の画素については、
コントロールロジック2340は、適合レベルを選択信号と
してリード線2344からマルチプレクサ2330に発して、当
該開始アドレスを、レジスター2333内のpixel_k レジ
スターの入力に進ませる。その後、コントロールロジッ
ク2340は、適切なロード信号をリード線2345に発して、
当該特定性のあるレジスターをpixel _k パラメータ値
として開始アドレス内にロードしリード線2335に進め
る。リード線2335と2326が接続されているため、当該値
も、加算器2322および2325の入力にフィードバックされ
る。△pixel _k _fastおよび△pixel _k _slowの増
分は、加算器2322および2325の別の入力にそれぞれ適用
される。加算器2322および2325で生成された出力は、リ
ード線2324および2327を介してマルチプレクサ2328の対
応する入力に送られる。pixel _k レジスターの内容
が、リード線2326を介し加算器2322および2325の対応す
る入力にフィードバックされるので、当該加算器は、△
pixel _k _fastおよび△pixel _k _slowの増分を前
の pixel_k パラメータ値に繰り返し加算して、各行の
連続画素および連続行の最初の画素にポイントする。 p
ixel_k パラメータ値を増分して出力バッファ内の現在
行の次の連続画素をポイントするためには、コントロー
ルロジック2340は、適切なレベルを選択(S)信号として
リード線2342および2344に発して、加算器2325の出力を
マルチプレクサ2328および2330を介して、画素レジスタ
ー2333内の pixel_kレジスターに進める。その後、当
該コントロールロジックは、適切レベルをリード線2345
に発して、加算器2325で作られた累積値を画素レジスタ
ー2333内の pixel_k レジスターにロードする。特に、
加算器2325は、ロジック2340のコントロールによって、
高速スキャン pixel_k 増分である△pixel _k _fast
を、結果値を持つ先のpixel _k パラメータ値に加えた
後、pixel _k レジスターにロードされて現在の行にあ
る次の連続出力画素位置をポイントする。行の終わりに
達すると、加算器2325はオーバーフローして当該行の最
初の画素位置をポイントし、リード線2347を介してコン
トロールロジック2340に提供される実行(C O)出力にパ
ルスを生成する。当該結果による画素アドレスは、マル
チプレクサ2328および2330を介してレジスター2333内の
pixel_k レジスターに送られてロードされる。さら
に、当該結果の pixel_k パラメータ値を修正して次の
連続行の最初の画素をポイントするために、コントロー
ルロジック2340は、適切なレベルをリード線2342および
2344を介して選択信号としてマルチプレクサ2328および
2330に発し、加算器2322を介して△pixel _k _slow増
分を現在の画素アドレスに加算して次の連続行の最初の
画素をポイントするアドレスを生成する。その結果定ま
るアドレスは、マルチプレクサ2330を介してレジスター
2333内の pixel_k レジスターの入力に送られて適用さ
れる。次に、コントロールロジック2340は、適切なレベ
ルをリード線2345を介して適用して、pixel _k レジス
ターに当該アドレス値をロードし、当該行の連続画素お
よびそれ以降の行全部の pixel_k パラメータ値を生成
する。出力画素アドレスの最後の行が生成されると、加
算器2322はオーバーフローして、リード線2323を介して
コントロールロジック2340に適用される実行(C O)出力
でパルスを生成する。その結果、コントロールロジック
2340は、リード線2386にレベル変更信号を生成して、現
ブロックが完全に処理されたことをロジック2380に伝え
る。別の5つの画素パラメータ値は、同様に、対応する
初期ブロック値および高速、低速スキャン増分を使っ
て、現出力ブロック内の各連続画素に増分される。
Next, in order to simplify the examination of the tile processor 2320, one of the same six sets of adders, multiplexers and pixel registers, namely pixel_ in the example shown.
A detailed study will be conducted only on the k parameter value. At this point, under control of the control logic 2340, and during initialization of the tile processor, the input I 1 of multiplexer 2330 is blocked on lead 2316.
Receive the start address of _k from tile register 2310. For the first pixel in the first row of the output block,
The control logic 2340 issues the conformance level as a select signal from the lead 2344 to the multiplexer 2330 to advance the starting address to the input of the pixel_k register in the register 2333. Control logic 2340 then issues an appropriate load signal on lead 2345,
The specific register is loaded into the start address as the pixel_k parameter value and the lead line 2335 is advanced. Since the lead wires 2335 and 2326 are connected, this value is also fed back to the inputs of the adders 2322 and 2325. The increments of Δpixel_k_fast and Δpixel_k_slow are applied to the other inputs of adders 2322 and 2325, respectively. The outputs produced by adders 2322 and 2325 are sent to corresponding inputs of multiplexer 2328 via leads 2324 and 2327. Since the contents of the pixel_k register are fed back via lead 2326 to the corresponding inputs of adders 2322 and 2325, the adder
The increments of pixel_k_fast and Δpixel_k_slow are repeatedly added to the previous pixel_k parameter value to point to the contiguous pixel in each row and the first pixel in the contiguous row. p
To increment the ixel_k parameter value to point to the next consecutive pixel in the current row in the output buffer, control logic 2340 issues the appropriate level on leads 2342 and 2344 as the select (S) signal to add. The output of the device 2325 is advanced to the pixel_k register in the pixel register 2333 via multiplexers 2328 and 2330. The control logic then sets the appropriate level to lead 2345.
And loads the accumulated value generated by the adder 2325 into the pixel_k register in the pixel register 2333. In particular,
The adder 2325 is controlled by the logic 2340.
High speed scan pixel_k Incremental △ pixel _k _fast
Is added to the previous pixel_k parameter value with the result value and then loaded into the pixel_k register to point to the next consecutive output pixel position in the current row. When the end of the row is reached, adder 2325 overflows to point to the first pixel location in the row and produces a pulse on the execute (CO) output provided to control logic 2340 via lead 2347. The resulting pixel address is stored in register 2333 via multiplexers 2328 and 2330.
It is sent to the pixel_k register and loaded. In addition, control logic 2340 sets appropriate levels to lead 2342 and lead 2342 to modify the resulting pixel_k parameter value to point to the first pixel in the next consecutive row.
Multiplexer 2328 and select signal via 2344
Issue 2330 and add .DELTA.pixel--k--slow increments via adder 2322 to the current pixel address to produce an address that points to the first pixel of the next consecutive row. The resulting address is registered in the register via multiplexer 2330.
Applied to the input of the pixel_k register in 2333. The control logic 2340 then applies the appropriate level via lead 2345 to load the pixel_k register with the address value and generate the pixel_k parameter values for the consecutive pixels in the row and all subsequent rows. To do. When the last row of output pixel addresses is generated, adder 2322 overflows and generates a pulse on the execute (CO) output applied to control logic 2340 via lead 2323. As a result, the control logic
2340 generates a level change signal on lead 2386 to inform logic 2380 that the current block has been fully processed. Another five pixel parameter values are similarly incremented for each successive pixel in the current output block using the corresponding initial block value and fast, slow scan increments.

【0105】コントーンイメージ内の各画素に適切な出
力データを生成するために、6つの画素パラメータ(pi
xel _k, pixel_l, pixel_u,pixel _v, pixel_x お
よびpixel _y)の現在値は、リード線2336、2337および
2338を介して画素プロセッサ2350に送られる。
To generate the appropriate output data for each pixel in the contone image, six pixel parameters (pi
xel _k, pixel _l, pixel _u, pixel _v, pixel _x and pixel _y) are the current values of leads 2336, 2337 and
Sent to the pixel processor 2350 via 2338.

【0106】当該プロセッサは、コントーンロジック23
54、ノイズアドレスロジック2358、中間調基準(フォン
ト)アドレスロジック2365およびクリッピングロジック
2370を有する。
The processor is based on the contone logic 23.
54, noise address logic 2358, halftone reference (font) address logic 2365 and clipping logic
Has 2370.

【0107】動作中、画素パラメータの現在値 pixel_
u およびpixel _v は、コントーン基準面の現在のサン
プリング位置を指定する。コントーンロジック2354は、
当該サンプリング位置がコントーンイメージのエッジに
オーバーラップするかどうかを判定する。オーバーラッ
プがある場合は、当該ロジックは、あらかじめ定義され
たコントーン値をリード線2366を介してカラーホワイト
に提供する。一方、現在のサンプリング位置がコントー
ンイメージ内にある場合は、コントーンロジック2354は
対応するメモリーアドレスを、pixel _u およびpixel
_v パラメータ値にもとづいて、タイリングRAM742に生
成する。当該アドレスは、リード線2355を介してタイリ
ングRAM に適用される。すると、このタイリングRAM
は、アドレス指定されたメモリー位置に格納されるコン
トーン値を読み込んで、結果値をデータリード線2357を
介して提供する。すると、コントーンロジック2354は、
当該値をリード線2366に適用する。コントーンロジック
2354の動作と同時に、ノイズアドレスロジック2358は、
リード線2338に現れる pixel_x および pixel_y アド
レスに含まれている8ビット上位アドレスにもとづい
て、当該アドレスを組み合わせてノイズデータRAM717に
16ビットメモリーアドレスを形成する。2つの8ビット
上位アドレスは互いに隣接して、16ビットアドレスフィ
ールドを形成する。
During operation, the current value of the pixel parameter pixel_
u and pixel_v specify the current sampling position of the contone reference plane. The Contone Logic 2354
It is determined whether the sampling position overlaps the edge of the contone image. If there is an overlap, the logic provides a predefined contone value to color white via lead 2366. On the other hand, if the current sampling position is within the contone image, the contone logic 2354 will set the corresponding memory address to pixel_u and pixel_u.
It is generated in the tiling RAM 742 based on the _v parameter value. The address is applied to the tiling RAM via lead 2355. Then this tiling RAM
Reads the contone value stored in the addressed memory location and provides the resulting value via data lead 2357. Then, the Contone Logic 2354
Apply that value to lead 2366. Contone logic
At the same time as the operation of 2354, the noise address logic 2358
Based on the 8-bit high-order address contained in the pixel_x and pixel_y addresses appearing on the lead wire 2338, the addresses are combined to the noise data RAM 717.
Form a 16-bit memory address. The two 8-bit upper addresses are adjacent to each other to form a 16-bit address field.

【0108】すると、このアドレスフィールドが、リー
ド線2361を介してノイズデータRAMに適用される。当該
ノイズデータRAM に格納されるノイズデータアレーは、
通常は、256 x 256 のあらかじめ定義された4ビット擬
似ランダム値のシームレスアレーである。当該擬似ラン
ダム値それぞれが、16の中間調基準(フォント)スタッ
クの対応する1つを選択する。それぞれが256 個の別個
の64× 64 中間調基準面を有している当該スタックは、
中間調基準データ RAM717 に格納される。ノイズデータ
RAM717 から読み取られた結果のノイズデータ、詳細に
は FONT ID値は、リード線2362を介して中間調基準アド
レスロジック2365に適用される。ロジック2365は、下位
pixel_x および pixel_y アドレスビットをつづけて
もつ上位ビットとしてFONT ID を使用して、中間調基準
データRAM717内にメモリーアドレスを形成する。当該ア
ドレスは、リード線2367を介して、リード線2369からク
リッピングロジック2370に適用されるメモリーから読み
取られたアドレス指定されたシングルビット値を有する
中間調基準データ RAM717 に供給される。クリッピング
ロジック2370は、リード線2336に現れる pixel_k およ
び pixel_l の現在値にもとづいて、現在の出力ブロッ
クの出力画素−この中間調処理されたデータはリード線
2369を介して現れる−が、出力タイル内にあるかどうか
を判定する。当該画素が対応する出力タイル内にある場
合は、クリッピングロジック2370は、リード線2369を介
して現れるシングルビット値を出力データとして出力リ
ード線853 に進め、FIFO857 に格納する。一方、当該画
素が対応する出力タイルの外にある場合は、クリッピン
グロジックは、ゼロ値を出力データとしてリード線853
に提供する。適切なデータ値がリード線853 に適用され
ると、コントロールロジック2380は、レベル変更をリー
ド線2385から「有効出力データ」リード線819 に適用し
て、出力リード線853 に現れるデータが有効であるとい
う信号を発する。当該レベル変更は、公知の方法で、出
力データがFIFOに書き込まれるタイミングをコントロー
ルする。
Then, this address field is applied to the noise data RAM via the lead wire 2361. The noise data array stored in the noise data RAM is
Typically, it is a 256 x 256 seamless array of predefined 4-bit pseudo-random values. Each of the pseudo-random values selects a corresponding one of 16 halftone reference (font) stacks. The stack, each having 256 separate 64x64 halftone reference planes,
Halftone reference data Stored in RAM717. Noise data
The resulting noise data read from RAM717, specifically the FONT ID value, is applied to the halftone reference address logic 2365 via lead 2362. Logic 2365 is lower
The FONT ID is used as the upper bit having the pixel_x and pixel_y address bits in succession to form the memory address in the halftone reference data RAM 717. The address is provided via lead 2367 to halftone reference data RAM 717 having an addressed single bit value read from memory applied to clipping logic 2370 from lead 2369. Clipping logic 2370 determines the output pixel of the current output block-this halftoned data is a lead based on the current values of pixel_k and pixel_l appearing on lead 2336.
Determine if the-, which appears through 2369, is in the output tile. If the pixel is in the corresponding output tile, clipping logic 2370 advances the single bit value appearing on lead 2369 to output lead 853 as output data and stores it in FIFO 857. On the other hand, if the pixel is outside the corresponding output tile, the clipping logic uses the zero value as output data for the lead 853
To provide. When the appropriate data value is applied to lead 853, the control logic 2380 applies a level change from lead 2385 to the "valid output data" lead 819 so that the data appearing on output lead 853 is valid. Signal. The level change controls the timing at which the output data is written to the FIFO by a known method.

【0109】図38は、図36および図37のTPP 740
に含まれるタイルプロセッサ2320内に位置する繰り返し
回路部分2410のブロック図である。既に検討した通り、
当該部分は6回、つまり、各画素パラメータ毎に1回繰
り返される。
FIG. 38 shows the TPP 740 of FIGS. 36 and 37.
FIG. 3 is a block diagram of a repeating circuit portion 2410 located within a tile processor 2320 included in FIG. As already discussed,
The part is repeated 6 times, that is, once for each pixel parameter.

【0110】回路部分2410は、加算器2412および2416、
マルチプレクサ2430および画素レジスター2450を含む。
回路を単純化するために、部分2410は図36および図3
7のマルチプレクサ2328および2330を組み合わせて、図
38に示す共通マルチプレクサ2430とする。図36およ
び図37のレジスター2404、2406および2408- 詳細には
タイルレジスター2310内に位置する−は、共通の画素パ
ラメータの初期値および低速、高速増分座標値それぞれ
を保持する。当該レジスターは、図38に示す通り、繰
り返し回路部分2405、2407および2409を介して、マルチ
プレクサ2430の対応する入力"A" 、加算器2412および24
16に接続される。リード線2455に現れる画素レジスター
2450の出力は、マルチプレクサ2430の入力"D" に、ま
た、リード線2417を介して加算器2412および2416の入
力"B" にフィードバックされる。当該加算器によって作
られた実行(C O )出力は、リード線2415および2421を
介してコントロールロジック2340に送られる(図36お
よび図37参照)。加算器2412および2416の出力(O)
は、図38に示す通り、マルチプレクサ2430の入力"B"
および "C"に送られる。当該マルチプレクサの出力(Z)
は、リード線2435を介して画素レジスター2450の入力に
適用される。
Circuit portion 2410 includes adders 2412 and 2416,
It includes a multiplexer 2430 and a pixel register 2450.
To simplify the circuit, portion 2410 is shown in FIGS.
The multiplexers 2328 and 2330 of No. 7 are combined to form a common multiplexer 2430 shown in FIG. Registers 2404, 2406 and 2408 of FIGS. 36 and 37--specifically located in tile register 2310--hold initial values of common pixel parameters and slow and fast incremental coordinate values, respectively. As shown in FIG. 38, the register is connected to the corresponding input "A" of the multiplexer 2430 and the adders 2412 and 24 via the repeating circuit portions 2405, 2407 and 2409.
Connected to 16. Pixel register appearing on lead 2455
The output of 2450 is fed back to the input "D" of multiplexer 2430 and to the input "B" of adders 2412 and 2416 via lead 2417. The execute (C O ) output produced by the adder is sent to control logic 2340 via leads 2415 and 2421 (see FIGS. 36 and 37). Output of adders 2412 and 2416 (O)
38 is the input "B" of the multiplexer 2430 as shown in FIG.
And sent to "C". Output of the multiplexer (Z)
Is applied to the input of pixel register 2450 via lead 2435.

【0111】図39の真理値表2500は、マルチプレクサ
2430の動作を、当該マルチプレクサに適用された選択信
号の"S0"および "S1" で指定する。
The truth table 2500 of FIG. 39 is a multiplexer.
The operation of the 2430 is specified by the selection signals "S0" and "S1" applied to the multiplexer.

【0112】図40の状態フローチャート2600は、図3
8に示す繰り返し回路部分2410内でおこる連続動作を詳
細に示す。特に、回路の最初の状態、すなわち、状態1
は、待ち状態かスタンバイ状態のいずれかで、この間ア
クティブな動作はおこらない。回路は、「処理開始」パ
ルスがリード線817 に現れるまで、動作2610および2615
およびNOパス2620を介して連続的なルーピングで示す通
り、この状態を維持する(図36および図37参照)。
図40に示す通り、このパルスに応答して、回路部分24
10の状態は、判断動作2615から出ているYES パス2625が
示す通り、次の状態、すなわち、状態 2に移る。状態2
の間は、すべての初期値および増分値が適切なレジスタ
ーにロードされる。ロードされると、すなわち、次のク
ロックパルスで、次の状態、すなわち、状態 3が入力さ
れる。この状態の間は、図38に示すマルチプレクサ24
30および画素レジスター2450と接続された加算器2416
は、レジスター2450に格納された画素パラメータを、レ
ジスター2408に格納された高速スキャン増分だけ連続的
に増分して、一連の連続的に増加するこのパラメータ値
を作りだす。連続加算プロセスは、判断動作2640から出
ているNOパス2645によって定義されたループを介して状
態3で発生する。
The state flowchart 2600 of FIG. 40 is the same as that of FIG.
The continuous operation occurring in the repeating circuit portion 2410 shown in FIG. In particular, the first state of the circuit, namely state 1
Is in either a waiting state or a standby state, during which no active operation occurs. The circuit continues to operate 2610 and 2615 until the "start of process" pulse appears on lead 817.
And this state is maintained as shown by continuous looping through NO path 2620 (see FIGS. 36 and 37).
As shown in FIG. 40, in response to this pulse, the circuit part 24
State 10 moves to the next state, State 2, as indicated by YES path 2625 exiting decision operation 2615. State 2
During, all initial and increment values are loaded into the appropriate registers. Once loaded, ie at the next clock pulse, the next state, ie state 3, is entered. While in this state, the multiplexer 24 shown in FIG.
3024 and adder 2416 connected to pixel register 2450
Sequentially increments the pixel parameter stored in register 2450 by the fast scan increment stored in register 2408, producing a series of continuously increasing parameter values. The continuous addition process occurs in state 3 via the loop defined by NO path 2645 exiting decision operation 2640.

【0113】当該プロセスは、加算器2416が実行出力に
パルス(高速繰上げ)を生成する時までつづけられる。
このパルスが発生した場合は、画素パラメータ値が、高
速スキャン方向に完全に増分されたことを示す。当該増
分が完全に実行されると、判断動作2640は、回路部分24
10の状態を、YES パス2650を介して、次の状態、すなわ
ち、状態 4に変更する。この状態の間は、加算器2412
は、図38に示すマルチプレクサ2430およびレジスター
2450に接続されて、レジスター2450に格納された画素パ
ラメータ値をレジスター2406に格納された低速スキャン
増分だけ増分する。その後、図40に示す判断ブロック
2660は、加算器2412が実行(低速繰上げ)パルスを生成
したかどうかにもとづいて、画素パラメータが低速スキ
ャン方向に完全に増分されたかどうかを判定する。当該
パラメータが完全に増分されていない場合、すなわち、
処理しなければならない別の対応する行が残っている場
合は、判断動作 2660 は、回路部分2410の状態をNOパス
2665を介して状態3に戻して、この行から処理を開始す
る。一方、加算器2412が実行(低速繰上げ)パルスを生
成した場合は、判断ブロック2660は回路部分2410を、YE
S パス2670を介して、処理済状態(done state)、すな
わち、状態5をおこす動作2675に変える。これは、コン
トロールロジック2340(図36および図37参照)が回
路部分2410を動作2610を介して状態1に戻した時に、一
時的に発生する状態である。
The process continues until adder 2416 produces a pulse (fast carry) at the run output.
When this pulse occurs, it indicates that the pixel parameter value has been fully incremented in the fast scan direction. When the increment is fully executed, decision operation 2640 causes circuit portion 24
Change state 10 through YES path 2650 to the next state, state 4. While in this state, adder 2412
Is the multiplexer 2430 and register shown in FIG.
Connected to 2450, increments the pixel parameter value stored in register 2450 by the slow scan increment stored in register 2406. Then, the decision block shown in FIG.
The 2660 determines whether the pixel parameters have been fully incremented in the slow scan direction based on whether the adder 2412 produced a run (slow carry) pulse. If the parameter is not fully incremented, i.e.
If there is another corresponding row to process, decision operation 2660 returns the state of circuit portion 2410 to NO pass.
The state is returned to the state 3 via 2665, and the process is started from this line. On the other hand, if adder 2412 has generated an execute (slow carry) pulse, decision block 2660 directs circuit portion 2410 to YE
Through S path 2670, change to a done state, ie, an operation 2675 that causes state 5. This is a condition that occurs temporarily when control logic 2340 (see FIGS. 36 and 37) returns circuit portion 2410 to state 1 via operation 2610.

【0114】図41は、図36および図37の画素プロ
セッサ2350内のコントーンロジック2354のブロック図で
ある。図に示す通り、コントーンロジック2354は、アド
レスジェネレータ2730、コンパレータ2740および2750、
AND ゲート2760およびマルチプレクサ2770を含む。アド
レスジェネレータ2730は、図36および図37の画素レ
ジスター2333に含まれるpixel _u および pisel_v レ
ジスター2710および2720の出力に接続されており、当該
レジスターの内容を使用して、パラメータ値 pixel_u
およびpixel _ vによって定義された現在のコントーン
サンプリング位置の適切なメモリーアドレスを生成す
る。当該アドレスは、図41のリード線2355を介して、
タイリングRAM742のアドレス入力に適用される。当該RA
M から読み取られたコントーンデータ値は、リード線23
57を介してマルチプレクサ2770の入力 "A" に提供され
る。マルチプレクサの他の入力、すなわち、入力"B"
は、リード線2768を介してあらかじめ定義されたカラー
ホワイトのコントーン値に接続される。本サンプリング
された画素位置がコントーンイメージ内にあるかどうか
にもとづいて、マルチプレクサ2770は、タイリングRAM
から読み取られたサンプリングされたコントーン値かあ
らかじめ定義されたホワイト値のどちらかを、サンプリ
ングされたコントーンデータ2780として選択する。詳細
には、レジスター2710および2720に含まれるパラメータ
値 pixel_u および pixel_v も、コンパレータ2740お
よび2750の対応する入力に適用される。コントーンイメ
ージの幅(W)および高さ(H)に対応する値は、リード線
2712および2714を介して当該コンパレータの対応する別
の組の入力に適用される。コンパレータ2740および2750
は、現在の画素サンプリング位置が縦横共にイメージ内
にある場合は、各出力リード線2745および2755でハイレ
ベルを作りだす。当該サンプリング位置が必ず当該イメ
ージ内にあるようにするために、リード線2745および27
55の出力レベルは、AND ゲート2760を介して論理的に接
続されて、リード線2765を介してマルチプレクサ2770の
選択(S O)入力に適用される選択信号を発する。従っ
て、現在のコントーンサンプリング位置がコントーンイ
メージ内にある場合は、マルチプレクサ2770は、タイリ
ング RAM742 から読み取ったサンプリングされたコント
ーン値を、サンプリングされたコントーンデータ2780と
して、サンプリングされたコントーンデータ出力に向け
る。一方、当該位置がイメージ内にない場合は、マルチ
プレクサは、当該出力リード線に適用されたあらかじめ
定義されたホワイト値を、データ2780として適用する。
FIG. 41 is a block diagram of the contone logic 2354 in the pixel processor 2350 of FIGS. 36 and 37. As shown, the contone logic 2354 includes an address generator 2730, comparators 2740 and 2750,
Includes AND gate 2760 and multiplexer 2770. The address generator 2730 is connected to the outputs of the pixel_u and pisel_v registers 2710 and 2720 contained in the pixel register 2333 of FIGS. 36 and 37, and uses the contents of that register to set the parameter value pixel_u.
And generate the appropriate memory address of the current contone sampling location defined by pixel_v. The address is set via the lead wire 2355 in FIG.
It is applied to the address input of the tiling RAM 742. RA concerned
The contone data value read from M is
It is provided via 57 to the input "A" of the multiplexer 2770. The other input of the multiplexer, namely input "B"
Is connected via lead 2768 to a predefined color white contone value. Based on whether or not the main sampled pixel location is in the contone image, the multiplexer 2770 has a tiling RAM.
Either the sampled contone value read from the or a predefined white value is selected as the sampled contone data 2780. In particular, the parameter values pixel_u and pixel_v contained in registers 2710 and 2720 are also applied to the corresponding inputs of comparators 2740 and 2750. The values corresponding to the width (W) and height (H) of the contone image are the lead wires.
It is applied via 2712 and 2714 to the corresponding separate set of inputs of the comparator. Comparators 2740 and 2750
Produces a high level on each output lead 2745 and 2755 if the current pixel sampling position is in the image both vertically and horizontally. Make sure that leads 2745 and 27 are in place to ensure that the sampling location is within the image.
The output level of 55 is logically connected through AND gate 2760 to provide a select signal applied to the select (SO) input of multiplexer 2770 via lead 2765. Therefore, if the current contone sampling position is within the contone image, the multiplexer 2770 will use the sampled contone data read from the tiling RAM 742 as the sampled contone data 2780. Turn to output. On the other hand, if the location is not in the image, the multiplexer applies the predefined white value applied to the output lead as data 2780.

【0115】図42に示す真理値表2800は、マルチプレ
クサ2770の動作を指定する。
Truth table 2800 shown in FIG. 42 specifies the operation of multiplexer 2770.

【0116】図43は、図36および図37の画素プロ
セッサ2350内に含まれるクリッピングロジック2370のブ
ロック図である。詳細には、図43に示す通り、当該ロ
ジックは、それぞれが画素レジスター2333内にある(図
36および図37参照)pixel _k レジスター2910およ
び pixel_l レジスター2920内の pixel_k および pix
el_l アドレスの16番目のビットに接続されるAND ゲー
ト2930で形成されている。当該ビットのAND 組合わせ
は、図43のリード線2935を介してマルチプレクサ2940
の選択(S O)入力に接続される。中間調基準RAM 717 か
ら読み取られたシングルビット中間調セルデータは、リ
ード線 2369 を介してマルチプレクサ2940の入力 "A"に
適用される。ゼロ値は、このマルチプレクサの他の入
力"B" に適用される。当該マルチプレクサの出力(Z)
は、出力リード線853 に接続されており、スクリーニン
グされた出力データ2950を提供する。クリッピングアド
レスが、現在の画素が対応する出力タイルにあることを
示す場合は、リード線2935に現れる信号はハイレベルで
あるため、マルチプレクサ2940はリード線2369に現れる
中間調セル出力データを、出力データとして出力リード
線853 に送る。
FIG. 43 is a block diagram of clipping logic 2370 contained within pixel processor 2350 of FIGS. 36 and 37. Specifically, as shown in FIG. 43, the logic is pixel_k and pix in pixel_k register 2910 and pixel_l register 2920, respectively in pixel register 2333 (see FIGS. 36 and 37).
It is formed by an AND gate 2930 connected to the 16th bit of the el_l address. The AND combination of the bits is set to the multiplexer 2940 via the lead wire 2935 in FIG.
Connected to the select (SO) input of. Single-bit halftone cell data read from halftone reference RAM 717 is applied to input "A" of multiplexer 2940 via lead 2369. The zero value is applied to the other input "B" of this multiplexer. Output of the multiplexer (Z)
Is connected to output lead 853 and provides screened output data 2950. If the clipping address indicates that the current pixel is in the corresponding output tile, the signal appearing on lead 2935 is high, so multiplexer 2940 outputs the halftone cell output data appearing on lead 2369 to the output data. As output lead 853.

【0117】現在の画素が対応する出力タイルにない場
合は、マルチプレクサ2940は、出力値としてゼロ値を出
力リード線853 に送る。
If the current pixel is not in the corresponding output tile, multiplexer 2940 sends a zero value on output lead 853 as the output value.

【0118】図44の真理値表3000は、マルチプレクサ
2940の動作を指定する。
The truth table 3000 of FIG. 44 is a multiplexer.
Specifies the 2940 operation.

【0119】図45は、図36および図37に示す画素
プロセッサ2350内に含まれるノイズアドレスロジック23
58のブロック図である。当該ロジックは、図45に示す
通り、pixel _x レジスター3110に含まれる pixel_x
アドレスからの8アドレスビット、ビット <23:16>を、
pixel_y レジスター3120に含まれる8ビット対応のア
ドレスビット、ビット <23:16>に隣接させて、256 ×25
6 位置のノイズデータRAM717 にメモリーアドレスを形
成する。詳細には、レジスター3110および3120は、タイ
ルプロセッサ2320内の画素プロセッサ2333に位置する
(図36および図37参照)。 pixel_x および pixel
_y レジスターに含まれる32ビットアドレスは、図45
に示す通り、それぞれのリード線3112および3122を介し
て、ノイズアドレスロジック2358に含まれるAND ゲート
3140および3145に送られる。 Noise_Bit _Mask 3115
は、リード線3117を介して各 ANDゲートの他の入力に適
用される。noise _bit _maskを pixel_x および pix
el_y アドレスに論理的に接続することで、リード線31
42および3146に現れるアドレスは、各アドレスの8ビッ
ト <23:16>となる。当該ビットは相互に隣接して、16ビ
ットアドレスを形成する。この結果の生じる16ビットア
ドレスは、アドレスリード線2361を介して、ノイズデー
タRAM717にある4ビットメモリー位置の1つを選択す
る。この位置から読み取られた4ビット値はFONT ID 31
30で、この値は、リード線2362を介して、中間調基準ア
ドレスロジック2365に適用される(図36および図37
参照)。
FIG. 45 shows the noise address logic 23 included in the pixel processor 2350 shown in FIGS. 36 and 37.
FIG. 58 is a block diagram of 58. The logic is pixel_x included in the pixel_x register 3110 as shown in FIG.
8 address bits from the address, bits <23:16>,
256 × 25, adjacent to the address bits corresponding to 8 bits included in the pixel_y register 3120, bits <23:16>
A memory address is formed in the noise data RAM717 at the 6th position. Specifically, registers 3110 and 3120 are located in pixel processor 2333 within tile processor 2320 (see FIGS. 36 and 37). pixel_x and pixel
The 32-bit address contained in the _y register is shown in FIG.
AND gate included in the noise address logic 2358 via respective leads 3112 and 3122 as shown in
Sent to 3140 and 3145. Noise_Bit_Mask 3115
Is applied to the other input of each AND gate via lead 3117. noise _bit _mask to pixel_x and pix
Lead 31 by logically connecting to the el_y address
The addresses appearing at 42 and 3146 are 8 bits <23:16> of each address. The bits are adjacent to each other to form a 16-bit address. The resulting 16-bit address selects one of the 4-bit memory locations in noise data RAM 717 via address lead 2361. The 4-bit value read from this location is the FONT ID 31
At 30, this value is applied to halftone reference address logic 2365 via lead 2362 (FIGS. 36 and 37).
reference).

【0120】最後に図46は、図36および図37に示
す画素プロセッサ2350に含まれる中間調基準アドレスロ
ジック2365のブロック図である。このロジックは、中間
調基準セルデータRAM に24ビットメモリーアドレスを形
成し、図46に示す通り、AND ゲート3225および3230を
含む。上記の通り、FONT_ID値は、16個の中間調スタッ
ク (フォント) の1つを選択する。サンプリングされた
コントーンデータ値は当該スタックを形成する256 個の
中間調基準面の1つを選択し、pixel _x およびpixel
_y レジスタ−それぞれの6ビットが64 x 64 ビット選
択中間調基準面内の現在のサンプリング位置を一括して
選択する。
Finally, FIG. 46 is a block diagram of the halftone reference address logic 2365 included in the pixel processor 2350 shown in FIGS. 36 and 37. This logic forms a 24-bit memory address in the halftone reference cell data RAM and includes AND gates 3225 and 3230 as shown in FIG. As mentioned above, the FONT_ID value selects one of 16 halftone stacks (fonts). The sampled contone data values select one of the 256 halftone reference planes that form the stack, pixel_x and pixel
_Y register-each 6-bit is 64 x 64-bit select Collectively selects the current sampling position in the halftone reference plane.

【0121】詳細には、24ビットメモリーアドレスは、
リード線 2362 を介して現れる4 ビットFONT IDアドレ
ス、次にリード線2366を介して現れる8 ビットサンプリ
ングされたコントーン値2780、さらに、pixel _x およ
びpixel _y アドレスレジスター3110および3120に含ま
れる6つのあらかじめ定義された下位整数アドレスビッ
ト <15:10>にもとづく12ビットアドレスとで形成され
る。当該下位アドレスビットは、AND ゲート3225および
3230を介して、レジスター3110に保持される pixel_x
および pixel_y アドレスの完全な現在値を Font _Bi
t _Mask 3215 の値と論理的に組み合わせて形成され
る。従って、 pixel_y および pixel_y レジスター31
10および3120の内容が、それぞれリード線3210および32
20を介して、AND ゲート3225および3230の1つの入力に
適用される。 Font _Bit _Mask 3215 の値は、リード
線3218を介して、当該ゲートのそれぞれの別の入力に適
用される。 font _bit _maskの値を pixel_x および
pixel_y アドレスのそれぞれとを論理的に組み合わせ
ることにより、リード線3228および3233に現れるアドレ
スは、当該アドレスそれぞれに6 ビット <15:10>とな
る。当該ビットは、アドレスリード線2367を介して、24
ビットメモリーアドレスの一部として、中間調基準デー
タ RAM717 に適用される。このRAM 内のアドレス指定位
置に格納されたデータは、シングルビットセルデータ23
69として供給され、上記の通り、リード線2369を介し
て、入力データとしてクリッピングロジック2370 (図3
6、図37および図43参照) に送られる。
Specifically, the 24-bit memory address is
4-bit FONT ID address appearing on lead 2362, then 8-bit sampled contone value 2780 appearing on lead 2366, plus 6 pre-defined in pixel_x and pixel_y address registers 3110 and 3120 12-bit address based on the lower integer address bits <15:10>. The lower address bits are AND gate 3225 and
Pixel_x held in register 3110 via 3230
And the full current value of pixel_y address to Font_Bi
It is formed by logically combining with the value of t_Mask 3215. Therefore, the pixel_y and pixel_y registers 31
10 and 3120 contents lead 3210 and 32 respectively
Applied via 20 to one input of AND gates 3225 and 3230. The value of Font_Bit_Mask 3215 is applied to another input of each of the gates via lead 3218. The value of font _bit _mask is pixel_x and
By logically combining each of the pixel_y addresses, the address appearing on leads 3228 and 3233 becomes 6 bits <15:10> for each of the addresses. The bit is passed through the address lead 2367 to
It applies to the halftone reference data RAM717 as part of the bit memory address. The data stored at the addressed location in this RAM is the single-bit cell data 23
69, and as described above, via the lead wire 2369, the clipping logic 2370 (FIG. 3) as input data.
6, FIG. 37 and FIG. 43).

【0122】ここまでで明らかな通り、当該技術に熟練
せる者は、発明の2 チップ構造が共通コントロールのマ
イクロコンピュータに複数個のタイルおよび画素プロセ
ッサ(TPP )740を組み合わせて、平行処理により処理処
理能力を増加できるように、簡単に性能拡張できること
を認めるであろう。TPP の数を上方にスケーリングする
ことにより、平行度が増加し、その結果、回転、スケー
リングおよび/ あるいは中間調処理イメージの処理能力
が増加する。
As is clear from the above, a person skilled in the art can perform parallel processing by combining a plurality of tile and pixel processors (TPP) 740 with a microcomputer of the invention having a common two-chip structure. It will be appreciated that performance can easily be scaled to increase capacity. By scaling the number of TPPs upwards, the parallelism is increased, which results in increased rotation, scaling and / or throughput of halftoned images.

【0123】以下詳細に説明するように、TPP 1つだけ
をマイクロコンピュータ713 に接続する代わりに、図1
4に示す通り、数個のTPP を、例えばバスを介してマイ
クロコンピュータに接続してマイクロコンピュータでコ
ントロールできる。イメージパラメータはすべてのTPP
について同じであるが、各TPP は、マイクロコンピュー
タからの適切な命令で、イメージの特定のオーバーラッ
プしていない部分、水平ストリップなどを、別のスター
トポイントから処理するであろう。TPP が初期化される
と、マイクロコンピュータは、当該TPP に当該イメージ
部分を独立して処理させるようにする。TPP の処理中
は、マイクロコンピュータは次の連続TPPを初期化で
き、その後、当該TPP に当該処理を開始する命令を出
し、以下同様に行う。このため、TPP はすべて、わずか
に時間交互的にではあるが本質的には平行に対応するイ
メージ部分を処理できる。各TPP は、当該TPP で使用さ
れる特定のイメージストリップ (あるいは、別のイメー
ジ部分) をもつ、マイクロコンピュータでロードされる
タイリングRAM をもちうる。さらに、各TPP は、出力を
FIFOなどの別個のバッファに書き込み、次にその内容が
適切な時に共通出力バッファにブロック転送されるよう
に構成することができる。各TPP がイメージ部分を処理
している間、マイクロコンピュータは出力イメージの対
応部分の位置を計算し、その出力イメージの対応部分に
当該TPP により現在供給されている出力データが書き込
まれる。出力イメージの対応部分の位置を計算できるで
あろう。TPPが処理を終了すると、マイクロコンピュー
タは、当該出力データを当該イメージ部分にブロック転
送する。さらに、TPP は、ストリップではなく別個のタ
イルを処理するようにも構成することができる。さら
に、TPP は、TPP によって連続コントーン値が処理さ
れ、データが出力イメージ内の対応する出力位置に時間
交互・出力インターリーブドベースで書き込まれる共通
タイリングRAM で動作しうる。例えば、4 つのTPP を使
用すると仮定すると、各TPP は4 番目の出力位置をすべ
て書き込む。即ち最初のTPP は1番目、5番目、9番目
・・・・の出力位置に出力データを書き込み、また、2
番目のTPP は、2番目、6番目、10番目・・・の出力位
置に出力データを書き込み、以下同様に全出力イメージ
を通して行われる。出力データは、最初のTPP により、
次に、2番目、3番目、4番目のTPP によって、繰り返
しラウンドロビン方式で書き込まれる。従って、共通コ
ントロールマイクロコンピュータによるコントロールで
TPP を反復させることにより、処理能力は、シングルTP
P を1つ使用する場合より相当に増加する。
As will be described in detail below, instead of connecting only one TPP to the microcomputer 713, as shown in FIG.
As shown in FIG. 4, several TPPs can be connected to the microcomputer via a bus and controlled by the microcomputer. Image parameter is all TPP
, But each TPP will process specific non-overlapping portions of the image, horizontal strips, etc., from different starting points, with appropriate instructions from the microcomputer. When the TPP is initialized, the microcomputer causes the TPP to process the image portion independently. During the processing of the TPP, the microcomputer can initialize the next continuous TPP, then issue a command to the TPP to start the processing, and so on. Thus, all TPPs can process corresponding image portions that are essentially parallel, albeit slightly alternating in time. Each TPP may have a microcomputer-loaded tiling RAM with the particular image strip (or another image portion) used by that TPP. In addition, each TPP
It can be configured to write to a separate buffer such as a FIFO and then block transferred to a common output buffer when its contents are appropriate. While each TPP is processing the image portion, the microcomputer calculates the position of the corresponding portion of the output image, and the corresponding portion of the output image is written with the output data currently provided by that TPP. The position of the corresponding part of the output image could be calculated. When the TPP finishes processing, the microcomputer block-transfers the output data to the image portion. Furthermore, the TPP can also be configured to process separate tiles rather than strips. In addition, the TPP can operate in a common tiling RAM where successive contone values are processed by the TPP and data is written to the corresponding output locations in the output image on a time alternating, output interleaved basis. For example, assuming you use 4 TPPs, each TPP writes all 4th output locations. That is, the first TPP writes the output data to the output positions of the first, fifth, ninth ...
The second TPP writes the output data to the second, sixth, tenth ... Output positions, and so on, and so on through the entire output image. The output data is the first TPP
Next, the second, third, and fourth TPPs are repeatedly written in a round-robin manner. Therefore, with the control by the common control microcomputer
By repeating the TPP, the processing capacity is reduced to a single TP.
Significant increase over the use of one P.

【0124】さらに、中間調基準データは、マルチプレ
ーンシングルビット中間調データのマルチプルスタック
についてはすでに検討したが、各スタックは、シングル
ビット中間調ドット値ではなく8ビットスレショルド値
のシングルマトリックスで置き換えることができる。こ
の場合、中間調基準アドレスロジック2365 (図36、図
37および図46参照) は簡単に修正され、サンプリン
グされた各コントーン値をスレショルドマトリックス内
の対応するサンプリングされたスレショルドと比較する
コンパレータを含むようにすることができるであろう。
当該比較のシングルビットの結果は、すなわち、コント
ーン値が対応するスレショルド値に等しいかこれを越え
る場合はハイレベルビットがそうでない場合は、ゼロビ
ットが、シングルビット中間調出力データを形成するこ
とになろう。上記と同様の方法で、例えば、いつでも使
用できる16個の内の1つの特別のスレショルドマトリッ
クスを擬似ランダムに選択するために、ノイズデータを
使用することも可能であろう。現 pixel_x および pix
el_y パラメータ値は、読み取られるスレショルドマト
リックスの位置を定義するであろう。
Furthermore, although the halftone reference data has already been examined for multiple stacks of multi-plane single-bit halftone data, each stack should be replaced by a single matrix of 8-bit threshold values instead of single-bit halftone dot values. You can In this case, the halftone reference address logic 2365 (see FIGS. 36, 37 and 46) is easily modified to include a comparator that compares each sampled contone value to the corresponding sampled threshold in the threshold matrix. Could be
The single-bit result of the comparison is that, if the contone value is equal to or exceeds the corresponding threshold value, the high-level bit otherwise the zero-bit will form the single-bit halftone output data. Let's It would also be possible to use the noise data in a manner similar to that described above, for example to pseudo-randomly select one of the 16 special threshold matrices available at any one time. Current pixel_x and pix
The el_y parameter value will define the position of the threshold matrix to be read.

【0125】さらに、発明のスクリーナーは、コントー
ンサンプリング回数が粗すぎると見える場合、コントー
ン補間を使用することができるであろう。この場合、例
えば、ブロック2135 (図33および図34参照) におい
て、パラメータ pixel_u およびpixel _v は、当該パ
ラメータの少数値にもとづき全体として補間される連続
コントーン値を選択して中間コントーン値を作る。する
と、当該中間コントーン値は、出力データとして、しか
し、中間調処理が使用される時は、入力として中間調プ
ロセスに送られて中間調出力データを作りだす。
Further, the inventive screener could use contone interpolation if the contone sampling times appear too coarse. In this case, for example, in block 2135 (see Figures 33 and 34), the parameters pixel_u and pixel_v select continuous contone values that are interpolated as a whole based on the minority values of the parameters to produce intermediate contone values. The halftone contone value is then sent as output data, but when halftone processing is used, as input to the halftone process to produce halftone output data.

【0126】さらに、本発明はバイレベル (2進) 出力
を作る書込みエンジンを使用して記述されているが、マ
ルチビット出力を作りだす書込みエンジンを使用するこ
ともできる。この例では、わずかに異なるフォントを提
供するマルチプルスクリーナーが、同じ入力コントーン
値を使って平行に操作されるであろう。1ドットフォン
トは、通常よりわずかに大きい中間調ドットを生成し、
他のドットフォントは、通常よりわずかに小さい中間調
ドットを生成すると思われる。各スクリーナーは、他の
スクリーナーとは関係なく動作するであろう。両スクリ
ーナーが同じ信号を生成する場合は、書込みエンジン
は、書込みスポットを生成するであろう。つまり、通常
の方法をとらないと思われる。しかし、スクリーナーが
異なる出力信号を生成する場合は、書込みエンジンは、
中密度、すなわち、完全な黒と白の間のあらかじめ定義
されたレベルの書込みスポットを生成するであろう。従
って、3状態書込みエンジンは、緩和されたエッジを持
つ、すなわち、抑圧した「ジグザグ」のエッジを持つ中
間調ドットを書き込むであろう。当該ドットは、抑制さ
れていないドットと比較して相当に減少した高周波内容
を含んでいるので、所謂オートモワレパターンが相当に
抑制される。またこのワレパターンは理想的中間調ドッ
トパターンの空間的分布と書込みエンジンが使用する書
込みパターンの間におこるビーティングから発生する。
レベル数が高くなった書込みエンジンを使って、ドット
緩和およびオートモワレ抑制の度合いをさらに大きくす
ることもできる。残念ながら、マルチプルバイレベルス
クリーナーを有するマルチレベル書込みエンジンを使用
すると、特に、システムの複雑性と原価が増加する。当
該アプローチの実施において、許容できるオートモワレ
量と、メージ処理システムの許容できる原価と複雑性の
間には設計トレードオフが存在する。
Furthermore, although the present invention has been described using a write engine that produces a bi-level output, it is also possible to use a write engine that produces a multi-bit output. In this example, multiple screeners providing slightly different fonts would be operated in parallel using the same input contone values. One dot font produces halftone dots that are slightly larger than normal,
Other dot fonts appear to produce halftone dots that are slightly smaller than normal. Each screener will work independently of the other screeners. If both screeners produce the same signal, the write engine will produce a write spot. In other words, it seems that the usual method is not taken. But if the screener produces different output signals, the write engine
It will produce a medium density, ie a predefined level of writing spots between perfect black and white. Thus, a tri-state write engine will write halftone dots with relaxed edges, i.e. suppressed "zigzag" edges. Since the dots contain a significantly reduced high frequency content compared to the unsuppressed dots, the so-called automoire pattern is considerably suppressed. This crack pattern also results from the beating that occurs between the spatial distribution of the ideal halftone dot pattern and the writing pattern used by the writing engine.
It is possible to further increase the degree of dot relaxation and auto moire suppression by using the writing engine with the higher number of levels. Unfortunately, the use of multi-level write engines with multiple bi-level screeners, especially increases system complexity and cost. In practicing that approach, there is a design tradeoff between the acceptable amount of automoisture and the acceptable cost and complexity of the image processing system.

【0127】本文書では、本発明の各種実施態様を詳細
に説明したが、当該技術に熟練せるものは、本発明の教
示を含む多数の他の実施態様を簡単に構成できると思わ
れる 。産業適用可能性と利点 本発明は、デジタルイメージ処理システム、詳細には、
ページ記述言語を実行する処理システムの一部として有
益である。本発明は、イメージ回転、スケーリングおよ
びデジタル中間調スクリーニングを、非常に正確に、安
価に、高速にしかも非常にフレキシブルな手段で実行さ
せることができる利点を有する。本発明は、正確で複雑
なイメージ処理能力を出力ライターに直ぐに適用できる
が、必ずしも比較的安価なレーザープリンターのみに限
られるものではない。
While various embodiments of the invention have been described in detail herein, those skilled in the art will readily be able to construct numerous other embodiments incorporating the teachings of the invention. INDUSTRIAL APPLICABILITY AND BENEFITS The present invention relates to digital image processing systems, and more particularly to
It is useful as part of a processing system that implements a page description language. The invention has the advantage that image rotation, scaling and digital halftone screening can be performed very accurately, inexpensively, fast and in a very flexible way. The present invention provides accurate and complex image processing capabilities readily applied to output writers, but is not necessarily limited to relatively inexpensive laser printers.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明にもとづいて、イメージスケーリング、
回転および中間調処理能力を提供するページ記述言語を
実施するためのシステム5 の非常にハイレベルな簡易ブ
ロック図である。
FIG. 1 illustrates image scaling according to the present invention,
1 is a very high level simplified block diagram of a system 5 for implementing a page description language that provides rotation and halftone processing capabilities.

【図2】図1に示すシステム5のイメージスケーリン
グ、回転および中間調処理を実施するための、一括して
当該発明処理を形成する各種タイルベース操作を図式的
に示す。
2 diagrammatically illustrates various tile-based operations collectively forming the inventive process for performing image scaling, rotation and halftone processing of the system 5 shown in FIG.

【図3】図1に示すシステム5のイメージスケーリン
グ、回転および中間調処理を実施するための、一括して
当該発明処理を形成する各種タイルベース操作を図式的
に示す。
3 diagrammatically illustrates various tile-based operations collectively forming the inventive process for performing image scaling, rotation and halftone processing of the system 5 shown in FIG.

【図4】図1に示すシステム5のイメージスケーリン
グ、回転および中間調処理を実施するための、一括して
当該発明処理を形成する各種タイルベース操作を図式的
に示す。
4 diagrammatically illustrates various tile-based operations collectively forming the inventive process for performing image scaling, rotation and halftone processing of the system 5 shown in FIG.

【図5】図1に示すシステム5のイメージスケーリン
グ、回転および中間調処理を実施するための、一括して
当該発明処理を形成する各種タイルベース操作を図式的
に示す。
5 diagrammatically illustrates various tile-based operations collectively forming the inventive process for performing image scaling, rotation and halftone processing of the system 5 shown in FIG.

【図6】図1に示すシステム5のイメージスケーリン
グ、回転および中間調処理を実施するための、一括して
当該発明処理を形成する各種タイルベース操作を図式的
に示す。
FIG. 6 diagrammatically illustrates various tile-based operations collectively forming the inventive process for performing image scaling, rotation and halftone processing of the system 5 shown in FIG.

【図7】図示されている種々の空間的に対応するコント
ーンボックスおよび出力ブロックのコントーンサンプリ
ングおよび出力データの書込みを図式的に示す。
FIG. 7 schematically illustrates contone sampling and writing of output data for various spatially corresponding contone boxes and output blocks shown.

【図8】単一コントーンボックスを詳細に示す。FIG. 8 shows a single contone box in detail.

【図9】図4に示すコントーンボックスに相当する出力
ブロックを詳細に示す。
9 shows in detail an output block corresponding to the contone box shown in FIG.

【図10】出力ブロック内の出力サンプリング位置、対
応する中間調スケーリングセル内の中間調サンプリング
位置、および対応するタイル内にあるコントーンサンプ
リング位置間の線型の空間的対応を示す。後者の2つ
は、出力サンプリング位置によって指定されている。
FIG. 10 shows a linear spatial correspondence between output sampling positions in output blocks, halftone sampling positions in corresponding halftone scaling cells, and contone sampling positions in corresponding tiles. The latter two are specified by the output sampling position.

【図11】本発明技法を使用するイメージ処理システム
700 のハイレベルブロック図を両図で示している。
FIG. 11 is an image processing system using the present technique.
A high-level block diagram of the 700 is shown in both figures.

【図12】本発明技法を使用するイメージ処理システム
700 のハイレベルブロック図を両図で示している。
FIG. 12 is an image processing system using the present technique.
A high-level block diagram of the 700 is shown in both figures.

【図13】本発明技法を使用するイメージ処理システム
700 のハイレベルブロック図を両図で示している。
FIG. 13 is an image processing system using the present technique.
A high-level block diagram of the 700 is shown in both figures.

【図14】図12および図13に示すシステム700 に使
用される当該発明技法の2チップ実施(マイクロコンピ
ュータ713 およびTPP プロセッサ740 )を示すブロック
図である。
14 is a block diagram showing a two-chip implementation (microcomputer 713 and TPP processor 740) of the inventive technique used in the system 700 shown in FIGS. 12 and 13. FIG.

【図15】図14に示すTTH 回路800 のマイクロコンピ
ュータ713 内で実行されるメインループ900 のフローチ
ャートを両図で示す。
15 shows a flowchart of a main loop 900 executed in the microcomputer 713 of the TTH circuit 800 shown in FIG.

【図16】図14に示すTTH 回路800 のマイクロコンピ
ュータ713 内で実行されるメインループ900 のフローチ
ャートを両図で示す。
16 shows a flowchart of a main loop 900 executed in the microcomputer 713 of the TTH circuit 800 shown in FIG. 14 in both figures.

【図17】図14に示すTTH 回路800 のマイクロコンピ
ュータ713 内で実行されるメインループ900 のフローチ
ャートを両図で示す。
17 shows a flowchart of a main loop 900 executed in the microcomputer 713 of the TTH circuit 800 shown in FIG. 14 in both figures.

【図18】図16および図17に示すメインループ900
に発生するステップ925-945 で形成されるタイル処理ル
ーチン1000のフローチャートである。
FIG. 18 is a main loop 900 shown in FIGS. 16 and 17.
9 is a flow chart of a tile processing routine 1000 formed in steps 925-945 that occurs in step 1.

【図19】図18に示すタイル処理ルーチン1000で実行
されるブロックサイズおよびタイルサイズを設定するス
テップ1010のフローチャートである。
FIG. 19 is a flowchart of step 1010 for setting a block size and a tile size, which is executed by the tile processing routine 1000 shown in FIG.

【図20】図18に示すタイル処理ルーチン1000で実行
されるタイル数を計算するステップ1020のフローチャー
トである。
20 is a flowchart of step 1020 of calculating the number of tiles executed by the tile processing routine 1000 shown in FIG.

【図21】図18に示すタイル処理ルーチン1000で実行
される設定画素座標を変更するステップ1030のフローチ
ャートである。
FIG. 21 is a flowchart of step 1030 of changing the set pixel coordinates, which is executed by the tile processing routine 1000 shown in FIG.

【図22】図18に示すタイル処理ルーチン1000で実行
される設定画素座標を変更するステップ1040のフローチ
ャートである。
22 is a flowchart of step 1040 for changing the set pixel coordinates, which is executed by the tile processing routine 1000 shown in FIG.

【図23】当該ブロック内でタイルが回転することによ
り生じる出力ブロックのエッジと対応するタイルの角と
の間に存在するオフセット位置を図式的に示す。
FIG. 23 schematically shows the offset position existing between the edge of the output block and the corresponding corner of the tile caused by the rotation of the tile within the block.

【図24】図18に示すタイル処理ルーチン1000で実行
されるブロック位置オフセットを計算するステップ1050
のフローチャートを両図で示す。
FIG. 24 is a step 1050 of calculating a block position offset executed by the tile processing routine 1000 shown in FIG. 18;
The flow chart of is shown in both figures.

【図25】図18に示すタイル処理ルーチン1000で実行
されるブロック位置オフセットを計算するステップ1050
のフローチャートを両図で示す。
FIG. 25 is a step 1050 for calculating a block position offset executed by the tile processing routine 1000 shown in FIG. 18;
The flow chart of is shown in both figures.

【図26】図18に示すタイル処理ルーチン1000で実行
されるブロック位置オフセットを計算するステップ1050
のフローチャートを両図で示す。
FIG. 26 is a step 1050 for calculating a block position offset executed by the tile processing routine 1000 shown in FIG. 18;
The flow chart of is shown in both figures.

【図27】図18に示すタイル処理ルーチン1000で実行
されるタイル処理ステップ1060のハイレベルフローチャ
ートを示す。
27 shows a high level flowchart of tile processing step 1060 executed by the tile processing routine 1000 shown in FIG.

【図28】図27に示すタイルを処理するステップ1060
の詳細なフローチャートを両図で示す。
FIG. 28: Step 1060 of processing the tile shown in FIG. 27.
A detailed flowchart of is shown in both figures.

【図29】図27に示すタイルを処理するステップ1060
の詳細なフローチャートを両図で示す。
FIG. 29: Step 1060 of processing the tile shown in FIG. 27.
A detailed flowchart of is shown in both figures.

【図30】図27に示すタイルを処理するステップ1060
の詳細なフローチャートを両図で示す。
FIG. 30: Step 1060 of processing the tile shown in FIG. 27.
A detailed flowchart of is shown in both figures.

【図31】図29および図30に示すタイルを処理すス
テップ1060の一部として実行されるプロセスタイルルー
チン1770のハイレベルフローチャートを示す。
31 shows a high level flowchart of a process tile routine 1770 executed as part of step 1060 of processing tiles shown in FIGS. 29 and 30. FIG.

【図32】図31に示すプロセスタイルルーチン1770の
詳細なフローチャートである。
32 is a detailed flowchart of the process tile routine 1770 shown in FIG.

【図33】図32に示すプロセスタイルルーチン1770の
一部として実行されるプロセス画素ルーチン1970のハイ
レベルフローチャートである。
FIG. 33 is a high level flowchart of a process pixel routine 1970 executed as part of the process tile routine 1770 shown in FIG.

【図34】図33に示すプロセス画素ルーチン1970の詳
細なフローチャートである。
34 is a detailed flowchart of the process pixel routine 1970 shown in FIG.

【図35】図11および図14に示すタイル・画素プロ
セッサ (TPP)740 の実施態様のハイレベルブロック図を
両図で示す。
FIG. 35 illustrates in both figures a high level block diagram of an embodiment of the tile pixel processor (TPP) 740 shown in FIGS. 11 and 14.

【図36】図11および図14に示すタイル・画素プロ
セッサ (TPP)740 の実施態様のハイレベルブロック図を
両図で示す。
FIG. 36 shows in both figures a high level block diagram of an embodiment of the tile pixel processor (TPP) 740 shown in FIGS. 11 and 14.

【図37】図11および図14に示すタイル・画素プロ
セッサ (TPP)740 の実施態様のハイレベルブロック図を
両図で示す。
FIG. 37 illustrates in both figures a high level block diagram of an embodiment of the tile pixel processor (TPP) 740 shown in FIGS. 11 and 14.

【図38】図36および図37に示すTPP 740 に含まれ
るタイルプロセッサ2320内に存在する繰り返し回路部分
2410のブロック図である。
38 is a repeating circuit portion present in the tile processor 2320 included in the TPP 740 shown in FIGS. 36 and 37. FIG.
24 is a block diagram of 2410. FIG.

【図39】第38図に示すタイルプロセッサの繰り返し
回路部分2410に含まれるマルチプレクサ2430の真理値表
2500である。
39 is a truth table of the multiplexer 2430 included in the repeating circuit portion 2410 of the tile processor shown in FIG. 38.
2500.

【図40】図38に示すタイルプロセッサの繰り返し回
路部分2410に発生する順次操作を示す状態フローチャー
ト2600である。
40 is a state flow chart 2600 illustrating sequential operations occurring in the repeating circuit portion 2410 of the tile processor shown in FIG. 38.

【図41】図36および図37に示す画素プロセッサ23
50に含まれるコントーンロジック2354のブロック図であ
る。
FIG. 41 is a pixel processor 23 shown in FIGS. 36 and 37.
FIG. 10 is a block diagram of a contone logic 2354 included in 50.

【図42】図27に示すコントーンロジック2354に含まれ
るマルチプレクサ2770の真理値表2800である。
42 is a truth table 2800 of the multiplexer 2770 included in the contone logic 2354 shown in FIG. 27. FIG.

【図43】図36および図37に示す画素プロセッサ23
50に含まれるクリップロジック2370のブロック図であ
る。
FIG. 43 is a pixel processor 23 shown in FIGS. 36 and 37.
3 is a block diagram of clip logic 2370 included in 50. FIG.

【図44】図43に示すクリップロジック2370に含まれ
るマルチプレクサ2940の真理値表3000である。
44 is a truth table 3000 of the multiplexer 2940 included in the clip logic 2370 shown in FIG. 43.

【図45】図36および図37に示す画素プロセッサ23
50に含まれるノイズアドレスロジック2358のブロック図
である。
FIG. 45 is a pixel processor 23 shown in FIGS. 36 and 37.
5 is a block diagram of noise address logic 2358 included in 50. FIG.

【図46】図36および図37に示す画素プロセッサ23
50に含まれる中間調スケーリングアドレスロジック2365
のブロック図である。
FIG. 46 is a pixel processor 23 shown in FIGS. 36 and 37.
Halftone scaling address logic included in 50 2365
It is a block diagram of.

【符号の説明】[Explanation of symbols]

2 入力コントーンイメージ 3 出力イメージ (1ビット/ 画素) 4 ページ記述言語コマンドテクスチャルデータ入力コ
ントーンイメージデータ(8 ビット/ 画素) 5 テキスト: A, B 6 ページ記述言語 (PDL)処理回路 7 ラスター化された書込みスポット 8 デジタルマーキングエンジン 9 出力バッファ 10 プロセッサ 11 オリエンテッド出力ページ 12 出力イメージ
2 Input contone image 3 Output image (1 bit / pixel) 4 Page description language Command texture data Input contone image data (8 bits / pixel) 5 Text: A, B 6 Page description language (PDL) processing circuit 7 Raster Writing spots 8 Digital marking engine 9 Output buffer 10 Processor 11 Oriented output page 12 Output image

フロントページの続き (72)発明者 アンソニー ジェームス レオン三世 アメリカ合衆国 ニューヨーク州 14534 ピッツフォード イーストパークロード 34Front Page Continuation (72) Inventor Anthony James Leon III, New York, USA 14534 Pittsford East Park Road 34

Claims (12)

【特許請求の範囲】[Claims] 【請求項1】 入力イメージから出力イメージを作り出
す装置において、 連続してパラメータ値を指定し、複数個のブロックのそ
れぞれ異なる1個のブロックを識別し、上記ブロックす
べてが一括して出力イメージを形成し、上記1つのブロ
ックに対応する複数個のタイルからそれぞれ異なる個々
のタイルを識別し、上記タイルのそれぞれが上記入力イ
メージの異なる対応部分の複数の画素値を有し、上記タ
イルすべてが一括して入力イメージを形成するタイル・
ブロック定義手段と、 上記パラメータ値に対応して、あらかじめ定められた手
順で、個々のタイル内の画素値を処理し、出力イメージ
内の1つのブロックに対して画素毎を基準とした出力画
素データを作り、上記ブロック全部の内の出力画素デー
タのすべてが出力イメージを形成するタイル処理手段
と、を含むことを特徴とする入力イメージから出力イメ
ージを作り出す装置。
1. An apparatus for producing an output image from an input image, wherein parameter values are continuously specified to identify one block different from each other among a plurality of blocks, and all the blocks collectively form an output image. Then, different individual tiles are respectively identified from the plurality of tiles corresponding to the one block, each of the tiles has a plurality of pixel values of different corresponding portions of the input image, and all the tiles are collectively set. Tiles that form the input image
Block definition means and output pixel data that processes pixel values in individual tiles according to a predetermined procedure corresponding to the above-mentioned parameter values, and uses each pixel as a reference for one block in the output image. And tiling means in which all of the output pixel data in all of the blocks form an output image, and an output image from the input image.
【請求項2】 請求項1に記載の装置において、 上記タイル・ブロック定義手段がプログラムプロセッサ
であることを特徴とする入力イメージから出力イメージ
を作り出す装置。
2. The apparatus of claim 1, wherein the tile block defining means is a program processor to produce an output image from an input image.
【請求項3】 請求項2に記載の装置において、 上記タイル処理手段が専用ハードウェア回路であること
を特徴とする入力イメージから出力イメージを作り出す
装置。
3. The apparatus according to claim 2, wherein the tile processing means is a dedicated hardware circuit to produce an output image from an input image.
【請求項4】 請求項3に記載の装置において、 上記タイル処理手段がタイルプロセッサおよび画素プロ
セッサを有し、上記タイルプロセッサが、上記パラメー
タ値および画素サンプリング増分の対応値に応じて、個
々のタイル内の画素の画素サンプリングアドレスを生成
し、上記画素プロセッサが、上記画素サンプリングアド
レスに応じて、対応する出力データを生成するために個
々の1つのタイル内にあり、上記サンプリングアドレス
よってアドレス指定されている複数個の画素値の各1つ
を連続的に処理することを特徴とする入力イメージから
出力イメージを作り出す装置。
4. The apparatus according to claim 3, wherein the tile processing means comprises a tile processor and a pixel processor, the tile processor depending on the corresponding value of the parameter value and the pixel sampling increment. Generating a pixel sampling address for a pixel in the pixel processor, the pixel processor being in an individual tile to generate corresponding output data in response to the pixel sampling address, and being addressed by the sampling address. An apparatus for producing an output image from an input image, characterized by successively processing each one of a plurality of existing pixel values.
【請求項5】 請求項4に記載の装置において、 上記タイル・ブロック定義手段が、上記パラメータ値と
して個々のタイルの画素サンプリング増分および開始ア
ドレスを生成する手段を備え、上記画素サンプリング増
分が、ブロック1個の中にある2つの近接する位置間の
移動量に相当する上記入力イメージ内の連続サンプリン
グ位置間の増分を指定することを特徴とする入力イメー
ジから出力イメージを作り出す装置。
5. The apparatus of claim 4, wherein the tile block defining means comprises means for generating pixel sampling increments and starting addresses of individual tiles as the parameter value, the pixel sampling increments being blocks. An apparatus for producing an output image from an input image, characterized by specifying an increment between successive sampling positions in the input image corresponding to a movement amount between two adjacent positions within one.
【請求項6】 請求項5に記載の装置において、 上記タイルプロセッサが、上記パラメータ値に応じて、
画素毎ベースで個々のブロックを介して増分ステッピン
グをおこない、1つのブロック内の各画素に画素サンプ
リングアドレスおよび中間調サンプリングアドレスを生
成する手段を備えることを特徴とする入力イメージから
出力イメージを作り出す装置。
6. The apparatus according to claim 5, wherein the tile processor is responsive to the parameter value.
Apparatus for producing an output image from an input image, characterized in that it comprises means for incrementally stepping through individual blocks on a pixel-by-pixel basis to generate a pixel sampling address and a halftone sampling address for each pixel in a block. ..
【請求項7】 請求項5に記載の装置において、 上記入力イメージの少なくとも個々のタイルを一括して
形成する連続トーン(コントーン)値を格納する第1メ
モリーを有し、上記タイルプロセッサが、上記画素サン
プリング増分の対応値に応じて、一連の連続トーンサン
プリングアドレスを生成して上記タイルのサンプリング
をおこなう手段を具備し、上記画素プロセッサが、上記
第1メモリーに接続され、しかも、連続トーンサンプリ
ングアドレスのそれぞれに応じて第1メモリー内に格納
されたデータをサンプリングして、サンプリングされた
コントーン値を作りだす手段を備えることを特徴とする
入力イメージから出力イメージを作り出す装置。
7. The apparatus according to claim 5, further comprising a first memory storing a continuous tone (contone) value that collectively forms at least individual tiles of the input image. Means for generating a series of continuous tone sampling addresses to sample the tiles in response to corresponding values of the pixel sampling increments, wherein the pixel processor is connected to the first memory and the continuous tone sampling addresses An apparatus for producing an output image from an input image, comprising means for sampling the data stored in the first memory in response to each of the first and producing sampled contone values.
【請求項8】 請求項7に記載の装置において、 あらかじめ定義されたパターンを格納する第2メモリー
を備え、上記タイルプロセッサが、対応する個々の画素
サンプリング増分に応じて一連の中間トーンサンプリン
グアドレスを生成する手段を具備し、上記画素プロセッ
サが、上記第 2メモリーに接続され、しかも、個々の中
間トーンサンプリングアドレスに応じて、第 2メモリー
に格納されたデータをサンプリングして対応する中間ト
ーン出力値を作りだす手段を備えることを特徴とする入
力イメージから出力イメージを作り出す装置。
8. The apparatus of claim 7, further comprising a second memory storing a predefined pattern, the tile processor providing a series of intermediate tone sampling addresses in response to corresponding individual pixel sampling increments. The pixel processor is connected to the second memory, and the data stored in the second memory is sampled according to each intermediate tone sampling address, and the corresponding intermediate tone output value is provided. An apparatus for producing an output image from an input image, characterized by comprising means for producing.
【請求項9】 請求項8に記載の装置において、 上記パターンが、中間トーン基準スタックを形成するあ
らかじめ定義された複数個の中間トーン基準面を備え、
また上記基準面のそれぞれが中間トーンドットの異なる
描写を格納し、さらに、上記第2メモリーサンプリング
手段が、 サンプリングされたコントーン値に応じて1つの中間ト
ーン基準面を選択する手段と、 上記中間調サンプリングアドレスのそれぞれによって定
義された画素位置で上記選択された中間トーン基準面を
サンプリングして、対応の中間トーン出力値を作りだす
手段と、を含むことを特徴とする入力イメージから出力
イメージを作り出す装置。
9. The apparatus of claim 8, wherein the pattern comprises a plurality of predefined midtone reference planes forming a midtone reference stack.
Also, each of the reference planes stores a different depiction of a midtone dot, and the second memory sampling means further comprises means for selecting one midtone reference plane in response to the sampled contone value; Means for sampling the selected midtone reference plane at a pixel location defined by each of the sampling addresses to produce a corresponding midtone output value, an apparatus for producing an output image from an input image. ..
【請求項10】 請求項9に記載の装置において、 上記タイルプロセッサが、タイルおよびタイルサンプリ
ング増分開始画素に応じて、ラスター化された形で高速
スキャン方向に個々のタイルの各サンプリングラインを
横断し、タイル全体に渡りまた、各タイルの各サンプリ
ングラインから次の連続サンプリングラインに低速スキ
ャン方向に増分する一連の画素サンプリングおよび中間
調アドレスを生成する手段を備えることを特徴とする入
力イメージから出力イメージを作り出す装置。
10. The apparatus of claim 9, wherein the tile processor traverses each sampling line of an individual tile in a fast scan direction in a rasterized fashion in response to the tile and tile sampling increment start pixel. , An input image to an output image, characterized in that it comprises means for generating a series of pixel sampling and halftone addresses that are incremented in the slow scan direction from each sampling line of each tile to the next consecutive sampling line, over the entire tile. Device that produces.
【請求項11】 請求項8に記載の装置において、 上記パターンが、あらかじめ定義されたスレショルド値
のアレーを有するあらかじめ定義されたスレショルドマ
トリックスを備え、さらに上記第2メモリーサンプリン
グ手段が、 上記中間調サンプリングアドレスのそれぞれによって定
義された画素位置で上記スレショルド値をサンプリング
して、サンプリングされたスレショルド値を作りだす手
段と、 上記サンプリングされたスレショルド値とサンプリング
されたコントーン値とを比較し、結果に応じて対応する
中間調出力値を作りだす手段と、を含むことを特徴とす
る入力イメージから出力イメージを作り出す装置。
11. The apparatus of claim 8, wherein the pattern comprises a predefined threshold matrix having an array of predefined threshold values, the second memory sampling means further comprising the halftone sampling. Means for sampling the threshold value at the pixel position defined by each of the addresses to create a sampled threshold value, and comparing the sampled threshold value with the sampled contone value and responding according to the result Means for producing halftone output values for producing an output image from the input image.
【請求項12】 請求項11に記載の装置において、 上記タイルプロセッサが、タイルおよびタイルサンプリ
ング増分開始画素に応じて、ラスター化された形で高速
スキャン方向に個々のタイルの各サンプリングラインを
横断し、タイル全体に渡りまた、各タイルの各サンプリ
ングラインから次の連続サンプリングラインに低速スキ
ャン方向に増分する一連の画素サンプリングおよび中間
調アドレスを生成する手段を備えることを特徴とする入
力イメージから出力イメージを作り出す装置。
12. The apparatus of claim 11, wherein the tile processor traverses each sampling line of an individual tile in a fast scan direction in a rasterized fashion in response to the tile and tile sampling increment start pixel. , An input image to an output image, characterized in that it comprises means for generating a series of pixel sampling and halftone addresses that are incremented in the slow scan direction from each sampling line of each tile to the next consecutive sampling line, over the entire tile. Device that produces.
JP4210530A 1991-08-06 1992-08-06 Batch execution device for tile base image rotation, scaling, and digital half-tone screening Pending JPH05258051A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US74053291A 1991-08-06 1991-08-06
US740532 1991-08-06

Publications (1)

Publication Number Publication Date
JPH05258051A true JPH05258051A (en) 1993-10-08

Family

ID=24976913

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4210530A Pending JPH05258051A (en) 1991-08-06 1992-08-06 Batch execution device for tile base image rotation, scaling, and digital half-tone screening

Country Status (1)

Country Link
JP (1) JPH05258051A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004057530A1 (en) * 2002-12-20 2004-07-08 Jicoux Datasystems, Inc. Image converter, image converting method, and program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004057530A1 (en) * 2002-12-20 2004-07-08 Jicoux Datasystems, Inc. Image converter, image converting method, and program

Similar Documents

Publication Publication Date Title
JP3224866B2 (en) Tile processing method for batch rotation, scaling and digital halftone screening of images
JPH06233120A (en) Blue noise type method for usage in half-tone tile type screener and for masking screener-induced badness of picture
EP0527097A2 (en) Apparatus and method for collectively performing tile-based image rotation, scaling and digital halftone screening
US5689343A (en) Area mapping employing reference clusters for high quality noninteger resolution conversion with enhancement
US5034806A (en) Image processing apparatus and method
JPH06225140A (en) Method and apparatus for smoothing edge of picture element image
WO1996039681A1 (en) Method and apparatus for partitioning an image
JPH06180758A (en) System and method for generating raster graphic picture
JPH09216423A (en) Printing system
US5315406A (en) Screen generation for halftone screening of images using arbitrary distribution of transformed screen coordinates
EP0427380B1 (en) Method of producing halftone images
Chandu et al. Direct multi-bit search (DMS) screen algorithm
US7480072B2 (en) Efficient and flexible multi-bit halftoning
JPH07236056A (en) Picture improvement circuit
US5040080A (en) Electronic screening
JP3510662B2 (en) Smoothing scaling method for facsimile images
JPH05258051A (en) Batch execution device for tile base image rotation, scaling, and digital half-tone screening
EP0488324A2 (en) Method of and apparatus for obtaining halftone image
US5742743A (en) Apparatus and method for generating a screen reproduction of a color image including dot shape rotation
JP3669081B2 (en) Image processing device
Trager et al. A GPU based implementation of Direct Multi-bit Search (DMS) screen algorithm
JP2977583B2 (en) Halftone dot threshold generation method
JP3391809B2 (en) Image processing method and apparatus
JPH07146945A (en) Information processor
JP3469658B2 (en) Image reduction method