JPH10255030A - 複数データストリーム解析方法 - Google Patents

複数データストリーム解析方法

Info

Publication number
JPH10255030A
JPH10255030A JP9339826A JP33982697A JPH10255030A JP H10255030 A JPH10255030 A JP H10255030A JP 9339826 A JP9339826 A JP 9339826A JP 33982697 A JP33982697 A JP 33982697A JP H10255030 A JPH10255030 A JP H10255030A
Authority
JP
Japan
Prior art keywords
data
image
data streams
view
interleaved
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
JP9339826A
Other languages
English (en)
Inventor
Gene Pakenham
ジーン・ペイクンハン
Darwin A Devore
ダーウィン・エー・デボア
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.)
HP Inc
Original Assignee
Hewlett Packard 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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH10255030A publication Critical patent/JPH10255030A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/64Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/40Picture signal circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Input (AREA)
  • Image Processing (AREA)
  • Facsimile Scanning Arrangements (AREA)
  • Dram (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

(57)【要約】 【課題】複数タイプの個別データストリームを含むイン
ターリーブされた複数データストリームから複数の個別
データストリームを取り出す方法を提供する。 【解決手段】インターリーブされた複数のデータストリ
ームに含まれる個別データストリームの各々に関するデ
ータ・タイプおよびその他のパラメータを決定し、それ
ら個別データストリームの各々に関するデータ比率を計
算し、インターリーブされた複数のデータストリームを
受け取り、個別データストリームの各行をあらかじめ定
められたバッファへコピーし、計算した上記データ比率
に基づいて個別データストリームの間での切り替えを行
う。インターリーブされた複数データストリームが完了
するまで、上記処理を繰り返すことによって、複数デー
タストリームを解析して所望の複数の個別データストリ
ームを取り出す。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般的には光学ス
キャナに関するもので、特に、2つの異なる走査データ
を含む画像走査データを解析するシステムおよび方法に
関するものである。
【0002】
【従来の技術】光学スキャナは、画像を捕捉しデジタル
化するために使用される。例えば、光学スキャナを使用
して1枚の紙の上の印刷物の画像を捕捉することができ
る。デジタル化された画像は、次に電子的に記憶され、
更に文字認識ソフトウェアを用いてテキストを生成する
ように処理されることもできる。大部分の光学スキャナ
は、照明および光学システムを使用して、オブジェクト
を照射して、通常「走査行」と呼ばれる照射されたオブ
ジェクトの小さい領域を光センサ・アレイ上へ集束させ
る。照明および光学部品に対してオブジェクトを移動さ
せるか、あるいはオブジェクトに対して照明および光学
部品を移動させるかいずれかによって、照射される走査
行をオブジェクト全体にわたって掃くように移動させる
ことによってオブジェクト全体の走査が実行される。
【0003】典型的スキャナ光学システムは、照射され
る走査行の画像を光センサ・アレイ表面に集束させるた
めのレンズ部品を含む。特定の設計によっては、スキャ
ナ光学システムは、また、複数のミラーを備えて、光線
経路を折り曲げることによって光学システムを比較的小
さい筐体内に実装することができるようにすることもあ
る。
【0004】種々のタイプの光センサ装置が光学スキャ
ナで使用される可能性があるとはいえ、一般的に使用さ
れるセンサは電荷結合素子(charge coupled device)す
なわちCCDである。よく知られているように、CCD
は、各々が光の露出に反応して電荷を収集または構築す
る多数の個別セルあるいはピクセルを含む。所与のセル
またはピクセルに蓄積される電荷の大きさは光露出の強
度および持続時間に関係しているので、集束される画像
上の明るいスポットおよび暗いスポットを検知するため
CCDが使用される。典型的スキャナ・アプリケーショ
ンにおいては、CCDセルまたはピクセルの各々に構築
される電荷が測定され、典型的スキャナで約5ミリ秒程
の露出時間またはサンプリング間隔として知られる規則
的間隔で放電される。荷電(すなわち画像データ)は露出
時間の間にCCDセルに同時に収集されるので、CCD
セルからの同時または並列的データを連続または逐次デ
ータストリームに変換するためアナログ・シフト・レジ
スタがCCDにおいて使用される。
【0005】典型的アナログ・シフト・レジスタは、各
々が個別セルに接続されている複数の電荷転送バケット
を含む。露出時間の最後に、CCDセルの各々によって
収集された電荷が同時に電荷転送バケットへ転送され、
CCDセルは次の露出に備える。次に、各バケットの電
荷が、CCDセルが次の走査行に対して露出されている
間に、バケットからバケットへバケツ・リレーのように
伝送される。次に、順に並べられたCCDセルからの電
荷は、1つずつ、適切なアナログ/デジタル変換器によ
ってデジタル信号に変換される。
【0006】大部分の光学スキャナのアプリケーション
においては、CCDの個別ピクセルの各々は線形アレイ
を形成するように、順に配列される。このように、CC
Dアレイにおける各ピクセルは、照射された走査行の関
連ピクセル部分に対応する。線形光センサ・アレイにお
ける個別ピクセルは、一般的に、「横方向」、すなわち
オブジェクトを横切って進む(照射された)走査行の移動
方向に対し垂直な方向に配列される。従って、線形光セ
ンサ・アレイの各ピクセルは、横方向に測定される長さ
および走査方向に測定される幅を持つ。大部分のCCD
アレイにおいて、ピクセルの長さおよび幅は等しく、典
型的にはそれぞれ約8ミクロンである。
【0007】横方向のサンプリング率は、CCDにおけ
る個別セルの数の関数である。例えば、一般に広く使用
されているCCD光センサ・アレイは、約600PPI
(ピクセル/インチ)という横方向におけるサンプリング
率を可能にするために十分な数の個別セルを含む。この
ようなサンプリング率は横方向における本来的サンプリ
ング率と呼ばれる。
【0008】走査方向のサンプリング率は、走査行移動
速度とCCD露出時間の積(サンプリング間隔)に逆比例
する。従って、走査方向のサンプリング率は、走査行移
動速度またはCCD露出時間、あるいはその両者を減少
させることによって増加させることができ、逆に、走査
行移動速度またはCCD露出時間、あるいはその両者を
増加させることによってサンプリング率を減少させるこ
とができる。所与の露出時間に関する「走査方向の最小
サンプリング率」は、露出時に最大走査行移動速度で走
査する時に達成されるサンプリング率である。例えば、
毎秒3.33インチの走査行移動速度および約5ミリ秒
の最大露出時間は、約600PPIという走査方向にお
ける最小サンプリング率を発生する。
【0009】
【発明が解決しようとする課題】現在では、光学文字認
識(OCR)は、正確な結果を得るため、300PPIサ
ンプリング率を必要とする。このように、高解像度だが
低ビット深度である300PPI4ビットグレー走査
(8.5 X 11)は約4.2メガバイトである。精度の高いカ
ラーは24ビット・カラーを必要とする。低解像度だが
高ビット深度である150PPI24ビットカラー走査
(8.5 X 11)は、約6.3メガバイトである。カラー画像
およびOCRを必要とする書き込み文字両方を含むドキ
ュメントの走査を行うためには、走査は、300PPI
24ビット(8.5 X 11)でなければならず、これは、約2
5.24メガバイトのメモリに相当する。従って、テキ
ストおよび画像を含むドキュメントの走査は多くのメモ
リを必要とする。しかし、コンピュータ上のソフトウェ
アは、カラー画像のサンプリングを約6.3メガバイト
に下げ、カラー画像を放棄してテキストを取得する。こ
のプロセスは、ソフトウェアで実行するには非常に遅
く、また多量のメモリを不必要に消費する。代替方法と
しては、テキストまたはグラフィックスのいずれかを先
ず走査し次に別の一方の走査を実行し、その後ドキュメ
ントはソフトウェアによって再生成される。しかしなが
ら、この代替方法も、多くのメモリを使用することに加
えて非常に時間のかかるドキュメント走査方法である。
【0010】従って、テキストおよびグラフィックスの
両方を含むドキュメントを走査し、(現行では速度的に
制約のある)スキャナからホスト・コンピュータへ送ら
れるデータの総量を減少させ、ホスト・コンピュータの
ソフトウェアによって処理されるデータの総量を減少さ
せることができるスキャナが必要とされている。
【0011】
【課題を解決するための手段】本発明は、単一のインタ
ーリーブされたデータストリームの形態でホスト・コン
ピュータへ送信される複数のデータ信号を解析する機能
を有するソフトウェア・プログラムを提供する。
【0012】本発明の1面において、複数画像スキャナ
が提供される。該スキャナは、例えばテキストおよびグ
ラフィックスという複数タイプの画像を含むドキュメン
トに対して単一の走査を実行し、そのドキュメントの複
数の描画(例えば1つの高解像度グレイスケール画像と
1つの低解像度高ビット・カラー深度画像)をホスト・
コンピュータへ送信する。これによって、ホスト・コン
ピュータへ送られそこで処理されるデータの総量が顕著
に減少する。例えば、典型的走査による(8.5 X11)24
ビット深度の300PPIの場合の約25.24メガバ
イトから、本発明の場合約10.5メガバイト(同じ画像
の300PPI4ビットのグレー画像約4.2メガバイ
トおよび150PPI24ビット・カラー6.3メガバ
イトの合計)へ減少する。これは2.4対1のデータ減少
である。
【0013】本発明のスキャナは、 例えば画像間の解
像度比率が2であるとすれば、高解像度グレー・データ
の2行および低解像度カラー・データの1行を行単位に
インターリーブした形態で複数画像をホスト・コンピュ
ータへ送る。本発明の利点は、ホスト・ソフトウェアが
処理し保存すべき情報も、(スキャナ速度の制約を受け
る)スキャナからホストへ送られるべき情報も、従来技
術に比較して少ないという点である。
【0014】本発明の上記コンピュータ・ソフトウェア
は、ホスト・コンピュータによる更なる処理を行う準備
のため、インターリーブされた画像のデータストリーム
を解析して個別画像を生成する機能を持つ。
【0015】本発明は、また、インターリーブされた複
数のデータストリームを解析して個別のデータストリー
ムを導出する方法を含む。該方法は、インターリーブさ
れた複数のデータストリームに含まれる個別データスト
リームの各々に関するデータ・タイプおよびその他のパ
ラメータを決定するステップ(a)、インターリーブされ
た複数のデータストリームに含まれる個別データストリ
ームの各々に関するデータ比率を計算するステップ
(b)、インターリーブされた複数のデータストリームを
受け取るステップ(c)、個別データストリームの各行を
あらかじめ定められたバッファへコピーするステップ
(d)、上記ステップ(b)で計算されたデータ比率に基づい
て個別データストリームの間での切り替えを行うステッ
プ(e)、および、インターリーブされた複数データスト
リームが完了するまで上記ステップ(c)へ戻るステップ
(f)を含む。
【0016】本発明は、更に、インターリーブされた複
数画像データストリームを解析して、インターリーブさ
れた複数画像データストリームに含まれる個別ビューを
導出する方法を提供する。該方法は、インターリーブさ
れた複数画像データストリームに含まれる個別ビューの
各々に関するデータ・タイプおよびその他のパラメータ
を決定するステップ(a)、インターリーブされた複数画
像データストリームに含まれる個別ビューの各々に関す
る画像比率を計算するステップ(b)、インターリーブさ
れた複数画像データストリームを受け取るステップ
(c)、インターリーブされた複数画像データストリーム
に含まれる個別ビューの各行をあらかじめ定められたバ
ッファへコピーするステップ(d)、上記ステップ(b)で計
算された各ビューに関する画像比率に基づいて、インタ
ーリーブされた複数画像データストリームに含まれる個
別ビューの間での切り替えを行うステップ(e)、およ
び、インターリーブされた複数画像データストリームが
完了するまで上記ステップ(c)へ戻るステップ(f)を含
む。
【0017】
【発明の実施の形態】本発明は、単一の走査から2つの
セットの走査データを同時に取得することができるスキ
ャナを提供する。走査の区域が同一であるにもかかわら
ず、データ・タイプおよび解像度の観点から見たビュー
(すなわち画像の様相)は変わる。例えば、ドキュメント
の走査が実行される時、該スキャナの中の画像処理装置
が、走査されたドキュメントから1つの高解像度グレイ
スケール画像および1つの低解像度24ビット・カラー
画像を生成して、1つのデータストリームにインターリ
ーブされる形態でその両方の描画をホスト・コンピュー
タに送る。次に,ホスト・コンピュータは、走査された
ドキュメントの2つのビューを再作成するためその両方
の描画を解析する。
【0018】図1は、2画像スキャナに関するデータ経
路のブロック図であって、点線部分100は画像処理装
置によって実施されるスキャナ機能であり、点線部分1
02はホスト・コンピュータ機能である。本実施形態が
白黒およびカラー画像を含む2画像スキャナではあるけ
れども、概念は複数画像に拡張することができる点は注
意されるべきである。画像処理装置100は、図2およ
び図3を参照しながら後述される機能上の細部を備える
ASICの形態で実施される。ドキュメントが走査され
る時、CCDアレイ104またはその他の既知の光セン
サ装置は、赤データ信号106、青データ信号108お
よび緑データ信号11Oを出力する。次に、これら3つ
のデータ信号は、画像プレプロセッサ112によって、
カラー画像データ信号128および単色画像データ信号
130に変換される。画像プレプロセッサ112は、カ
ラー画像データ信号128をバッファ114のカラー・
バッファ部分118に書き込み、単色画像データ信号1
30をバッファ114の単色バッファ部分116に書き
込む。
【0019】次に、画像ポストプロセッサ120が、カ
ラー・バッファ118および単色バッファ116にある
画像データを使用して、ホスト・コンピュータの指定に
従って、スキャナによって走査された1つまたは2つの
いずれかのビューのウィンドウを生成する。2つのビュ
ーが生成される場合、画像ポストプロセッサは、インタ
ーリーブされたデータストリーム136という形態でそ
の2つのビューをホスト・コンピュータに送信する。
【0020】ホスト・コンピュータが走査ウィンドウの
2つのビューを受け取ると、データ解析機構122は、
データストリーム136を解析してカラー画像124お
よび単色画像126に分解する。この時点で、2つのビ
ューはホスト・コンピュータで処理される準備ができ
る。この利点は、ホスト・ソフトウェアが処理し保存す
べき情報も、(スキャナ速度の制約を受ける)スキャナか
らホストへ送られるべき情報も、従来技術に比較して少
ない。
【0021】I.複数画像スキャナ 2画像スキャナは、1回の走査で完全なページ(テキス
トおよび図形/画像)情報をホスト・コンピュータに送
るために必要とされるデータを減少させる。現行の光学
文字認識は、正確な結果を得るためには300PPIサ
ンプリング率を必要とする。カラーを忠実に表現するに
は、24ビット・カラー走査が必要である。これを実行
するための典型的走査は、(8.5 X 11の場合)24ビット
深度の300PPIであり、これは25.24メガバイ
トである。同じページの2つの描画、すなわち1つの高
解像度グレイスケール画像および1つの低解像度24ビ
ット・カラー画像をスキャナが送出することを可能とさ
せることによって、ホスト・ソフトウェアに送られそれ
によって処理されるデータの総量は大幅に減少する。3
00PPI4ビットのグレー画像(8.5 X 11)は約4.2
メガバイト、150PPI24ビット・カラー(8.5 X 1
1)は6.3メガバイトで合計約10.5メガバイトであ
り、2.4対1のデータ減少である。
【0022】本発明の複数画像スキャナは、上述の動作
を非常に迅速に実行する画像処理装置を持つ。画像処理
装置は、本明細書で記述される機能を持つ従来技術のフ
ィールド・プログラム可能ゲートアレイまたはASIC
またはその他の形態で実現することができる。複数画像
スキャナの画像処理装置は、それぞれ詳細は後述される
画像プレプロセッサ112、バッファ116および画像
ポストプロセッサ120を備える。
【0023】A.画像プレプロセッサ 図2に示されるように、プレプロセッサ112は、CC
D104から(赤106、緑108および青110から
なる)RGB画像データを取り出し、その画像の1つの
表現または2つの異なる表現のいずれかをバッファ11
4へ書き込む。可能な表現の1つはカラー画像であり、
他方は、3つのカラー・チャネルから1つ(赤,緑また
は青)だけを選択することによって生成される単色画像
である。2つの異なるバッファ画像は、同じy解像度を
持つが、x解像度およびビット深度は異なる。各画像の
ビット深度は12ビットまたは8ビットのいずれかに選
択することができ、またx解像度は、CCD解像度を1
から63までの整数係数によって除した数値とすること
ができる。CCD解像度は、両方の画像に対して同一で
あり、300PPIまたは150PPIのいずれかであ
る。例えば、画像プレプロセッサ112は、300PP
I(y)×300PPI(x)8ビット単色(緑経路)データお
よび300PPI(y)×100PPI(x)12ビット・カ
ラー・データをバッファに書き込むようにプログラムす
ることができる。必ずしも両方の画像が生成されなくて
もよい点に注意する必要がある。プレプロセッサは、カ
ラー表現だけまたは単色表現だけ、あるいはその両方を
生成するようにプログラムすることができる。本発明の
画像プレプロセッサによって実行される4つの主要機構
を図1および図2を参照して以下に記述する。
【0024】1.A/D変換器 A/D変換器は、CCDアレイから300PPIまたは
150PPIアナログRGB画像データを取り出して、
各ピクセル毎に3つのカラー値すべてのうちの1つまた
は3つのいずれかを10ビット・デジタル数へ変換す
る。これらのデジタル値は埋め込みビットを含む12ビ
ットにされてダーク・クランプに送られる。
【0025】2.ダーク・クランプ ダーク・クランプは、当該行に関する平均ダーク電流を
各ピクセル値から減ずる。次に、所望の走査ウィンドウ
の内側のピクセルが補正器に送られる。
【0026】3.補正器 補正器は、不均一な照射およびCCD反応に起因したピ
クセル変動を削除する。補正されピクセル値は次にプレ
スケーラに送られる。
【0027】4.プレスケーラ プレスケーラは補正されたピクセル値を単色画像および
カラー画像に分割して、異なる整数係数によって各画像
のx解像度を減少させ、1つまたは2つの生成画像をバ
ッファへ書き込む。プレスケーラは補正器からの画像デ
ータを単色ストリームおよびカラー・ストリームに分割
して、異なる整数係数によって各ストリームのx解像度
を減少させ、1つまたは2つの生成画像をバッファへ保
存する。これによって、画像データの各行によって消費
されるバッファ空間量が最小限にとどめられる。この効
果は特に2つのビューがホストによって要求される時顕
著である。例えば、プレスケーラが備えられず、ホスト
が8.5インチ幅の操作ウィンドウの300PPI単色
表現および100PPIカラー表現を求めるとすれば、
画像の各行は、11.475KBのバッファ空間(8.5
インチ300PPI3カラー/ピクセル1.5バイト/
カラー)を消費する。しかし、プレスケーラを使用すれ
ば、各行は、6.375KB(8.5インチ300PPI
1カラー/ピクセル+8.5インチ100PPI3カラ
ー/1.5バイト/カラー)を消費するにすぎない。
【0028】プレスケーラは全12ビット・データまた
は切り捨てを行った8ビット・データのいずれかをバッ
ファに保存することができる点に注意する必要がある。
データ幅は、各ストリーム毎に独立して指定できる。プ
レスケーラは、2つのデータストリームのx解像度を減
少する際、単にピクセルを落とすのではなく、隣接する
ピクセルを一緒に平均する。これは、実質的には、より
低い解像度で再サンプリングされる前に画像データをロ
ーパス・フィルタしているもので、エリアジングの減少
に役立つ。プレスケーラは、1から63の整数係数によ
ってx解像度を減じることができる。
【0029】B.画像ポストプロセッサ 画像ポストプロセッサは、バッファに保存された画像を
使用して、ホストによって指定された走査ウィンドウの
1つまたは2ついずれかのビューを生成する。各ビュー
は、カラー画像または単色画像から生成される。2つの
ビューは、同一画像あるいは異なる画像いずれからでも
生成することができる。例えば、1つのビューをカラー
画像から生成し別のビューを単色画像から生成すること
ができるし、また、両方のビューをカラー画像から生成
することができるし、また、両方のビューを単色画像か
ら生成することもできる。2つのビューは異なるy解像
度を持つことができるが、各ビューのy解像度は、バッ
ファのy解像度を1から16の間の整数で除したもので
なければならない。また、2つのビューのx解像度は異
なるものとすることができるが、それらx解像度は、バ
ッファにある画像のx解像度の1/4から2倍である。
また、ビューの各々は、異なるマトリックス、階調マッ
プ、データ・タイプ等々を持つことができる(後述する
ような制約はある)。
【0030】2つのビューは、生成されると、y解像度
の比率に従って、行単位でインターリーブされる形態で
送出される。例えば、ビュー1のy解像度が300でビ
ュー2のy解像度が150であれば、データはビュー1
の画像データの2行が送られると、次にビュー2の1行
が送られる(開始時点を除く)。以下の表1は、種々のy
解像度比率の場合のインターリーブされるデータの例で
ある。
【0031】
【表1】 (2対1比率)→300対150出力比:300,150,300,300,150,300,300.... (1対2比率)→300対150出力比:300,150,300,300,150,300,300.... (3対1比率)→300対100出力比:300,300,100,300,300,300,100... (1対3比率)→100対300出力比:300,100,300,300,300,100,300,300... (4対1比率)→300対75出力比:300,300,75,300,300,300,300,75,300... (1対4比率)→75対300出力比:300,75,300,300,300,300,75,300,300... (5対1比率)→300対60出力比:300,300,300,60,300,300,300,300,300,60... (1対5比率)→60対300出力比:300,300,60,300,300,300,300,300,60,300... 注:上記は単に典型的例にすぎない。その他1対9の比率まで実施可能である。
【0032】本発明の画像ポストプロセッサによって実
行される5つの主要機能を図1および図3を参照して以
下に記述する。 1.行合併器 行合併器は、該当する画像(カラーまたは白黒)から1な
いし9行を読み取り、いくつかの行を平均化して、マト
リックス器へ送る。行合併器は、走査された画像の複数
の描画を、ホスト・コンピュータに送られるべき1つの
データ・ストリームにインターリーブする。走査された
画像の複数の描画を行毎にインターリーブすることによ
って、すべての描画が生成され、インターリーブされて
ホストへリアルタイムすなわち行毎に送られるので、ス
キャナは必ずしもすべての描画を保存しなくてもよい。
【0033】行合併器は、カラー画像または単色画像か
ら1かないし9行のデータを読み取り、行のいくつかを
平均して、マトリックス器によって実行されなければな
らない計算処理の数を減少させる。加えて、行合併器
は、追加の隣接行を平均することによって単純な形式の
y解像度事前縮尺を提供することができる。例えば、行
合併器は、バッファから9行を読み取り、各3隣接行を
平均して3というファクタでy解像度を有効に減少さ
せ、中心行対称のため残りの外側の2行を平均して、結
果として生成した2行をマトリックス器へ送る。従っ
て、この場合マトリックス器によって処理されなければ
ならない行数を9から2へ減少させた。
【0034】(Nをバッファから読みとられる9までの
行数として)1からNまでのいかなる隣接行数も一緒に
平均することができる。しかしながら、隣接行が平均さ
れた後結果として生成される行の数は、1、3、5、7
または9であり、その左右対称行は、マトリックス器に
渡される前に更に平均される。これは、隣接行が平均さ
れない場合1、3、5、7または9のいずれかの中心行
を使用することができることを意味する。しかし、2ま
たは3の隣接行が平均されるとすれば、1または3行の
中心行だけを使用することができる。4ないし9の隣接
行が平均されれば、1つの中心行だけを使用することが
できる。
【0035】行は、各行の対応するピクセルを加算して
1、2、4または8の縮尺係数で除することによって平
均される。従って、1、2、4または8行を平均する時
にのみ正確な平均が得られる。縮尺係数で除された加算
行数が2を超える場合、行合併器は桁あふれする。従っ
て、3、5、6、7または9行の平均が求められるとす
れば、最も近い小さめの縮尺係数が使用されるべきであ
り、マトリックス係数は、行合併器において出される余
剰「利得」を埋め合わせるように減少されなければなら
ない。この規則に対する唯一の例外は、バッファから9
行を読み取り、各隣接3行を平均し、次に中心行3を使
用する場合である。この場合、行合併器は、9行を2行
に減少する。これらの2行のうち1つ(すなわち中心に
対応する行)は、バッファからの中央3行を加えること
によって得られる。もう1つの行は、バッファからの外
側6行を加えることによって得られる。しかし、行合併
器から出力される行が2を越える数で乗じられないよう
に、ただ1つの除数を選択することができるだけであ
る。従って、この例では、4という除数が選択されなけ
ればならない。この例では行合併器の利得は3/4であ
るので、マトリックス器係数は、埋め合わせのため増加
される必要があるかもしれない。
【0036】使用されるべきバッファ画像(カラーまた
は単色)、その画像から読み取られる行の数、平均され
る隣接行の数およびスケール係数は、生成されるべきビ
ュー各々毎に独立して指定することができる。
【0037】2.マトリックス器 マトリックス器は、各ピクセルの3つのカラーを混合し
て階調マップ器に行を送る前に単色または3色を生成す
る。
【0038】3.階調マップ器 階調マップ器は、参照テーブルおよび補間を使用して、
画像コントラストおよび強度を調整して、その後フォー
マッタにデータを送る。出力されるピクセルは階調マッ
プ器によって更に変換され、階調マップと呼ばれる移転
曲線を含む参照テーブルを通過する。階調マップは、ガ
ンマ補正の実行、コントラストおよび強度の調整、陰影
の強化などを行うため使用される。
【0039】4.フォーマッタ フォーマッタは、指定されたデータ幅に納める前に、デ
ータを選択的にしきい値にかける。この段階は、また、
圧縮エンジンに送る前に、必要に応じてデータを反転さ
せることができる。
【0040】5.圧縮エンジン 圧縮エンジンは、圧縮アルゴリズムを使用して、データ
をホストに送る前に、画像データ行を選択的に圧縮す
る。
【0041】II.単一走査ウィンドウから複数ビューの
生成 本発明の複数画像スキャナは、単一走査から2つの画像
を取得する能力を持つ。複数画像の走査コマンド言語
(略してSCLと呼ぶ)の実施は、走査ウィンドウの概念
をそのウィンドウの特定のビューと切り離す。SCLは
スキャナのために使用されるコマンド言語であり、一般
によく知られている。どのようなコマンド言語でも使用
することができる点に留意する必要がある。しかし、本
発明の好ましい実施形態においては、SCLは1つの走
査ウィンドウから複数のビューを生成するために使用さ
れる。走査ウィンドウは、(xおよびy位置および範囲
によって規定され)走査されるページの物理的領域であ
る。走査ウィンドウのビューは、物理的領域の内側に含
められ(解像度、データ・タイプ、ミラー、反転等々に
よって定義される)データである。ウィンドウおよびビ
ューとは独立した(ADF使用、連番などの)スキャナ設
定項目がある。ビューおよびウィンドウを分離する利点
は、複数のビューの定義を複数のビューを含む複数のウ
ィンドウに拡張することができる点である。本発明以外
のいかなるスキャナも、複数画像能力または複数のビュ
ーの実施形態を備えていない。注意されるべき点ではあ
るが、複数のビューという本実施形態において、単一の
走査を使用して同一ドキュメントの複数のビューを取得
しているが、単一または複数の走査を使用して同一ドキ
ュメントの複数のビューを取得するか否かは問題ではな
い。データが(単一または複数の走査から)どのように取
得されようとも、重要なのは、1つ以上のビューという
SCL実施形態によって異なるデータが同じ空間を表現
することが可能にされている点である。
【0042】本発明の1つの好ましい実施形態では、ヒ
ューレット・パッカード社のスキャンジェット5p(Sca
nJet 5p)が利用され、データの2つのビューの同時取得
が可能とされる。しかし、どのような製造業者のどのよ
うなカラー・スキャナでも本発明を実施することができ
るように修正することができることは留意されるべきで
ある。走査の区域が同じものであるが、2つのビューの
データ・タイプおよび解像度は変わることができる。2
つのビューに対して設定される変数に関する制限は、S
CLにおけるSetViewTypeマクロを用いて次の表2のよ
うに記述される。
【0043】
【表2】 パラメータは次のように設定される。Phase -- これが
シーケンスの最初の伝送であるかどうかを示すフラグ。
次の値のいずれかでなければならない。SL_FIRST or SL
_SCAN:伝送における最初のバッファ,SL_ADF_SCAN:A
DF伝送における最初のバッファ(現時点ではHP 1750A
およびHP5110Aによってのみサポートされている),SL_NE
XT:各追加バッファ伝送; PbufferView0 -- ビュー0データ・バッファへのポイン
タ; LengthView0 -- ビュー0データ・バッファのサイズ; pReceivedView0 -- ビュー0に関してスキャナから実
際に送られるバイト数のポインタ; pBufferView1 -- ビュー1データ・バッファへのポイン
タ; LengthView1 -- ビュー1データ・バッファのサイズ; pReceivedView1 -- ビュー1に関してスキャナから実際
に送られるバイト数のポインタ;
【0044】この関数は、スキャナの2つのビューモー
ドをサポートしている点を除いて、SCLに関してよく
知られているScan()関数に類似している。
【0045】単一走査の2つのビューに関するデフォル
ト設定項目のいくつかを下記表3に示す。
【0046】
【表3】パラメータ デフォルト:画像1 デフォルト:画像2 ・データ・タイプ 0(単色しきい値) 5(カラー) ・データ幅 1ビット/ピクセル 24ビット/ピクセル ・単色ディザ・パターン 0(粗く太く) 0(粗く太く) ・係数マトリックス 2(緑色のみ) 0(NTSCカラー) ・階調マップ 0(コントラスト/強度) 0 ・強度 0 0 ・コントラスト 0 0 ・ミラー 0(オフ) * ・自動背景 0(オフ) * ・反転画像 0(オフ) 0(オフ) ・X解像度 300DPI 100DPI ・Y解像度 300DPI 100DPI ・X縮尺因子 100% 100% ・Y縮尺因子 100% 100% ・X位置 0 * ・Y位置 0 * ・X範囲 2550(ピクセル) * ・Y範囲 3300(ピクセル) * ・ランプ 0(オフ) * ・走査バー位置 その場で停止 * ・ダウンロード・タイプ 0(単色ディザ・パターン) 0(単色ディザ・パターン) ・ダウンロードされる 8X8単色ディザ・ パターン なし(旧パターン削除) * ・ダウンロードされる 8ビット階調マップ なし(旧マップ削除) * ・ダウンロードされる カラー・ マトリックッス なし(旧マトリックス削除)* ・ダウンロードされる 調整ストリップ・ パラメータ なし(旧パラメータ削除) * ・ダウンロードされる 16X16単色ディザ・ パターン なし(旧パターン削除) * ・ダウンロードされる 単色マトリックッス なし(旧マトリックス削除)* ・ダウンロードされる 10ビット・カラー・ マトリックッス なし(旧パラメータ削除) * ・ダウンロードされる RGB階調マップ なし(旧パラメータ削除) * ・ダウンロードされる 単色階調マップ なし(旧パラメータ削除) * ・ダウンロードされる RGB利得 なし(旧パラメータ削除) * ・調整Y開始 -1(白ストリップ) * ・調整ストリップ・ パラメータ 0(自動-選択) * ・調整モード 0(自動-データ幅依存) * ・速度モード 0(自動) * ・圧縮 0(オフ) 0(オフ) ・ビュー数選択 1 該当せず ・選択されるビュー 1(オフ) 該当せず ・調整ストリップ低位 0(計算済み) * ・最高行数/バッファ 0 *
【0047】上記表3において、*は、そのパラメータ
が2つのビューに対して別々に設定されないことを示
す。しかし、2つのビューに対して別々に設定すること
ができるように修正することはできる。また、これらの
パラメータ設定およびSCLコマンドは本発明の実施形
態を反映しているが、本発明の単一走査概念に基づいて
複数のビューを可能にするパラメータ設定またはSCL
コマンドの可能な組合せにだけ限定するようには意図さ
れていない。
【0048】スキャナによってホスト・コンピュータへ
送られるべきビューの数を選択する以下のコマンドが追
加された。 コマンド:ビューの数選択 エスケープ・シーケンス:Esc*f#A 照会ID:10466 範囲:1-2 デフォルト:1 マクロ:SetNumberofViews(x) 送付コマンド:SendCommand(SL_NUM_OF_VIEWS, x) 但しxは1または2。
【0049】このコマンドは、スキャナによって送られ
るビューの数を選択する。デフォルトは1である。本実
施形態がサポートする値は、1=1つのビュー、2=2つの
ビュー、である。2つのビューが使用可能にされると、
2つのビューに関するデータが、それらのY解像度に応
じて行単位でインターリーブされて送られる。例えば、
ビュー1のY解像度が300でビュー2のY解像度が1
50であれば、上述のように、(最初を除いて)ビュー1
が2行送られると次にビュー2が1行送られるというよ
うに交互に伝送される。
【0050】以下のようにビュー選択コマンドを使用し
て、動作させたい所望のビューに関してスキャナの設定
を行うことができる。 コマンド:ビュー選択 エスケープ・シーケンス:Esc*f#B 照会ID:10467 範囲:0-1 デフォルト:0 マクロ:SetViewType(x) 送出コマンド:SendCommand(SL_VIEW_TYPE, x) 但し、xは、ビュー1に対しては0、ビュー2にに対して
は1である。
【0051】ビューは、スキャナ設定を選択する前に選
択されなければならない。このコマンドは、後続のSC
Lコマンドまたは照会がどのビューを参照するかを選択
する。サポートされる値は、0(ビュー1)および1(ビュ
ー2)である。デフォルトはビュー1である。
【0052】III.複数画像走査データ解析方法 ホスト・コンピュータ・ソフトウェアは、スキャナによ
って送られたインターリーブされた複数画像データを解
析する。本実施形態において、ソフトウェア・プログラ
ムDualScanおよびそのサポート・モジュールは、複数画
像データ形式の詳細の知識を持たないユーザがフォトシ
ョップ(Photo Shop)のようなプログラムで使用できるよ
うにスキャナからの複数画像データを解析して周知のT
IFFファイルに変換することを可能にする。DualScan
はヒューレット・パッカード社から販売されているソフ
トウェア・プログラムである。画像の一方または両方が
解析問題を一層複雑にする圧縮データを含む可能性があ
る。DualScanは、スキャナから受け取る(インターリー
ブされた)データストリームを解析することによって、
ハードウェアとして複数画像機能を持つスキャナの使用
を可能にする。本実施形態に記述される2つのビューで
はなく、複数のビュー・データの解析を含むようにDual
Scanを拡張することは当業者にとって容易であろう。
【0053】図4は、2画像データストリームのブロッ
ク図であって、データストリーム136がスキャナ(図
示されていない)から送られ、データストリーム解析機
構122によって解析されてホスト・コンピュータ(図
示されていない)上のビュー1データ(単色画像)126
およびビュー2データ(カラー画像)124が生成され
る。データ・ストリーム解析機構の動作の詳細は図5に
流れ図として示されている。
【0054】初期的に、ステップ200において、画像
の各々について解像度、圧縮状態および行バイト数がデ
ータ解析機構によって照会される。次に、各ビューに関
する画像比率がデータ解析機構によって計算される(ス
テップ202)。次に、ステップ204において、イン
ターリーブされた画像データがデータ解析機構によって
スキャナから受け取られる。ステップ206において、
データ解析機構は、走査データの1行を適切な出力バッ
ファにコピーする(必要に応じてそのデータを伸張す
る)。次に、データ解析機構は、ステップ202で計算
した画像比率に基づいてビューを切り替える(ステップ
210)。エラーが検出されずかつデータストリームの
解析が完了していなければ(ステップ212)、データ解
析機構はステップ204に戻り、更に解析すべきデータ
をスキャナから受け取る。エラーが検出されるかあるい
はデータストリームの解析が完了してれば(ステップ2
12)、データ解析機構は、適切な措置を講ずる呼び出
し元関数にこの状態を返す。エラー条件には、(1)出力
バッファ容量不足、(2)スキャナからの不具合応答、(3)
伸張エンジンおよびスキャナにデータなし、または(4)
走査完了が含まれる。図5の処理ステップの詳細は、後
述の付録Aに原始コードとして示されている。
【0055】本明細書に記述されている実施形態は、2
つの走査、2つのビューおよび2つのインターリーブさ
れたデータストリームの解析を記述しているが、これら
の概念は、複数の走査、複数のビューおよび複数のイン
ターリーブされたデータストリームの解析に容易に拡張
することができる点は留意されるべきである。
【0056】本発明の上記記述は、例示の目的のために
提示されたものであって、本発明を上述されたものに限
定するように意図されてはいないし、上記実施形態の種
々の修正および変形は可能である。例えば、データスト
リーム解析機構は、複数セットのデータを含むインター
リーブされたデータストリームを解析する能力を有して
いる。データストリームは、走査された画像データスト
リームである必要はない。また、同一ウィンドウの複数
のビューのSCL実施形態は複数のビューがどのように
取得されるかは関係ない。ビューが同一領域の複数の走
査から取得される場合でも実施形態は同じである。上記
実施形態は発明の原理およびその実際的応用を最もよく
説明するため選択され記述されたものであって、これに
よって、当業者が、特定の使用に合致するように種々の
実施形態および種々の修正の形態で本発明を利用するこ
とが可能であろう。
【0057】
【表4】 付録A INT16 FP DualScan(INT16 Phase, PUlNT8 pBufferView0,INT32 LengthView0,PINT32 pReceivedView0, PUINT8 pBufferView1,INT32 LengthView1,PINT32 pReceivedView1) /* ** パラメータ: ** Phase シーケンスの最初の伝送であることを示すフェーズ・フラグ。 ** このフラグの値は次のいずれかである。 ** SL_FIRSTまたはSL_SCAN, 伝送における最初のバッファ。 ** SL_ADF_SCAN, ADF伝送における最初のバッファ。 ** SLNEXT, 各追加バッファ伝送。 ** pBufferView0 データを受けるためビュー0データ・バッファを ** 指し示すポインタ。 ** LengthView0 ビュー0データ・バッファのサイズ(バイト)。 ** pReceivedView0 ビュー0に関してスキャナから受け取る実際のバイト数を ** 指し示すポインタ。 ** pBufferView1 データを受けるためビュー1データ・バッファを指し示す ** ポインタ。 ** LengthView1 ビュー1データ・バッファのサイズ(バイト)。 ** pReceivedView1 ビュー1に関してスキャナから受け取る実際のバイト数を ** 指し示すポインタ。 **大域変数:なし ** 動作:SL_ADF_SCANはHP1750AおよびDominoによってだけサポートされる。 ** このプロシージャはスキャナの2つのビューモードをサポートする点を除い て** "Scan()"関数とほとんど同一である。 ** このコマンドは、"Domino"のような2つのビューをサポートするスキャナに ** 関してのみサポートされている。 ** ** 注:このルーチンは、また、圧縮された入力データを取り扱うことができる **。 ** ** 戻り値: ** status(状態) OKAY スキャナへのコマンド送付成功。 ** SL_BADACCESS 伝送エラー。 ** SL_BADRESPONSE 照会への応答不正。 ** SL_NULLRESPONSE 照会への応答はヌル。 ** SL_ILLEGALCMD スキャナへ不適当なコマンド送付。 ** (スキャナは当該SCLコマンドをサポートしていない) **。 ** ** SL_SCANERROR 圧縮走査エラー。 */ { INT16 status = OKAY; INT16 num_views; /* 現在活動的なビューの番号 */ INT16 active_view; /* このルーチンへの入り口における */ /* 活動的ビュー(0または1) */ INT32 received = -1; /* スキャナから実際に受け取るデータ量 */ /* (検査のため初期値-1) */ INT16 YRes_view0, /* ビュー0および1に関するY解像度 */ YRes_view1; INT16 ImageRatio_view0, /* ビュー0および1に関する画像比率 */ ImageRatio_view1; static INT16 Compression_view0, /* ビュー0および1に関する */ Compression_view1; /* 走査データ圧縮フラグ */ static INT16 WidthBytes_view0, /* ビュー0および1に関する */ WidthBytes_view1; /* 単一走査行のバイト幅 */ static INT16 cur_view; /* 現在処理されているビュー */ static INT16 view_count[2]; static INT16 imageratio[2]; static PUlNT8 pScanBuffer; /* 静的に割り当てられた入力走査バッファ */ /* における現在位置へのポインタ */ static INT16 bytes_avail; /* 入力バッファにおける利用可能バイト数 */ /* 2画像走査処理の確認 */ if (Phase != SL_NEXT) { status = InquireNumber(SL_VIEW_TYPE, SL_NOM;(PINT16)&active_view); if (status != OKAY) return (SL_ILLEGALCMD); /* ビュー#0(第1のビュー)に対して適用できる走査状態情報を取得する */ SetViewType(0); if ((status=InquireNumber(SL_NUM_OF_VIEWS,SL_NOM&num_views)!= OKAY) || (num_views != 2) || (status=InquireNumber(SL_Y_RBSOLUTION,SL_NOM,&YRes_view0) != OKAY) || (status = InquireNumber(SL_COMPRESSION,SL_NOM,&Compression_view0) != OKAY) || (status = InquireNumber(SL_BYTES_PER_LINE,SL_NOM,&WidthBytes_viewO) != OKAY)) return (SL_ILLEGALCMD); /* ビュー#1(第2のビュー)に対して適用できる走査状態情報を取得する */ SetViewType(1); if ((status = InquireNumber(SL_Y_RESOLUTION,SL_NOM,&YRes_view1) != OKAY) || (status = InquireNumber(SL_COMPRESSION,SL_NOM,&Compression_view1) != OKAY)) || (status = InquireNumber(SL_BYTES_PER_LINE,SL_NOM,&WidthBytes_view1) != OKAY)) return (SL_ILLEGALCMD); /* Y解像度を使用しているビュー各々に関してY画像比率を計算する */ if (YRes_view0 <= YRes_view1) { ImageRatio_view0 = 1; ImageRatio_view1 = YRes_view1/YRes_view0; #ifdef VORTEX_WORKROUND view_count[0] = 0; view_count[1] = ((INT16)((ImageRatio_view1/2) + 1)) %ImageRatio_view1; if (view_count[1]==0) /* 特別ケース:1:2比率 */ cur_view = 0; /* 開始のビューを設定 */ else cur_view = 1; #endif } else { ImageRatio_view0 = YRes_view0/YRes_view1 ; ImageRatio_view1=1; #ifinddef VORTEX_WORKROUND view_count[0] = (INT16)(ImageRatio_view0/2); view_count[1] = 0; /* 開始ビュー設定 */ cur_view = 0 #endif } #ifdef VORTEX_WORKROUND /* (サポートしている画像比率に関して)ビュー出力カウンタを初期化する */ view_count[0] = 1; /* =ImageRatio_view0-1; */ /*(最終的Vortexリリースに関して) */ view_count[1] = ImageRatio_view1; cur_view = O; /* 開始ビュー設定 */ #endif imageratio[O] = ImageRatio_view0; imageratio[1] = ImageRatio_view1; /* このルーチンに入る時、ビューを初期活動ビューにリセットする */ SetViewType(active_view); /* 走査入力バッファへのポインタを初期化する */ pScanBuffer = (PUINT8)&ScanBuffer; } /* if(Phase != SL_NEXT) */ /* 両方のビューに関して受け取る実際のバイト数を初期化する。 * 注:これらの2つの関数戻り引数がこのルーチン内で初期化されるが、 * それらは、このルーチンによって呼び出されるもう1つの * 関数CopyScanLine()内で実際に設定される。 */ *pReceivedViewO=O; *pReceivedView1=O; /* スキャナが通信中でありエラー状態をクリアしていることを確認する */ if (Phase==SL_NEXT ||((status = InquireOldestErrorO) != SL_BADACCESS && status != SL_BADRESPONSE && status != SL_NULLRESPONSE && (status = SendCommand(Phase,O))==OKAY)) { if ((Phase==SL_FIRST) || (bytes_avail==SCAN_BUFSIZE)) { /* バッファに記憶 */ bytes_avail=SCAN_BUFSIZE; status=SCANBUFEMPTY; } while ((status != OUTBUFFERFULL) && (status != SL_SCANERROR) && (received != O)) { /* 必要なら走査入力バッファに再記憶 */ if (status==SCANBUFEMPTY) { memmove(ScanBuffer,pScanBuffer,SCAN_BUFSIZE-bytes_avail); pScanBuffer=&ScanBuffer[SCAN_BUFSIZE-bytes_avail]; received = RecFromScanner(pScanBuffer,bytes_avail,SL_ALLCHAR); if (received < O) /* 走査データ読み取りエラー */ { *pReceivedViewO= O; *pReceivedView1= O; return(SL_BADACCESS); } #ifdef DEBUG_DI if (debug_flag) { printf("bytes_avail A1= %d\n",bytes_avail); } #endif bytes_avail = bytes_avail - (INT16)received; /* 利用可能バイト数のカウントをリセットする */ #ifdef DEBUG_DI if (debug_flag) { printf("bytes_avail A2 = %d\n" bytes_ avail) } #endif pScanBuffer = &ScanBuffer[O]; status = OKAY; } /* if(..) */ if (bytes_avail==SCAN_BUFSIZE) break; /* 適切な入力走査バッファに記憶 */ if (cur_view==O) { status = CopyScanLine(Compression_viewO,WidthBytes_viewO, &pScanBuffer,&bytes_avail,&pBufferViewO,LengthViewO, pReceivedViewO); } else /* cur_view1 */ { status = CopyScanLine(Compression_view1,WidthBytes_view1, &pScanBuffer,&bytes_avail,&pBufferView1,LengthView1, pReceivedView1); } /* プロセスすべき次の画像(ビュー0または1)に切り替える */ if ((status != SCANBUFEMPTY) && (status != OUTBUFFEREULL) && (status != SL_SCANERROR)) { #ifdef VORTEX_WORKAROUND --view_count[cur_view]; if (view_count[cur_view]==O) { view_count[cur_view]=imageratio[cur_view]; #else ++view_count[cur_view]; if (view_count[cur_view]==imageratio[cur_view]) { view_count[cur_view]= O; #endif cur_view = ((cur_view + 1)%2); } } } /* while() */ #ifdef DEBUG_DI if (debug_flag) printf("[DualScan] status = %d; bytes_avail A3=%d\n",status, bytes_avail); #endif /* 行を完了するため伸張エンジンが更にデータを必要としているが */ /* するがスキャナが送るべきデータを持っていないことを検査する。*/ if (((status==SCANBUFEMPTY) && (received==O)) || (status==SL_SCANERROR)) status=SL_SCANERROR; else status = OKAY; } /* if(..) */ return status; } /* DualScan */ static INT16FP CopyScanLine(INT16 Compression,INT16 WidthBytes, PUlNT8 *ScanBuffer,PINT16 bytes_avail,PUINT8 *pBuffer, INT32 Length,PlNT32 pReceived) /* ** パラメータ: ** Compression 入力走査データ圧縮フラグ。 ** WidthBytes 単一走査行の幅(バイト)。 ** ScanBuffer 走査入力バッファ内の現在時バイトを含むポインタを ** 指し示すポインタ。 ** [出口において--間接的に参照されたバイト・ポインタは、 ** 入力バッファから処理された最後のバイトの直後の ** バイト・アドレスに設定される。] ** bytes_avail 入力バッファにおいて利用可能なバイト数を指し示す ** ポインタ(この引数は、この関数が最初に呼び出される時の ** SCAN_SIZEに常に等しい)。 ** [出口において-- このカウンタは、このルーチンによって ** 成功裡に処理された入力バイト数だけ増分される。] ** pBuffer 処理されたデータが記憶されるべき出力バッファ内に ** おける現在位置を含むポインタを指し示すポインタ。 ** [出口において--間接的に参照されたバイト・ポインタは、 ** 出力バッファに追加されるべき次のバイトのアドレスに ** 設定される。] ** Length 出力バッファ'pBuffer'の全体サイズ(バイト)。 ** (注:これは'pBuffer'の全体サイズであってバッファに ** 残る利用可能バイト数ではない。) ** pReceived 'pBuffer'によって指し示される出力バッファにおいて ** 検出される実際のバイト数を指し示すポインタ。 ** [出口において--このカウンタは、出力バッファに現在 ** あるバイトの総数を含む。] ** ** 大域変数:なし ** 動作:このプライベート関数は、入力バッファ'ScanBuffer'から ** 出力バッファ'pBuffer'へ単一走査行データをコピーする。 ** 戻し値: ** status OKAY, 出力バッファへの書き込み成功。 ** SCANBUFEMPTY, 入力走査バッファは空である ** (入力バッファは、単一の完全な走査行として ** 十分なデータを持っていない)。 ** OUTBUFFERFULL, 出力走査バッファはいっぱいで ** 処理された(すなわち2つに分解されたまたは ** 伸張された)データを格納することができない ** (新しい完全な単一走査行を格納できる十分な ** 空間を出力バッファは持っていない)。 */ { INT16 status = OKAY; /* この関数からの戻り値 */ /* (デフォルト=OKAY) */ /* * 完全な単一走査行データを記憶するのに十分な出力バッファの空間が * あるかを検査する。 */ if ((*pReceived + WidthByies) > Length) status = OUTBUFFERFULL; else { /* 出力バッファに空きあり! */ if (!Compression) { /*非圧縮データ */ /* 入力バッファが完全な単一走査行データを含んでいるか検査する。*/ if ((SCAN_BurSIZE - *bytes_avail) < WidthBytes) status = SCANBUFEMPTY; else{ /* すべてOK--データをコピーする */ memmove ((PUINT8) *pBuffer,(PUlNT8)*ScanBuffer,WidthBytes); *ScanBuffer += WidthBytes; *bytes_avail += WidthBytes; *pBuffer += WidthBytes; } } else { /* 圧縮データ */ /* 入力単一走査行を伸張する */ status = Decomp(ScanBuffer,bytes_avail,WidthBytes,pBuffer); } /* if() else */ if (status OKAY) { *pReceived += WidthBytes; } } return status; } /* CopyScanLine */
【0058】本発明には、例として次のような実施様態
が含まれる。 (1)インターリーブされた複数のデータストリームに
含まれる個別データストリームを導出するため、インタ
ーリーブされた複数のデータストリームを解析する方法
であって、インターリーブされた複数のデータストリー
ムに含まれる個別データストリームの各々に関するデー
タ・タイプおよびその他のパラメータを決定するステッ
プ(a)と、インターリーブされた複数のデータストリー
ムに含まれる個別データストリームの各々に関するデー
タ比率を計算するステップ(b)と、圧縮されている可能
性のある個別データストリームを含むインターリーブさ
れた複数のデータストリームを受け取るステップ(c)
と、個別データストリームの各行をあらかじめ定められ
たバッファへコピーするステップ(d)と、必要に応じて
圧縮された個別データストリームに対して伸張を実行す
るステップ(e)と、上記ステップ(b)で計算されたデータ
比率に基づいて個別データストリームの間での切り替え
を行うステップ(f)と、インターリーブされた複数デー
タストリームが完了するまで上記ステップ(c)へ戻って
上記ステップ(c)から上記ステップ(f)までを反復するス
テップ(g)と、を含む複数データストリーム解析方法。
【0059】(2)インターリーブされた複数画像デー
タストリームに含まれる個別ビューを導出するため、イ
ンターリーブされた複数画像データストリームを解析す
る方法であって、インターリーブされた複数画像データ
ストリームに含まれる個別ビューの各々に関するデータ
・タイプおよびその他のパラメータを決定するステップ
(a)と、インターリーブされた複数画像データストリー
ムに含まれる個別ビューの各々に関する画像比率を計算
するステップ(b)と、圧縮されている可能性のある個別
ビューを含むインターリーブされた複数の画像データス
トリームを受け取るステップ(c)と、個別ビューの各行
をあらかじめ定められたバッファへコピーするステップ
(d)と、必要に応じて圧縮された個別ビューに対して伸
張を実行するステップ(e)と、上記ステップ(b)で計算さ
れた各ビューに関する画像比率に基づいて、インターリ
ーブされた複数画像データストリームに含まれる個別ビ
ューの間での切り替えを行うステップ(f)と、インター
リーブされた複数画像データストリームが完了するまで
上記ステップ(c)へ戻って上記ステップ(c)から上記ステ
ップ(f)までを反復するステップ(g)と、を含む複数画像
データストリーム解析方法。
【0060】
【発明の効果】本発明に従うスキャナの利用によって、
テキストとグラフィックスのような異なるタイプの画像
を含むドキュメントの1回の走査から、例えば高解像度
グレースケール画像と低解像度高ビット深度カラー画像
という2つの描画画像を同時に出力することが可能とな
り、それによって、ホスト・コンピュータへ送られそこ
で処理されるデータの総量が大幅に減少する。
【図面の簡単な説明】
【図1】本発明に従った複数画像スキャナに関するデー
タ経路のブロック図である。
【図2】本発明に従った複数画像スキャナに関する画像
プレプロセッサのデータ経路の一層詳細なブロック図で
ある。
【図3】本発明に従った複数画像スキャナに関する画像
ポストプロセッサのデータ経路の一層詳細なブロック図
である。
【図4】本発明に従った複数画像スキャナからホスト・
コンピュータへのデータ経路の一層詳細なブロック図で
ある。
【図5】本発明に従って、複数セットのデータを含むデ
ータストリームを解析する方法の流れ図である。
【符号の説明】
100 スキャナ 102 ホスト・コンピュータ 104 CCDアレイ 112 画像プレプロセッサ 114 バッファ 116 単色バッファ 118 カラー・バッファ 120 画像ポストプロセッサ 122 データ解析機構 124 カラー画像 126 単色画像 128 カラー画像信号 130 単色画像信号 136 データストリーム

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】インターリーブされた複数のデータストリ
    ームに含まれる個別のデータストリームを導出するた
    め、インターリーブされた複数のデータストリームを解
    析する方法であって、 インターリーブされた複数のデータストリームに含まれ
    る個別データストリームの各々に関するデータ・タイプ
    およびその他のパラメータを決定するステップと、 インターリーブされた複数のデータストリームに含まれ
    る個別データストリームの各々に関するデータ比率を計
    算するステップと、 圧縮されている可能性のある個別データストリームを含
    むインターリーブされた複数のデータストリームを受け
    取るステップと、 個別データストリームの各行をあらかじめ定められたバ
    ッファへコピーするステップと、 必要に応じて圧縮された個別データストリームに対して
    伸張を実行するステップと、 上記データ比率計算ステップにおいて計算されたデータ
    比率に基づいて個別データストリームの間での切り替え
    を行うステップと、 インターリーブされた複数データストリームが完了する
    まで、インターリブされた複数データストリームを受け
    取る上記ステップから個別データストリーム間での切り
    替えを行う上記ステップまでを反復するステップと、 を含む複数データストリーム解析方法。
JP9339826A 1997-01-13 1997-12-10 複数データストリーム解析方法 Pending JPH10255030A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/782,729 US5856832A (en) 1997-01-13 1997-01-13 System and method for parsing multiple sets of data
US782,729 1997-01-13

Publications (1)

Publication Number Publication Date
JPH10255030A true JPH10255030A (ja) 1998-09-25

Family

ID=25126996

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9339826A Pending JPH10255030A (ja) 1997-01-13 1997-12-10 複数データストリーム解析方法

Country Status (3)

Country Link
US (1) US5856832A (ja)
EP (1) EP0853418A3 (ja)
JP (1) JPH10255030A (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6027138A (en) * 1996-09-19 2000-02-22 Fuji Electric Co., Ltd. Control method for inflating air bag for an automobile
US6542260B1 (en) * 1997-01-13 2003-04-01 Hewlett-Packard Company Multiple image scanner
US6116640A (en) * 1997-04-01 2000-09-12 Fuji Electric Co., Ltd. Apparatus for detecting occupant's posture
US7768670B1 (en) * 1997-06-19 2010-08-03 Xerox Corporation Method and system for processing and rendering object oriented neutral image data
JPH11232378A (ja) * 1997-12-09 1999-08-27 Canon Inc デジタルカメラ、そのデジタルカメラを用いた文書処理システム、コンピュータ可読の記憶媒体、及び、プログラムコード送出装置
JP3812251B2 (ja) * 1999-11-29 2006-08-23 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置
JP4672918B2 (ja) * 2001-07-12 2011-04-20 キヤノン株式会社 イメージセンサ及び画像読取装置
CN100442264C (zh) * 2005-10-14 2008-12-10 威盛电子股份有限公司 封包处理系统与方法
US7881511B2 (en) * 2007-01-19 2011-02-01 Korea Advanced Institute Of Science And Technology Method for super-resolution reconstruction using focal underdetermined system solver algorithm
US8773733B2 (en) * 2012-05-23 2014-07-08 Eastman Kodak Company Image capture device for extracting textual information
US10944971B1 (en) * 2017-05-22 2021-03-09 Cinova Media Method and apparatus for frame accurate field of view switching for virtual reality

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4015286A (en) * 1975-01-23 1977-03-29 Eli S. Jacobs Digital color television system
JPS5522708A (en) * 1978-08-04 1980-02-18 Dainippon Screen Mfg Co Ltd Method and apparatus for recording of color image
US4521805A (en) * 1981-04-24 1985-06-04 Canon Kabushiki Kaisha Printing apparatus or system
JPS60176365A (ja) * 1984-02-22 1985-09-10 Dainippon Screen Mfg Co Ltd 画像信号の圧縮方法
US5220418A (en) * 1986-05-21 1993-06-15 Canon Kabushiki Kaisha Image processing apparatus which thins out predetermined color signals
US5131053A (en) * 1988-08-10 1992-07-14 Caere Corporation Optical character recognition method and apparatus
US5239313A (en) * 1992-07-24 1993-08-24 Hewlett-Packard Company Continuously variable resolution laser printer
US5331431A (en) * 1992-08-31 1994-07-19 Motorola, Inc. Method and apparatus for transmitting and receiving encoded data
US5420692A (en) * 1994-06-06 1995-05-30 Motorola, Inc. Method and apparatus for encoding a facsimile message
US5729637A (en) * 1994-08-31 1998-03-17 Adobe Systems, Inc. Method and apparatus for producing a hybrid data structure for displaying a raster image

Also Published As

Publication number Publication date
US5856832A (en) 1999-01-05
EP0853418A2 (en) 1998-07-15
EP0853418A3 (en) 2000-07-05

Similar Documents

Publication Publication Date Title
US6542260B1 (en) Multiple image scanner
US7675523B2 (en) Image processing apparatus and image processing method
EP0239936B1 (en) A tresholding algorithm selection apparatus
JP3219403B2 (ja) 画像記憶装置
JPH10255030A (ja) 複数データストリーム解析方法
EP1434419B1 (en) Image processing apparatus and image processing method
JP3294793B2 (ja) 単一走査複数ビュー生成方法
JP2010171552A (ja) 画像形成装置及び制御方法及びプログラム
JP4308473B2 (ja) 画像信号処理方法及び画像信号処理装置、並びに画像信号処理システム
JP4280404B2 (ja) 画像処理装置及びその方法
US6407830B1 (en) Sensor assemblies for color optical image scanners optical scanner and methods of scanning color images
US7023591B2 (en) Image scanning apparatus, storage medium for storing controlling procedure of image scanning apparatus, and control program for image scanning apparatus
JP2005136902A (ja) 画像データ処理装置
JP3535966B2 (ja) イメージング装置
JPH10210279A (ja) 画像の複数描画生成方法
JPH08212335A (ja) フォトセンサの露光時間決定方法
JP3880465B2 (ja) 色変換テーブルの作成方法およびその装置
JPH10200712A (ja) 掃引速度可変式画像スキャナおよびスキャン方法
EP0503042A1 (en) Scene balance calibration of digital scanner
JPH08271980A (ja) 画像読取装置
JP3302010B2 (ja) 電子機器の制御方法
JP3278146B2 (ja) カラー画像処理装置及びカラー画像処理方法
JPH05110880A (ja) カラー読取装置
JP2727455B2 (ja) 画像データ処理装置
US20100060951A1 (en) Image-reading apparatus

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040928

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071127

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080527