JP4377066B2 - デジタル画像の移植性の改善 - Google Patents

デジタル画像の移植性の改善 Download PDF

Info

Publication number
JP4377066B2
JP4377066B2 JP2000568048A JP2000568048A JP4377066B2 JP 4377066 B2 JP4377066 B2 JP 4377066B2 JP 2000568048 A JP2000568048 A JP 2000568048A JP 2000568048 A JP2000568048 A JP 2000568048A JP 4377066 B2 JP4377066 B2 JP 4377066B2
Authority
JP
Japan
Prior art keywords
image
image data
data
format
virtual machine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000568048A
Other languages
English (en)
Other versions
JP2002524006A5 (ja
JP2002524006A (ja
Inventor
マティソン,フィリップ・イー
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2002524006A publication Critical patent/JP2002524006A/ja
Publication of JP2002524006A5 publication Critical patent/JP2002524006A5/ja
Application granted granted Critical
Publication of JP4377066B2 publication Critical patent/JP4377066B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4092Image resolution transcoding, e.g. by using client-server architectures
    • 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/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00204Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0008Connection or combination of a still picture apparatus with another apparatus
    • H04N2201/0065Converting image data to a format usable by the connected apparatus or vice versa
    • H04N2201/0068Converting from still picture data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0081Image reader
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0084Digital still camera
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0087Image storage device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N2201/3201Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N2201/3225Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document
    • H04N2201/3242Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document of processing required or performed, e.g. for reproduction or before recording
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N2201/3201Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N2201/3225Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document
    • H04N2201/3252Image capture parameters, e.g. resolution, illumination conditions, orientation of the image capture device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N2201/3201Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N2201/3278Transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N2201/333Mode signalling or mode changing; Handshaking therefor
    • H04N2201/33307Mode signalling or mode changing; Handshaking therefor of a particular mode
    • H04N2201/33378Type or format of data, e.g. colour or B/W, halftone or binary, computer image file or facsimile data

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Color Image Communication Systems (AREA)
  • Studio Devices (AREA)
  • Television Signal Processing For Recording (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Measuring And Recording Apparatus For Diagnosis (AREA)

Description

【0001】
(背景情報)
(発明の分野)
本発明は、一般にデジタル撮像に関し、より詳細には、様々な固有のフォーマットが可能なデジタル画像をパッケージングし、これらを共通のフォーマットに変換する技法に関する。
【0002】
(関連技術)
デジタル・カメラなどデジタル撮像装置の可用性が向上の一途をたどりつつあることによって、パーソナル・コンピュータ(PC)業界と写真業界とが結集するいまだかつてない好機が訪れている。デジタル・カメラが作成した写真は、PCで使用するのには理論上好適であり、デジタル・カメラとパーソナル・コンピュータを統合させることには何の問題もないと思われる。ただし、この結合には大きな障害がある。
【0003】
デジタル写真業界が現在実施していることは、製造業者がそれぞれ独自にデジタル・カメラを開発していることである。この動きは変わりそうもない。このような新しいカメラは、典型的には、画像をホスト処理システム上で表示できるように、それぞれ統合されたソフトウェア・パッケージにまとめられている。ソフトウェアは、具体的にはそのカメラで動作するように設計され、タイプの異なるデジタル・カメラまたは製造業者の異なるカメラとの互換性はサポートしていない。デジタル画像をカメラ内部に格納する方法、格納前に処理する方法、またはホスト・システム(たとえばPC)がこれらを取り扱う方法については、製造業者間でほとんど、またはまったく取り決められていない。
【0004】
装置とホストとの間でイメージを転送する基準に関する、これまでで最も新しい試みが、Twainドライバである。Twainドライバとは、撮像装置からデジタル画像を取り出すためのアプリケーション・プログラムへの標準インタフェースとなっているソフトウェア・モジュールである。モジュールは、撮像装置の固有フォーマットからアプリケーションが使用する何らかの共通フォーマットへ画像を変換する。このような共通フォーマットの例には、赤緑青(RGB)ビットマップ、およびMicrosoft Corpによって定義付けられたような装置非依存型ビットマップ(DIB)が含まれる。
【0005】
タイプの異なるデジタル・カメラは、デジタル画像を格納するために異なる固有フォーマットを使用することが多い。デジタル・カメラ内部には、装置、固有フォーマット、およびホスト・オペレーティング・システムの所与の組み合わせに特有のTwainモジュールを格納することができる。その後Twainモジュールを、画像データと共にそれぞれの新しいホストに転送することができる。ただし、このようなモジュールをデジタル・カメラ内部に格納することは、デジタル・カメラ内のメモリ・リソースが制限されていることから、実用的でない場合がある。また、このようなモジュールはホスト・オペレーティング・システムと直接対話するため、カメラ内にウィルスとしてセキュリティ・リスクが発生し、ホスト・システム内へと伝播される可能性がある。結局の所、Twainモジュールは典型的には特定のホスト・コンピュータに特有のコードで作成され、Twainソリューションが実際には移植不能となってしまう。
【0006】
したがって、デジタル画像を異なる固有フォーマットで格納するタイプの異なる撮像装置が、大規模な装置特有のTwainドライバをホスト・システムにロードする必要なく、ホスト内部でこのような画像を共通フォーマットで表示または処理できるように、ホスト・システムと通信可能にする技法を有することが望ましい。
【0007】
(概要)
一実施態様での本発明は、センサ・データを生成する画像センサと、画像オブジェクトを格納するメモリとを有する撮像装置を対象とするものである。画像オブジェクトは、センサ・データに関する画像データと、その画像データに基づいて変換された画像データを取得するためにアブストラクト・マシンが実行する画像メソッドとを有する。
【0008】
前述の本発明の一実施態様を簡単にまとめた特徴、ならびに他の実施態様の他の特徴および利点は、以下の詳細な説明、特許請求の範囲、および図面から明らかになろう。
【0009】
(詳細な説明)
上記で簡単に述べたように、一実施形態での本発明は、デジタル・カメラなどの撮像装置の製造業者に、デジタル画像データの取り出しおよび格納を行うための独自の固有フォーマットを選択する機能を与えると同時に、画像を作成した特定の撮像装置に特有の知識をホスト・システムが有する必要性をなくすものである。画像に関するデータは、オブジェクトの一部として格納される。したがって、それぞれの画像は画像ファイルとして表されるのではなく、オブジェクト指向ソフトウェアの従来の意味で画像オブジェクトの一部としてパッケージングされる。画像オブジェクトには、画像データと関連付けられたメソッドとが含まれる。このメソッドは、固有フォーマットから共通画像ファイルフォーマットへの変換をサポートするのに必要なインテリジェンスである。それぞれのメソッドが、関連付けられた画像データの固有フォーマットに特有の変換を定義する。
【0010】
画像メソッドを解釈して実行するホスト・システム内のソフトウェアは、ハードウェアおよびオペレーティング・システムの如何にかかわらず、すべてのホスト処理システムに共通とすることが可能であって、撮像装置とは無関係に開発および配布することができる。このようなソフトウェアは、実質的に、仮想マシンなどのオブジェクト実行環境である。仮想マシンと受け取った画像データとの間には依存関係がないため、新しい様々な撮像装置を、共通のフォーマットおよびアプリケーション・ソフトウェアの開発とは関係なく開発することができる。共通フォーマットを使用すれば、アプリケーション開発者が現在使用中の様々な画像ファイルフォーマットを認識し処理する必要もなくなる。画像オブジェクトによって、画像製造業者は、撮像装置内に画像を格納するのに最適なフォーマットは何か、またこれらを処理する最適な方法は何かを判定することから解放される。このような解決策は、仮想マシンおよび/または共通画像ファイル・フォーマットの変更または改善が、撮像装置またはアプリケーション・ソフトウェアの変更よりも行われる頻度がおそらく少ないので、特に有利である。
【0011】
図1は、本発明の様々な実施形態のシステム全体図であって、画像オブジェクトは異なる撮像装置104aおよび104b内ならびに記憶装置110内に形成または格納された後、ホスト・システム102に転送される。オブジェクト108a、108b、または108cはそれぞれ、画像データを取り込むのに使用された特定タイプの撮像装置に固有のフォーマットの画像データである、少なくとも1つのデータ部分を含んでいる。たとえば、装置104aは、その装置を使用して得られた単一の画像を表す、オブジェクト108aを生成するように構成されたスキャナであってよい。これに対して、装置104bは、2つの静止画像を表す2つのデータ部分114b1および114b2を有する単一のオブジェクト108bを生成するように構成されたデジタル・カメラであって良い。
【0012】
いったんホスト・システム102にオブジェクトが転送されると、そのメソッドはアブストラクト・マシン120によって解釈および実行され、その結果データ・ファイル116a(オブジェクト108aから)、116b1および116b2(オブジェクト108bから)、ならびに116c(オブジェクト108cから)となる。これらのファイルは、事前定義された共通フォーマットのデジタル画像を含んでいる。次いで、各データ・ファイル内で画像を操作または表示するために、アプリケーション124がデータ・ファイルにアクセスすることができる。アプリケーション124は、Joint Photographic Experts Group(JPEG)フォーマット、Graphics Interchange Format(GIF)、Interchange File Format(IFF)、およびTagged Image File Format(TIFF)を含んでいる、多数の他のファイルフォーマットの1つに画像をさらに変換するように設計することができる。便宜上、下記の考察では、装置104aと、オブジェクト108aと、関連付けられたデータ114aおよびメソッド115aとの間の対話についてのみ説明する。ただし、この考察は、このような実施形態にのみ限定されるものではなく、図1に示されたものを含んでいる代替の装置、オブジェクト、データ、およびメソッドにも適用されるものであることを理解されよう。
【0013】
本発明の実施形態とTwainモジュールを使用して装置とホストの間で画像データを転送する従来の技法との間の何らかの相違点をより理解しやすいようにするために、図1のシステムの一実施形態で実行されるステップが図2に示される。本発明の一実施形態に従って移植可能な画像データを作成および転送する技法は、生センサ・データを取り込むことによって、図2のステップ204から開始することができる。これは、デジタル・カメラなどの撮像装置に関連付けられた知られている技法に従って実行することができる。次に、事前定義された固有フォーマットの画像データ114aが生センサ・データに基づいて形成される。一実施形態では、生センサ・データは、ステップ208で示されるように所望の固有フォーマットでデータを取得するために、ノイズ除去、色補間、画像圧縮、およびスケーリングなどの従来の操作および/または知的所有権のある操作に従い、撮像装置104aによって処理される。あるいは、生センサ・データに対して重要な処理を実行せずに、ステップ208を省略することができる。この場合、生センサ・データは固有フォーマットであるとみなされる。ステップ208での処理量は、以下で論じる潜在的な性能の兼ね合いに関係する。次いで操作はステップ212に進む。
【0014】
ステップ212では、撮像装置104aが、画像データ114aおよび関連付けられた画像メソッド115aを含んでいるオブジェクト108aを形成する。画像メソッド115aは、画像データを固有フォーマットから事前定義された共通フォーマットに変換するためにアブストラクト・マシン120によって実行される、プログラムまたは命令リストである。メソッド115aは、アブストラクト・マシン120の命令セットに基づくものである。ほとんどの場合、アブストラクト・マシンの命令セットは画像処理用に最適化することができるため、およびメモリ割振りなどの資源割振りはこのメソッドによらずにアブストラクト・マシン120に組み込むことができるため、このメソッドは従来のTwainモジュールよりもかなり小さくなると予想される。
【0015】
画像オブジェクト108aが撮像装置内で形成された後、図2の操作はホスト・システムへのオブジェクト転送に進む。これは、有線リンクなどの画像データを転送するよく知られた通信媒体を使用するか、または不揮発性メモリ・カードなどの取外し可能な記憶装置110を使用して、実行することができる。
【0016】
通信媒体とホスト・システム内のアブストラクト・マシン120との間のインタフェースがオブジェクト・ドライバ122である。オブジェクト・ドライバ122は、アブストラクト・マシンがオブジェクト108aを使用できるようにするために、ホスト・システム102内にある適切なハードウェアおよびソフトウェア(オペレーティング・システムを含んでいる)と通信する。オブジェクト・ドライバはローカルOSの下でアブストラクト・マシンを起動し、最終的にメソッドを実行させる。一実施形態では、オブジェクト・ドライバ122は、Tagged Image File Format(TIFF)に従って構成されたファイルを検索するよく知られたソフトウェア・ドライバを含んでいる。TIFFは、ビットマップされた画像をPCおよびMacintoshコンピュータに格納する一般的なフォーマットであり、オブジェクト108aを実装するのに使用することができる。オブジェクト108aおよびその関連付けられたドライバ122を実装する他の技法は、当分野の通常の技術者であれば理解できるように使用することができる。
【0017】
ローダ(図示せず)は、メソッドをアブストラクト・マシン内にロードし、画像データを示すポインタにこれを渡す。さらにローダは、画像カウントなど画像オブジェクトの一定のフィールドを認識し、ステップ220のように、各画像を処理するためにアブストラクト・マシンを繰返し初期設定する。その結果、画像データ114aが共通フォーマットの変換済み画像データに変換および処理される。変換済みデータは、通常別のデータ・ファイル116a内に配置され、ハード・ディスク・ドライブなどの大容量記憶装置内に格納することができる。次いでアプリケーション124は、さらにこのデータ・ファイル116aを所望の最終フォーマットに処理することができる。
【0018】
以上、本発明の一実施形態についてシステム全体の見地から説明してきたが、図3および4では、本発明の他の実施形態を撮像装置104aおよびホスト・システム102として例示する。図3は、画像オブジェクト108aを受け入れて処理するように構成されたソフトウェアおよびハードウェアを含んでいる、ホスト処理システム102の一実施形態である。この特定の実施形態は、プロセッサ334が結合されたバス332を中心に構成される。システム102は、IntelプロセッサならびにMicrosoft Windows(登録商標)のグラフィカル・ユーザ・インタフェースおよびオペレーティング・システムを有する、従来のパーソナル・コンピュータであってよい。オペレーティング・システム・ソフトウェア340、オブジェクト・ドライバ122、およびアブストラクト・マシン120はメモリ328内に別々にロードされるように示されているが、当分野の通常の技術者であれば、これらソフトウェア構成要素が時には全体的または部分的に組み合わせられ、メモリ328と、大容量記憶装置338(たとえば磁気回転式ディスク)と、光コンパクト・ディスクなどのポータブル・メモリ(図示せず)との間で分配できることを理解されよう。
【0019】
プロセッサ334は、メモリ328(たとえばランダム・アクセス・メモリ(RAM))内および大容量記憶装置338内に格納された命令を実行する。メモリ328は、プロセッサ334によって実行されるとホスト処理システム102を構成するステップに様々な撮像装置および記憶装置からオブジェクトを受け取って処理させる命令をロードすることができる、半導体集積回路などの任意の機械読取り可読媒体である。
【0020】
ホスト処理システム120は、RS−232シリアル、ユニバーサル・シリアル・バス(USB)、およびIEEE標準1394〜1995を含んでいる従来のコンピュータ周辺バス標準のいずれか1つでコンパイルする、通信インタフェース316も含んでいる。物理的有線を介した通信に加えて、たとえば、データ伝送用の赤外線または無線周波を使用する無線通信媒体も企図されている。他の代替通信媒体としては、Personal Computer Memory Card International Association(PCMCIA)、IntelによるFlash Miniature Card、およびデジタル画像データの移送に好適な任意の他の不揮発性記憶媒体を含んでいる、いくつかの異なる取外し可能記憶装置が企図されている。
【0021】
図3のホスト処理システム102は、陰極線管(CRT)、液晶表示(LCD)、および電子画像を表示するのに好適な任意の他の表示技法を含んでいる任意の従来型表示装置とインタフェースする、グラフィックス・アダプタ・カードなどの、ユーザ表示装置インタフェース342も備えている。もちろん、ホスト処理システム102は、追加のI/Oを実行する追加のインタフェース(図示せず)(たとえばネットワーク・インタフェース・コントローラ)も備えることができる。
【0022】
以上、本発明のシステム実施形態のホスト部分について論じてきたが、図4では、そのソフトウェア要素およびハードウェア要素を含んでいる撮像装置104aについて例示する。図4の実施形態も、プロセッサ424およびメモリ428が結合されるバス432に基づくものである。ここでの代替例は、プロセッサ424およびメモリ428に取って代わるマイクロコントローラである。メモリは、半導体集積回路RAMなどの機械可読媒体または読取り専用メモリ(ROM)などの不揮発性半導体メモリであってよい。メモリ428には、画像オブジェクト108の一部として画像データ114aとメソッド115aとの組み合わせを発生させる(図1参照)、プロセッサ424によって実行される命令がロードされる。図4では、このような命令をオブジェクト形成ソフトウェア412として集合的に表示している。画像メソッド115aは、通常、以下で記載するように別々のソフトウェアとして開発される。
【0023】
メモリ428は、画像センサ404から受け取った生センサ・データを、固有フォーマットの画像データ114aに処理するために使用される、任意選択の信号処理ソフトウェア408を含むこともできる。画像処理論理回路436は、生センサ・データを処理するときにより良い性能を得るために、撮像装置104に含めることもできる。論理回路436は、一実施形態では相補型金属酸化膜半導体(CMOS)アクティブ・ピクセル・センサであってもよい、画像センサ404のタイに組み込むことができる。
【0024】
図4には示されていないが、メモリ428は、インタフェース416および420にアクセスして撮像装置104aの外部にある装置と通信する、プロセッサ424によって実行されるソフトウェアも格納する。通信媒体へのインタフェース416は、ホスト・システムに関して上記で論じたコンピュータ周辺バス標準でコンパイルするものであってよい。同様に、インタフェース420は、不揮発性記憶のフラッシュ・メモリ・カードなどの取外し可能記憶装置を接続したり、画像オブジェクト108aの移送用のカードに接続することができる。
【0025】
図4に示した本発明の実施形態は、画像オブジェクト108aを形成してホスト・システム102に転送するために、主としてソフトウェア・ベースのプロセッサおよびバス・アーキテクチャを使用する。これに代わるものとしては、前述の画像オブジェクト108aを形成および転送する場合と同じ機能を実行する、ゲート・アレイおよび特定用途向け集積回路(ASIC)に基づく主としてハードウェア・ベースのアーキテクチャとすることができる。
【0026】
アブストラクト・マシンおよび画像オブジェクト
本開示の残りの部分では、画像メソッド115aを構築する際に使用できる命令セットを含んでいる、画像オブジェクト108aおよびアブストラクト・マシン120を実装する技法について論じる。
【0027】
前述のように、オブジェクト108aは、Tagged Image File Format(TIFF)/Electronic Photography(EP)構造またはファイルとして実装することができる。TIFFファイルは、画像データ114aおよび関連付けられたメソッド115aの位置を指すファイル・ヘッダを含んでいる。TIFFファイルおよびそのファイル・ヘッダは、オブジェクト・ドライバ122によってアクセス可能であり、アブストラクト・マシン120を使用可能にすることができる。
【0028】
画像メソッド115aを開発する手順は、撮像装置104aの開発者が事前定義された固有フォーマットと共通フォーマットとを比較することによって開始される。画像データ114aを固有フォーマットから共通フォーマットに変換するアルゴリズムが開発される。このようなアルゴリズムはよく知られたものであるか、または当分野の通常の技術者が簡単に開発できるものである。次いでこのアルゴリズムが、Cなどの高水準プログラミング言語および/または以下に記述するアブストラクト・マシン120の低水準命令セットを使用するプログラムで実施される。次いでこのプログラムがテストされ、任意選択で最適化される。次いでこのプログラムが、低水準命令を表すバイト・コードにコンパイルされる。これが所望の画像メソッド115aになる。次いでこのメソッドが、撮像装置104a上の不揮発性メモリ(たとえばメモリ428)に、オブジェクト形成ソフトウェア412(図4を参照)の一部として格納される。
【0029】
撮像装置104a内に常駐する画像オブジェクト108aが必要とする記憶オーバヘッドは、記憶域が典型的に限られているデジタル・カメラなどの移植可能アプリケーションに関係する場合がある。このオーバヘッドは、(1)画像データ114aをその固有フォーマットから共通フォーマットに変換するのに必要な処理の量および複雑さ、ならびに(2)その固有フォーマットでのデータ114aのサイズによって決まる。事前定義された共通フォーマットに対して計算上はクローズである固有フォーマットを選択すると、画像メソッド115aは、単純な数学的命令またはデータ移動命令の比較的短いリストになる。これに対して、メソッド115aは、画像データ114aを圧縮率の高い固有フォーマット(たとえばJPEGまたはフラクタル技術)から共通フォーマットに圧縮解除することが必要な場合、比較的大きくなりやすい。後者の場合、画像データを圧縮することによって得られる記憶スペース内の任意の利得が、画像データの圧縮解除に必要なより複雑で冗長なメソッドによって低減される。
【0030】
記憶スペースの問題を解決するために、各メソッドがそれに基づいて形成される、アブストラクト・マシンの命令セットを高度に最適化することができる。たとえば、アブストラクト・マシン120が使用できる(画像データ114aを受け取るための)入力バッファと(変換されたデータを共通フォーマットで格納する)出力バッファの場所を暗黙的にすることができる。アドレス計算および大多数のデータ移動は、画像メソッド115a内の特有の命令ではなく、アブストラクト・マシン120によって暗黙的に実行することができる。したがってこのメソッドは、その関連付けられた画像データ114aを共通フォーマットに変換するのに必要なアルゴリズムに専念するだけでよい。
【0031】
画像メソッド115aをコンパクトにしておくように命令セットを最適化することに加え、撮像装置上の記憶域を節約する他の方法は、図1のオブジェクト108bに示されるように、メソッド115aの単一コピーを複数セットの画像データに関連付けることである。この方法では、単一の画像オブジェクト108bが画像データ114b1および114b2内に複数の画像を含んでおり、実際には、メソッド115bの実行がフィルムの現像とおおよそ等価であるような、従来のフィルムの役割に似たものとなる。
【0032】
記憶スペースに加え、撮像装置の製造業者に関する他の問題は、画像処理方法論(methodology)の知的所有権を保護することである場合がある。このような処理は、たとえばカラー・フィルタ・アレイ・パターンの補間、ガンマ修正、ホワイト・バランス・アルゴリズムなど、最終画像品質を向上させるために生センサ・データに対して実行することができる。撮像装置104aの製造業者は、メソッド115aにこれら画像処理アルゴリズムを入れることによって、オブジェクト108aがホスト・システム102に転送されたときにアルゴリズムを潜在的な競争相手に公開してしまうのではなく、主要な画像処理機能を撮像装置内部で実行させることを望む場合がある。その結果、生センサ・データの強力な処理済みバージョンである画像データ114aが生じる。その極端な場合の一つとして、自分の画像処理技術を強力に保護することを望む製造業者は、このような処理をすべて撮像装置内に埋め込み、その結果、画像データ114aが共通フォーマットとなる場合がある。この場合、対応するメソッド115aは、データ114aをホスト・システム102内の出力バッファにコピーするだけである。他方の極端な場合は、画像データ114aをオブジェクト108aにパッケージングする前には生センサ・データに対してどんな処理も実行しないことだけで、撮像装置104a内での画像処理を絶対最低に維持することができる。メソッド115aは、共通フォーマットに達するのに必要なすべての処理を定義し、ホスト・システム内のアブストラクト・マシン120は、共通フォーマットの画像データを達成するためにこのような処理をすべて実行する。
【0033】
仮想マシン・アーキテクチャ
アブストラクト・マシン120の一例が仮想マシンである。仮想マシンは、画像メソッド115aを実行する別々のコンピュータであるかのように動作する、独立型オペレーティング環境である。仮想マシンは、ホスト・システムを、受け取ったオブジェクト108aに内在している可能性のあるどんなウィルスからも遮蔽する助けとなる。仮想マシンは、ホスト処理システム102のハードウェア・プラットフォームから独立した、命令セット、レジスタ・セット、およびメモリ・モデルを有することができる。よく知られたインタープリタ、プログラミング言語、および関連ツールを備えた使用可能な仮想マシンの一例が、JAVATMの仮想マシンおよびプログラミング言語である。
【0034】
一般に、仮想マシンは、比較的小さなコードを画像メソッド115a用に書き込めるように最適化しなければならない。他の望ましい特徴は、たとえば、メソッド115aを解釈するために、知られた技法であるジャスト・イン・タイムのコード変換を使用する、単純な仮想マシン・インタフェースおよびスピーディなコード・コンパイルである。仮想マシンは、動的メモリ割振りを使用して、メソッド115aを実行中に、一時データ記憶用のバッファを作成することができるものとする。したがって、メモリ管理のためにメソッド115aで必要なオーバヘッドを最小限にすることができる。また、ホスト・システム102は、ホスト・システムが画像オブジェクト108aによるどんな正当な要求も認められるように、画像オブジェクト108aが必要とする資源に比べて十分な使用可能資源(たとえばメモリ)を有するものとする。
【0035】
仮想マシンの命令セットについても考慮しなければならない。撮像技法に関する図1の実施形態の場合、命令セットは画像処理用に最適化されるものとする。たとえば、命令が、文字列、マルチタスク実行、またはグラフィカル・ユーザ・インタフェースを処理する必要はない。命令セットは、画像データ114a用のいくつかの異なる固有フォーマットを共通フォーマットに変換できる十分なフレキシビリティを有するように設計しなければならない。仮想マシンに提供されるどんな機能およびその命令セットも、画像データ114aを格納するのに使用できるどんな固有フォーマットの知識もないことを想定しなければならない。
【0036】
命令セットについて考慮すべきその他の点は、比較的深いスタックを備えたスタック指向のフロー制御(call/return/push/pop)をサポートすることである。たとえば、仮想マシンを実施するホスト・システム102は、オブジェクト108aによる任意の正当なスタック使用量を処理することができる拡張可能な仮想スタックに、十分な資源を提供することができる。さらに、仮想マシンは、ホスト・システム102で使用可能な場合に、特に並列処理が画像処理アルゴリズムにとって主要な性能強化となる可能性があることから、並列処理サポートを利用できるプログラミング制約を与えなければならない。最終的に、仮想マシンは、あらゆる潜在的な例外に関する定義済みの省略時挙動を備えた、フレキシブルな例外処理も提供することができる。プログラミングをできる限り簡略化し、オブジェクト108a内のフロー制御オーバヘッドを最小限にするために、高水準フロー制御(if/for/while/case)をサポートすることも望ましい。あるタイプの変数から他のタイプのものへキャストするときに必要となる可能性のある他の特徴に、フレキシブル・タイプのチェックもある。
【0037】
仮想マシンの例−仮想画像プロセッサ
一実施形態での仮想マシンは、以下で説明する仮想画像プロセッサ(VIP)であってもよい。この実施形態では、ユーザの介入がまったく予想されないので、VIPに関する従来のI/Oサポートはいっさい企図されていない。VIPは、画像データ114aを固有フォーマットの入力として処理するため、および画像データを共通フォーマットの出力として生成するためにのみ存在する。このようなタスクに必要なメモリ資源は、通常ホスト・システム102によって提供され、したがって、画像オブジェクト108aのプログラマは、メモリ資源がどのように提供されるかを正確に認識する必要がない。
【0038】
以下の記述からも明らかなように、VIPの命令セットは、従来のハードウェア・マイクロプロセッサのそれとはほとんど似ていない場合がある。これは部分的には、メソッド115aのコード・サイズを減らすことを所望しているため、および画像データ114aの数学的処理に重点を置いているためである。VIPの命令セットは、画像処理に必要な操作を最小限の可能なスペース内に指定できるようにしなければならない。たとえば、フロー制御命令は、関連付けられた複雑さの相対的にかなりの部分を、命令セットではなくVIPに組み込むことができるため、従来のマイクロプロセッサのそれに比べてかなり簡略化することができる。したがって、従来のハードウェア・マイクロプロセッサ内で実施するには複雑すぎる事象を、単一の命令でトリガすることができる。さらに、VIP用の命令は、様々な数のオペランドを有することが可能であり、これはハードウェア・マイクロプロセッサの場合よりもはるかに多いことを意味する。物理レジスタの限定セットを使用するように設計された離散的な数値演算を使用して、数式をデータ移動命令のシーケンスに分ける必要がない。その代わりに、式は画像メソッド115a内に直接表され、VIPによって解釈される。割当て式は、逆ポーランド記法(RPN)の式が後に続くターゲット・レジスタとして表すことができる。したがって演算子を、機械命令としてではなく式の構成要素として、画像メソッド115aに直接コード化することができる。タイプのキャストおよび自動変換を管理する規則は、どんな式でも暗黙的にすることができる。
【0039】
この実施形態では、以下のような7つのプログラム制御命令および5つのデータ操作命令が企図される。
Figure 0004377066
【0040】
プログラム制御命令は、プログラム実行フローを管理するのに使用される。従来のマイクロプロセッサとは異なり、多数の条件付き分岐命令はない。また、(Cプログラミング言語の切り換えステートメントに対応する)インデックス付きジャンプの直接サポートがある。ターゲット・アドレス・サイズは、メソッド115a全体のサイズに応じて変化する。
【0041】
データ移動命令は、実際に画像の変換および処理作業を実行するものである。一実施形態では、数値演算または論理演算が各命令に関連付けられたオペランド・リスト内に埋め込まれているので、これらを直接実施する命令はない。また、従来のマイクロプロセッサとは異なり、命令に関するオペランド・リストは数の異なるオペランドを有することができる。
【0042】
プッシュ命令は、1つのデータ変数をデータ・スタックの上にプッシュする。データ・スタックがプログラム・フロー制御スタックとは異なることに留意されたい。プッシュ命令は、個々のプリミティブ・データ・タイプをデータ・スタックの上にプッシュするためにのみ使用できる。すなわち、アレイ全体をスタックの上にプッシュするのには使用できない。プッシュ命令のフォーマットは演算コードであり、その後に、スタック上にプッシュするデータを表すデータ変数のインデックスが続く。データ変数のタイプおよびサイズは、オペランドにコード化される。
【0043】
ポップ命令は、データ・スタックから1つのデータ変数をポップする。関連付けられたデータ変数は、以前にスタック上にプッシュされたデータと同じタイプのものである必要はない。変数タイプがスタックの一番上にある既存のデータ・タイプと一致しないと、メソッド115aを定義するのに使用される、より高水準なプログラミング言語のタイプ・キャストを管理するのと同じ規則に従って、自動タイプ・キャストが実行される。
【0044】
移動命令は、データをソースから宛先に転送し、任意選択で、ソース内でコード化された式を評価する。すなわち、ソースは単一の変数である必要はなく、逆ポーランド記法(RPN)を使用してコード化された任意の複雑な式であってよい。
【0045】
作成命令は、新しいデータ変数を動的に作成し、その変数に参照を割り当てる。作成された変数は、単一のプリミティブ・データ・タイプまたはプリミティブ・データ変数のアレイであってよい。破棄命令は、作成命令によってデータ変数に割り振られたメモリを解除する。メソッド115aを定義するのに使用される、より高水準なプログラミング言語用のコンパイラは、メソッド115aのサブプログラムで使用される自動変数用の動的メモリを管理するために、作成命令および破棄命令を使用することができる。これは、自動変数を作成するスタックを使用するCプログラミング言語での通常の実施とは異なる。VIPは物理マイクロプロセッサとしての実施を意図するものではないので、ハードウェア・スタックのどんな必然の結果である必要もない。
【0046】
VIP高水準言語
VIPの命令セットは画像プロセッサの仮想実装用に最適化されるため、VIP用アセンブリなどの低水準プログラミング言語は、マイクロプロセッサ用の従来のアセンブリ言語のものとほとんど似ていない場合がある。前述の撮像に合わせた最適化には固有の制限があるため、メソッド115aの定義に使用するCまたはC++などの高水準言語のフル・バージョンを実施するには実用的でない場合もある。したがって、適切な兼ね合いは、C言語のサブセットであってよい。このようなCのサブセットを使用してVIP用に作成されたプログラムには、リンク・ステップがないことがある。むしろ、単一ファイルとして、または一連の組込みファイル(最終的には単一のファイル)としてコンパイルされることになる。
【0047】
宣言
許容されるデータ・タイプは、上記で論じた命令セットで使用されるものである。ポインタは定義済みのタイプを指す(すなわち無効なポインタはない)。ポインタを指すポインタは許容されるが、多くとも2方向である。多次元アレイは、従来のCと同じであると宣言される。typedef宣言子およびstruct宣言子は予想されたとおりに挙動する。structなどの複雑なデータ・タイプは、アレイ以内の要素として使用することができる。ビット・フィールドなどの従来の関数の中には、VIP実施形態の状況においては本質的に無意味なものがあるので、簡略化のためにビット・フィールドは許容されない。
【0048】
タイプ・クォリファイアー
VIPではconstタイプ・クォリファイアーが許容されているが、変数はVIPプログラムの範囲外にあるどんなプロセス(たとえばメソッド115a)にも見えるものではないので、揮発性クォリファイアーには意味がない。structなどの複雑なデータ・タイプを処理する技法はメソッド115aでは提供されないが、コンパイル済みのVIPコードの構造定義から推断される。これはVIPと従来のマイクロプロセッサとの間の主要な相違点である。たとえば、次のようになる。
struct

double real_part;
double imaginary_part;
}complex[10];
short index=1;
complex[index].real_part=0.0;
【0049】
従来のコンパイラでは、上記のコード・セグメントに示された割当てステートメントは、その構成部分のその基本アドレスからの知られた変位に基づいて、構造フィールドのアドレスを計算するために、一連の命令に分割される。ただしVIPでは、あらゆるデータ項目に一意のID番号が割り当てられるので、線形アドレス・スペースの直接的な必然の結果はない。データ項目は、メモリ内で連続していても連続していなくてもよい。VIPは、複雑なデータ・タイプ参照を、所望の変数を一意に区別する単一のID番号に分解する。VIPは、ID番号とアレイ・インデックスとを区別することができるので、あいまいさはない。前述の例は、各構造に2つのデータ項目が含まれる構造アレイである。これをコンパイルすると、次のように表される。
double real_part[10];
double imaginary_part[10];
その結果、次のような等価の割当てステートメントになる。
real_part[index]=0.0;
この方法で、コンパイラは、構造定義および参照を、VIPが使用する記憶スキームに適合するプリミティブ・タイプに分割することができる。
【0050】
記憶クラス
上記で論じたように、複雑なデータ・タイプの構造は実行可能コードというよりはデータ内で搬送され、データ・アクセスはアドレス計算によってではなく参照によって分解される。VIP実施形態ではこれについて、画像データ114aを受け取るための入力データ・バッファと、変換された画像データを保持する出力データ・バッファという、2つの例外がある。これらはバイトの連続したアレイであって、そのサイズは、ソース・ファイルがメソッド115aにコンパイルされるときに定義される。これらは、標準Cには含まれていない記憶クラスによって、他の記憶タイプと区別される。
【0051】
1つの入力バッファおよび1つの出力バッファがある。入力記憶クラスで宣言された任意の変数が、入力バッファを指す。出力記憶クラスで宣言された任意の変数が、出力バッファを指す。これら記憶クラスの1つで定義されたすべてのタイプが、それぞれのメモリ・アレイに、その始まりを基準にしてマッピングされる。メソッド115aにVIPの制御が与えられる前に、input_sizeおよびoutput_sizeという2つの特別な変数がローダによって設定される。これらは、それぞれのバッファのバイト長さを定義し、メソッド115aでこれらを第1に宣言せずに使用することができる(定義により有効である)。この点では、VIPに対しては無効な(目的にかなわない)標準Cで定義されるargc変数およびargv変数と同様である。これらの記憶クラスおよび特別変数を使用して、プログラマはどんなデータ・タイプでも入力バッファまたは出力バッファにマッピングすることができる。たとえば次のようになる。
input unsigned integer raw_data[input_size/4];
//画像データ114aからの生画像全体を表す整数配列を宣言する
input float raw_fdata[input_size/4];
//画像データ114aからの生画像全体を表すフロート配列を宣言する
変数raw_data[n]およびraw_fdata[n]は同じデータを指すが、異なるタイプとして解釈される。
【0052】
単一のメソッド115aは、入力バッファおよび出力バッファならびに各画像のサイズ変数をローダに初期設定させることによって、サイズの異なる複数の画像を処理することができる。撮像装置104aは共通フォーマットで画像を生成するので、最も単純で利用可能な画像メソッドは、入力バッファを出力バッファに直接コピーすることであろう。たとえば次のようになる。
main()

input byte raw[input_size];
output byte finished[output_size];
finished=raw;

【0053】
割当てステートメントの、C++クラスの割当て構文との類似性に留意されたい。これは暗黙の並列処理を可能にする、標準C構文からの偏位である。
【0054】
アレイ
割当てステートメントまたは明示的インデックスのない式で使用されるアレイ・タイプは、演算がアレイ全体に適用され、アレイの要素間にはデータ依存関係がないことを暗示するものである。以下のコード断片化を考えてみる。
short x[256];
short y[256];
x=y*1.414;
これは、yアレイ内のあらゆる要素に定数1.414を掛け、その結果をxアレイ内の対応する要素に割り当てるものである。アレイ・サイズが一致しない場合、演算は小さい方のアレイ内にある要素の数だけ繰り返される。これが暗示することは、可能であれば演算および割当てが並列で実行できるということである。このステートメントが暗示する特別のインデックス付け順序はない。等価の記数法は、次のようになる。
x[]=y[]*1.414;
これにより、多次元アレイを、所望であれば単一次元用に並列に処理することができる。たとえば次のようになる。
const short column=640;
const short row=480;
unsigned byte image[column][row];
image[][12]=255;
【0055】
このコード断片化は、画像アレイの行12内にあるすべての要素に値255を割り当てるものである。このタイプの高水準コードを従来のマイクロプロセッサ用にコンパイルするとき、コンパイラは、ステートメント内にある暗黙のループ演算を明示的に実行するために、機械命令シーケンスを生成することがある。ただしVIPコンパイラは、暗黙のループ演算および任意の必要な関連するパラメータを単に記録し、VIPそれ自体は、必要なインデックス反復を推断する。これにより、性能を犠牲にしてメソッド115aに格納されるコードのサイズが減少する。このような兼ね合いは、VIPがインストールされているホスト・システム102の性能が、必要な機能を許容可能な速度で実行するのに十分な場合に許容される。
【0056】
以上、本発明の様々な実施形態を、画像オブジェクトの概念を使用して静止画像データの移植性を改善する技法として述べてきた。ただし、記述された画像オブジェクトおよびアブストラクト・マシン技法は、一定タイプのオーディオまたはビデオなどの、コヒーレントであり制限がある他のタイプのデータにも適用可能であることが予想されよう。このような場合、画像メソッドは、オーディオ/ビデオ・シーケンスの圧縮および圧縮解除に典型的に使用される、オーディオ/ビデオ・コーデックに置き換えることができる。
【0057】
上記に記載された本発明の実施形態は、もちろん構造および実施における他の変形形態の対象となるものである。たとえば、図1では、各撮像装置または記憶装置内に単一オブジェクトを例示しているが、これは本発明が所与の実施形態でどのように動作するかを簡単に説明する目的でのみ例示したものである。実際、当分野の通常の技術者であれば、各装置によって生成された複数の画像を表すために、各装置によって複数のオブジェクトが作成され、必要に応じてホスト・システムに転送できることを理解されよう。また、図3および4のコンピューティング・アーキテクチャについて、画像の取り込みおよび画像オブジェクトの形成を達成する多くの他の代替実施形態が可能である。したがって、本発明の範囲は、例示された実施形態によるのではなく、添付の請求項およびその法的な等価物によって決定されるものとする。
【図面の簡単な説明】
【図1】 本発明の一実施形態に従った撮像システムのシステム全体図である。
【図2】 本発明の他の実施形態に従い、デジタル画像の移植性を改善するために実行されるステップを示す図である。
【図3】 本発明の他の実施形態に従って構成されたソフトウェアおよびハードウェアを含んでいる、ホスト処理システムを示す図である。
【図4】 本発明の他の実施形態に従って構成されたソフトウェアおよびハードウェアの要素を含んでいる、撮像装置の一部を示す図である。

Claims (5)

  1. 第1のメソッドに関連付けられた第1の画像データを有する第1オブジェクト、第1の撮像装置から仮想マシンを有する処理システムに転送するステップと、
    前記仮想マシンが、第1の画像データに基づいた第1の変換済み画像データを生成する第1のメソッドを実行するステップと、
    第2のメソッドに関連付けられており、第1の画像データとは異なるフォーマットである第2の画像データを有する第2オブジェクト、第2の撮像装置から処理システムに転送するステップと、
    前記仮想マシンが、第2の画像データに基づいた第2の変換済み画像データを生成する第2のメソッドを実行するステップと
    を含み、前記第1と第2の変換済み画像データが同じ共通のフォーマットであることを特徴とする方法。
  2. プロセッサと、このプロセッサに結合されるとともに命令を記憶したメモリとを有し、
    この命令を前記プロセッサが実行したときに、該プロセッサに、
    画像データと対応するメソッドをそれぞれ有する第1および第2のオブジェクトであって、それらのオブジェクトの画像データが異なるフォーマットである第1および第2のオブジェクトを、それぞれ第1および第2の撮像装置から受け取るためのシステムを構成させることと
    仮想マシンが、画像データに基づいて共通フォーマットの変換済み画像データを得るために、前記各オブジェクトの対応するメソッドを実行させること
    とを行わせる、データ処理システム。
  3. 前記共通フォーマットが事前定義されていることを特徴とする請求項1に記載の方法。
  4. 前記共通フォーマットを多数のファイル・フォーマットの一つに変換するステップを、さらに含む請求項1に記載の方法。
  5. 前記多数のファイル・フォーマットの一つがJPEG、GIFまたはTIFFフォーマットである請求項4に記載の方法。
JP2000568048A 1998-08-27 1999-08-17 デジタル画像の移植性の改善 Expired - Fee Related JP4377066B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/141,210 1998-08-27
US09/141,210 US7010177B1 (en) 1998-08-27 1998-08-27 Portability of digital images
PCT/US1999/018692 WO2000013132A1 (en) 1998-08-27 1999-08-17 Improving the portability of digital images

Publications (3)

Publication Number Publication Date
JP2002524006A JP2002524006A (ja) 2002-07-30
JP2002524006A5 JP2002524006A5 (ja) 2006-10-05
JP4377066B2 true JP4377066B2 (ja) 2009-12-02

Family

ID=22494675

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000568048A Expired - Fee Related JP4377066B2 (ja) 1998-08-27 1999-08-17 デジタル画像の移植性の改善

Country Status (9)

Country Link
US (1) US7010177B1 (ja)
JP (1) JP4377066B2 (ja)
KR (1) KR100579216B1 (ja)
CN (2) CN1324469A (ja)
AU (1) AU5567999A (ja)
DE (1) DE19983504B4 (ja)
GB (1) GB2357926B (ja)
TW (1) TW442759B (ja)
WO (1) WO2000013132A1 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6963347B1 (en) * 2000-08-04 2005-11-08 Ati International, Srl Vertex data processing with multiple threads of execution
GB2382509B (en) * 2001-11-23 2003-10-08 Voxar Ltd Handling of image data created by manipulation of image data sets
JP4300767B2 (ja) * 2002-08-05 2009-07-22 ソニー株式会社 ガイドシステム、コンテンツサーバ、携帯装置、情報処理方法、情報処理プログラム、及び記憶媒体
JP2006053690A (ja) 2004-08-10 2006-02-23 Ricoh Co Ltd 画像処理装置、画像処理方法、画像処理プログラムおよび記録媒体
US20060259239A1 (en) * 2005-04-27 2006-11-16 Guy Nouri System and method for providing multimedia tours
CN102281372B (zh) * 2010-06-12 2014-02-19 虹光精密工业(苏州)有限公司 自动存取影像处理程序的扫描设备
US20160232191A1 (en) * 2013-09-30 2016-08-11 Hewlett Packard Enterprise Development Lp Overlays to modify data objects of source data
US9779471B2 (en) * 2014-10-01 2017-10-03 Qualcomm Incorporated Transparent pixel format converter
US9749548B2 (en) 2015-01-22 2017-08-29 Google Inc. Virtual linebuffers for image signal processors
US9756268B2 (en) 2015-04-23 2017-09-05 Google Inc. Line buffer unit for image processor
US9769356B2 (en) 2015-04-23 2017-09-19 Google Inc. Two dimensional shift array for image processor
US9785423B2 (en) 2015-04-23 2017-10-10 Google Inc. Compiler for translating between a virtual image processor instruction set architecture (ISA) and target hardware having a two-dimensional shift array structure
US10291813B2 (en) 2015-04-23 2019-05-14 Google Llc Sheet generator for image processor
US10095479B2 (en) 2015-04-23 2018-10-09 Google Llc Virtual image processor instruction set architecture (ISA) and memory model and exemplary target hardware having a two-dimensional shift array structure
US9965824B2 (en) 2015-04-23 2018-05-08 Google Llc Architecture for high performance, power efficient, programmable image processing
US9772852B2 (en) 2015-04-23 2017-09-26 Google Inc. Energy efficient processor core architecture for image processor
US10313641B2 (en) 2015-12-04 2019-06-04 Google Llc Shift register with reduced wiring complexity
US9830150B2 (en) 2015-12-04 2017-11-28 Google Llc Multi-functional execution lane for image processor
US10204396B2 (en) 2016-02-26 2019-02-12 Google Llc Compiler managed memory for image processor
US10387988B2 (en) 2016-02-26 2019-08-20 Google Llc Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform
US10380969B2 (en) 2016-02-28 2019-08-13 Google Llc Macro I/O unit for image processor
US20180005346A1 (en) 2016-07-01 2018-01-04 Google Inc. Core Processes For Block Operations On An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register
US20180005059A1 (en) 2016-07-01 2018-01-04 Google Inc. Statistics Operations On Two Dimensional Image Processor
US20180007302A1 (en) 2016-07-01 2018-01-04 Google Inc. Block Operations For An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register
US10546211B2 (en) 2016-07-01 2020-01-28 Google Llc Convolutional neural network on programmable two dimensional image processor

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5495581A (en) * 1992-02-25 1996-02-27 Tsai; Irving Method and apparatus for linking a document with associated reference information using pattern matching
CN1147822C (zh) * 1993-03-25 2004-04-28 Mgi软件公司 图象处理的方法和系统
US5450140A (en) 1993-04-21 1995-09-12 Washino; Kinya Personal-computer-based video production system
DE69433482T2 (de) * 1993-11-16 2004-06-03 Fuji Xerox Co., Ltd. Netzwerkdrucker
JP3893480B2 (ja) * 1994-09-28 2007-03-14 株式会社リコー デジタル電子カメラ
JPH08297669A (ja) * 1994-12-27 1996-11-12 Internatl Business Mach Corp <Ibm> 複合ドキュメント内の複数のパートを自動的にリンクするシステムおよび方法
US5848413A (en) * 1995-01-13 1998-12-08 Ricoh Company, Ltd. Method and apparatus for accessing and publishing electronic documents
US5873077A (en) * 1995-01-13 1999-02-16 Ricoh Corporation Method and apparatus for searching for and retrieving documents using a facsimile machine
JPH0935032A (ja) * 1995-07-24 1997-02-07 Mitsubishi Electric Corp Icカードと情報機器端末
US5762552A (en) * 1995-12-05 1998-06-09 Vt Tech Corp. Interactive real-time network gaming system
GB9526129D0 (en) * 1995-12-21 1996-02-21 Philips Electronics Nv Machine code format translation
US5854693A (en) 1996-02-07 1998-12-29 Sharp Kabushiki Kaisha Image forming system
US5884262A (en) * 1996-03-28 1999-03-16 Bell Atlantic Network Services, Inc. Computer network audio access and conversion system
US5778378A (en) * 1996-04-30 1998-07-07 International Business Machines Corporation Object oriented information retrieval framework mechanism
US6005613A (en) * 1996-09-12 1999-12-21 Eastman Kodak Company Multi-mode digital camera with computer interface using data packets combining image and mode data
US6161148A (en) * 1996-09-27 2000-12-12 Kodak Limited Computer method and apparatus for interactive objects controls
JP4330665B2 (ja) * 1996-10-30 2009-09-16 株式会社リコー クライアントサーバシステムおよび画像処理装置
US6166729A (en) * 1997-05-07 2000-12-26 Broadcloud Communications, Inc. Remote digital image viewing system and method
US6215495B1 (en) * 1997-05-30 2001-04-10 Silicon Graphics, Inc. Platform independent application program interface for interactive 3D scene management
US6260021B1 (en) * 1998-06-12 2001-07-10 Philips Electronics North America Corporation Computer-based medical image distribution system and method

Also Published As

Publication number Publication date
US7010177B1 (en) 2006-03-07
DE19983504T1 (de) 2001-07-26
TW442759B (en) 2001-06-23
GB2357926B (en) 2002-08-07
CN1324469A (zh) 2001-11-28
JP2002524006A (ja) 2002-07-30
CN101714249A (zh) 2010-05-26
AU5567999A (en) 2000-03-21
GB2357926A (en) 2001-07-04
KR100579216B1 (ko) 2006-05-11
KR20010072958A (ko) 2001-07-31
WO2000013132A1 (en) 2000-03-09
GB0104702D0 (en) 2001-04-11
DE19983504B4 (de) 2009-09-24

Similar Documents

Publication Publication Date Title
JP4377066B2 (ja) デジタル画像の移植性の改善
US6832369B1 (en) Object oriented method and apparatus for class variable initialization
US7856618B2 (en) Adaptively generating code for a computer program
US6925637B2 (en) Low-contention grey object sets for concurrent, marking garbage collection
US7739484B2 (en) Instruction encoding to indicate whether to store argument registers as static registers and return address in subroutine stack
AU773319B2 (en) Instruction selection in a multi-platform environment
EP1038219B1 (en) Apparatus and method for allowing object-oriented programs created with different framework versions to communicate
US6314445B1 (en) Native function calling
US10002010B2 (en) Multi-byte compressed string representation
EP0949566A2 (en) Method and system for performing static initialization
KR100918532B1 (ko) 알파 채널 인식 환경에서 비알파 채널 영상 데이터를 이용하는 코프로세싱 장치 및 컴퓨팅 장치
EP1049009A2 (en) Method and apparatus for dispatch table construction
US20040003377A1 (en) Converting byte code instructions to a new instruction set
JPH113269A (ja) スタックの内容をサブスタックに分離することによる正確なガーベイジ・コレクションを補助するシステムと方法
CA2306519A1 (en) Method and apparatus for handling exceptions as normal control flow
US6281893B1 (en) Method and apparatus for providing an object oriented approach to a device independent graphics control system
US7181732B2 (en) Method and apparatus for facilitating lazy type tagging for compiled activations
US9152437B2 (en) Dynamically installing image processing
JP2012099155A (ja) 実行時多態性
US5937186A (en) Asynchronous interrupt safing of prologue portions of computer programs
Matveev Opencv graph api
US6865738B2 (en) Method and apparatus for managing independent asynchronous I/O operations within a virtual machine
US5623676A (en) Computer program product and program storage device for safing asynchronous interrupts
CN114218152B (zh) 流处理方法、处理电路和电子设备
US10607037B2 (en) Method for managing programmable logic circuits for applications invoking dynamic libraries

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060810

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060810

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090317

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090617

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090811

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090910

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120918

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120918

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130918

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees