JPWO2017149591A1 - 画像処理装置 - Google Patents

画像処理装置 Download PDF

Info

Publication number
JPWO2017149591A1
JPWO2017149591A1 JP2018502865A JP2018502865A JPWO2017149591A1 JP WO2017149591 A1 JPWO2017149591 A1 JP WO2017149591A1 JP 2018502865 A JP2018502865 A JP 2018502865A JP 2018502865 A JP2018502865 A JP 2018502865A JP WO2017149591 A1 JPWO2017149591 A1 JP WO2017149591A1
Authority
JP
Japan
Prior art keywords
image processing
output
unit
data
input
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
JP2018502865A
Other languages
English (en)
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.)
Olympus Corp
Original Assignee
Olympus 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 Olympus Corp filed Critical Olympus Corp
Publication of JPWO2017149591A1 publication Critical patent/JPWO2017149591A1/ja
Pending 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
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof

Abstract

入力されたデータに対して予め定めた処理を行う複数の処理モジュールを直列に接続してパイプラインを構成し、それぞれの処理モジュールが処理を順次行うことによってパイプライン処理を行う画像処理部がデータバスに接続され、データバスに接続されたデータ記憶部からデータバスを介して読み出したデータに対して画像処理を行う画像処理装置であって、画像処理部は、処理モジュールのそれぞれが行う処理と異なる処理を行う処理モジュールとしてパイプライン内に組み込まれる入出力用モジュール、を備え、入出力用モジュールは、パイプラインにおいて組み込まれた位置の前段に位置する処理モジュールである第1の処理モジュールが処理を行った処理データを、データバスを介さずに直接、画像処理部の外部の外部処理部に出力し、外部処理部によって処理データに対して外部処理が行われて入力された外部処理データを、データバスを介さずに直接、パイプラインにおいて第1の処理モジュールの後段に位置する処理モジュールである第2の処理モジュールに出力する。

Description

本発明は、画像処理装置に関する。
静止画用カメラ、動画用カメラ、医療用内視鏡カメラ、または産業用内視鏡カメラなどの撮像装置では、搭載されたシステムLSIなどの画像処理装置によって、様々な画像処理が行われる。また、撮像装置は、搭載する機能や処理能力(速度)、またはその価格によって、様々な機種が展開される。このため、画像処理装置には、撮像装置に搭載する機能を実現するための画像処理機能を備えていることが望まれる。しかし、撮像装置において展開するそれぞれの機種ごとに、必要な画像処理機能を備えた画像処理装置を開発することは、画像処理装置の開発期間やコストの観点からすると、有益な手段ではない。また、多くの画像処理機能を備える画像処理装置のみ開発して全ての撮像装置に共通して搭載することは、少ない機能を搭載した撮像装置において低価格化の実現を阻害する要因となってしまう。
そこで、従来から、実行する画像処理機能に拡張性を持たせる構成の様々な画像処理装置の技術が提案されている。例えば、特許文献1には、機能や処理能力が異なる様々な画像処理装置を、複数のASICで実現する技術が開示されている。特許文献1では、画像処理に必要な最低限の機能を備えた基本機能ASICのみを使用して、低機能画像処理装置を最適コストで実現し、基本機能ASICと多くの機能を備えた高機能ASICを使用して、多機能の高性能画像処理装置を実現している。特許文献1に開示された技術を撮像装置に適用することによって、様々な機種の撮像装置を展開することができると考えられる。つまり、低機能の画像処理装置のみを搭載することによって、低コストの撮像装置を実現し、低機能の画像処理装置と高機能の画像処理装置との両方を搭載することによって、高機能で処理能力の高い撮像装置を実現することができると考えられる。
日本国特開2008−301090号公報
ところで、撮像装置に搭載される多くの画像処理装置では、接続された1つのDRAM(Dynamic Random Access Memory)を、内蔵している複数の処理ブロックで共有している。このような画像処理装置においては、内蔵している複数の処理ブロックが、画像処理装置の内部のデータバスに接続され、それぞれの処理ブロックは、データバスを介したDMA(Direct Memory Access)によってDRAMへのアクセスを行う。
また、このような構成の画像処理装置に備える処理ブロックの中には、複数の処理モジュールを直列に接続した構成にすることによってパイプライン処理を行う処理ブロックもある。例えば、画像処理装置では、撮像装置における一連の画像処理を行う画像処理部が、パイプライン処理を行う構成の処理ブロックである。このような構成の画像処理装置では、それぞれの画像処理を行う複数の画像処理モジュールを直列に接続した画像処理部におけるパイプライン処理によって、撮像装置における一連の画像処理の高速化を実現している。また、このような構成の画像処理装置では、画像処理部に備えたデータ入力側と出力側の処理モジュール以外は、パイプライン処理を行うそれぞれの画像処理モジュールによるDRAMへのアクセスがなくなるため、画像処理を行う際のDRAMのバス帯域の圧迫を回避し、画像処理装置の消費電力も低減している。
しかし、撮像装置では、機能の拡張を目的として、パイプラインを構成して行っているいずれかの画像処理の間に、機能を拡張するための他の画像処理を挿入する要求がなされることもある。
しかしながら、特許文献1に開示された技術には、低機能画像処理装置に続いて高性能画像処理装置が処理を行う構成や、低機能画像処理装置と高性能画像処理装置とは別に設けられたCPUおよびメモリを利用した構成は開示されているものの、低機能画像処理装置が処理を行っている途中に高性能画像処理装置が処理を行って、再び低機能画像処理装置が処理を行う構成は開示されていない。つまり、特許文献1に開示された技術には、低機能画像処理装置が処理を行っている途中に高性能画像処理装置による処理を挿入するための技術は開示されていない。このため、特許文献1に開示された技術では、機能を拡張するために、パイプライン処理を行っているいずれかの画像処理の間に他の画像処理を挿入するという、撮像装置においてなされる要求に答える構成を実現することができない。
仮に、特許文献1に開示された技術を適用する画像処理装置において、パイプライン処理によって行ういずれかの画像処理の間に他の画像処理を挿入することによって機能を拡張する構成を考えると、DRAMを介してデータの受け渡しを行う構成が考えられる。この構成の場合では、以下のような手順での処理が必要になる。
(手順1):低機能画像処理装置に備えた画像処理部が、拡張する機能を挿入する前まで画像処理したデータをDRAMに格納する。より具体的には、低機能画像処理装置に備えた画像処理部が、低機能画像処理装置に接続されているDRAMから処理を行う対象のデータを、データバスを介したDMAによって取得し、パイプライン処理によって、機能を拡張するための他の画像処理を挿入する前まで画像処理したデータを、データバスを介したDMAによって低機能画像処理装置に接続されているDRAMに格納する。
(手順2):低機能画像処理装置から高性能画像処理装置にデータを転送する。より具体的には、低機能画像処理装置に備えた外部インターフェース部が、低機能画像処理装置に接続されているDRAMから手順1によって格納されたデータを、データバスを介したDMAによって取得し、高性能画像処理装置に備えた外部インターフェース部に転送する。高性能画像処理装置に備えた外部インターフェース部は、低機能画像処理装置に備えた外部インターフェース部から転送されたデータを、データバスを介したDMAによって高性能画像処理装置に接続されているDRAMに格納する。
(手順3):高性能画像処理装置に備えた画像処理部が、拡張する機能の画像処理を行ったデータをDRAMに格納する。より具体的には、高性能画像処理装置に備えた画像処理部が、低機能画像処理装置から転送されたデータを、データバスを介したDMAによって高性能画像処理装置に接続されているDRAMから取得し、機能を拡張するための画像処理を行ったデータを、データバスを介したDMAによって高性能画像処理装置に接続されているDRAMに格納する。
(手順4):高性能画像処理装置から低機能画像処理装置にデータを転送する。より具体的には、高性能画像処理装置に備えた外部インターフェース部が、高性能画像処理装置に接続されているDRAMから手順3によって格納されたデータを、データバスを介したDMAによって取得し、低機能画像処理装置に備えた外部インターフェース部に転送する。低機能画像処理装置に備えた外部インターフェース部は、高性能画像処理装置に備えた外部インターフェース部から転送されたデータを、データバスを介したDMAによって低機能画像処理装置に接続されているDRAMに格納する。
(手順5):低機能画像処理装置に備えた画像処理部が、拡張する機能の画像処理が行われたデータに対して続きの画像処理を行う。より具体的には、低機能画像処理装置に備えた画像処理部が、高性能画像処理装置から転送されたデータを、データバスを介したDMAによって低機能画像処理装置に接続されているDRAMから取得し、パイプライン処理する続きの画像処理を行い、パイプライン処理における全ての画像処理を完了したデータを、データバスを介したDMAによって低機能画像処理装置に接続されているDRAMに格納する。
このように、パイプラインが構成された画像処理装置に特許文献1に開示された技術を適用していずれかの画像処理の間に他の画像処理を挿入する場合を考えると、それぞれの画像処理装置に接続されたDRAMの間でのデータの転送が必要になり、画像処理装置において構成したパイプライン処理が分断されて、一連の画像処理を高速で行うことができなくなる。
このことから、パイプライン処理を行う構成の画像処理装置には、特許文献1に開示された技術を適用することは困難である。つまり、特許文献1に開示された技術では、パイプラインを構成して一連の画像処理を行っているいずれかの画像処理モジュールの間に、他の画像処理を行う画像処理モジュールを挿入して画像処理の機能を拡張する構成を実現することは困難である。
なお、パイプライン処理を行わない構成の画像処理装置には、特許文献1に開示された技術を適用することが可能であると考えられるが、この場合にも、それぞれの画像処理装置に接続されたDRAMの間でのデータの転送は必要であるため、画像処理を行う際のDRAMのバス帯域の圧迫の回避や、画像処理装置の消費電力の低減はできない。これは、パイプライン処理を行う構成の画像処理装置では、パイプライン処理を行う全ての画像処理モジュールの画像処理が完了するまでDRAMへのアクセスを行わないことによって、DRAMへのアクセスに要する処理時間を減少させることによる画像処理の高速化や、画像処理を行う際のDRAMのバス帯域の圧迫の回避、画像処理装置の消費電力の低減などを実現しているからである。
本発明は、上記の課題認識に基づいてなされたものであり、パイプライン処理を行う構成の画像処理装置において、パイプラインによって行っている一連の画像処理の間に他の画像処理を挿入することができる画像処理装置を提供することを目的としている。
本発明の第1の態様によれば、画像処理装置は、入力されたデータに対して予め定めた処理を行う複数の処理モジュールを直列に接続してパイプラインを構成し、それぞれの前記処理モジュールが前記処理を順次行うことによってパイプライン処理を行う画像処理部がデータバスに接続され、前記データバスに接続されたデータ記憶部から前記データバスを介して読み出したデータに対して画像処理を行う画像処理装置であって、前記画像処理部は、前記処理モジュールのそれぞれが行う前記処理と異なる処理を行う前記処理モジュールとして前記パイプライン内に組み込まれる入出力用モジュール、を備え、前記入出力用モジュールは、前記パイプラインにおいて組み込まれた位置の前段に位置する前記処理モジュールである第1の処理モジュールが前記処理を行った処理データを、前記データバスを介さずに直接、前記画像処理部の外部の外部処理部に出力し、前記外部処理部によって前記処理データに対して外部処理が行われて入力された外部処理データを、前記データバスを介さずに直接、前記パイプラインにおいて前記第1の処理モジュールの後段に位置する前記処理モジュールである第2の処理モジュールに出力する。
本発明の第2の態様によれば、画像処理装置は、入力されたデータに対して予め定めた処理を行う複数の処理モジュールを直列に接続してパイプラインを構成し、それぞれの前記処理モジュールが前記処理を順次行うことによってパイプライン処理を行う画像処理部がデータバスに接続され、前記データバスに接続されたデータ記憶部から前記データバスを介して読み出したデータに対して画像処理を行う画像処理装置であって、前記画像処理部は、前記処理モジュールのそれぞれが行う前記処理と異なる処理を行う前記処理モジュールとして前記パイプライン内に組み込まれる入出力用モジュール、を備え、前記入出力用モジュールは、前記パイプラインにおいて組み込まれた位置の前段に位置する前記処理モジュールである第1の処理モジュールが前記処理を行った処理データを、前記データバスを介さずに直接、前記画像処理部の外部の外部処理部に出力するか、もしくは、前記画像処理部の外部の外部処理部から入力された外部処理データを、前記データバスを介さずに直接、前記パイプラインにおいて組み込まれた位置の後段に位置する前記処理モジュールである第2の処理モジュールに出力するか、もしくは、前記処理データの前記データバスを介さない前記画像処理部の外部の外部処理部への直接の出力、および前記外部処理部によって前記処理データに対して外部処理が行われて入力された外部処理データの前記データバスを介さない前記第2の処理モジュールへの直接の出力の両方を行う。
本発明の第3の態様によれば、上記第1の態様または上記第2の態様の画像処理装置において、前記入出力用モジュールは、前記処理データを一時的に記憶する出力バッファ部と、前記外部処理データを一時的に記憶する入力バッファ部と、を備え、前記第1の処理モジュールが出力した前記処理データを前記出力バッファ部に一旦記憶し、前記外部処理部からの要求に応じて前記出力バッファ部に記憶した前記処理データを出力し、前記外部処理部が出力した前記外部処理データを前記入力バッファ部に一旦記憶し、前記第2の処理モジュールからの要求に応じて前記入力バッファ部に記憶した前記外部処理データを出力してもよい。
本発明の第4の態様によれば、上記第3の態様の画像処理装置において、前記入出力用モジュールは、前記出力バッファ部の記憶容量に基づいて、前記出力バッファ部への前記処理データの書き込みを制御する処理モジュール入力制御部と、前記出力バッファ部に記憶されている前記処理データのデータ量に基づいて、前記出力バッファ部からの前記処理データの読み出しを制御する外部出力制御部と、前記入力バッファ部の記憶容量に基づいて、前記入力バッファ部への前記外部処理データの書き込みを制御する外部入力制御部と、前記入力バッファ部に記憶されている前記外部処理データのデータ量に基づいて、前記入力バッファ部からの前記外部処理データの読み出しを制御する処理モジュール出力制御部と、をさらに備えてもよい。
本発明の第5の態様によれば、上記第4の態様の画像処理装置において、前記処理モジュール入力制御部は、前記第1の処理モジュールが前記処理を行う単位ごとに、前記出力バッファ部に前記処理データを書き込み、前記外部出力制御部は、前記外部処理部が前記外部処理を行う単位ごとに、前記出力バッファ部に記憶されている前記処理データを読み出し、前記外部入力制御部は、前記外部処理部が前記外部処理を行う単位ごとに、前記入力バッファ部に前記外部処理データを書き込み、前記処理モジュール出力制御部は、前記第2の処理モジュールが前記処理を行う単位ごとに、前記入力バッファ部に記憶されている前記外部処理データを読み出してもよい。
本発明の第6の態様によれば、上記第5の態様の画像処理装置において、前記外部出力制御部は、複数の前記外部処理部の内、いずれの前記外部処理部に前記処理データを出力するのかを示す出力先情報を前記処理データに付加してもよい。
本発明の第7の態様によれば、上記第6の態様の画像処理装置において、前記出力先情報は、前記外部処理部が前記処理データに対して行う前記外部処理の設定の情報が示された付加情報に含まれてもよい。
本発明の第8の態様によれば、上記第1の態様から上記第7の態様のいずれか一態様の画像処理装置において、前記入出力用モジュールは、前記パイプラインの先頭、途中、および最後尾の少なくとも1つの位置に組み込まれてもよい。
本発明の第9の態様によれば、上記第1の態様または上記第2の態様の画像処理装置において、前記外部処理部との間でデータの入出力を行う外部インターフェース部、をさらに備え、前記入出力用モジュールは、前記外部インターフェース部を介して、前記外部処理部との間でデータ伝送を行ってもよい。
本発明の第10の態様によれば、上記第5の態様の画像処理装置において、前記処理データおよび前記外部処理データは、画像データであり、前記第1の処理モジュールおよび前記第2の処理モジュールが前記処理を行う単位と、前記外部処理部が前記外部処理を行う単位とのそれぞれは、1フレームの前記画像データを予め定めた複数のブロックに分割したサイズであり、前記出力バッファ部の記憶容量および前記入力バッファ部の記憶容量は、1フレームの前記画像データに含まれる画素データを記憶するための記憶容量よりも少なくてもよい。
上記各態様によれば、パイプライン処理を行う構成の画像処理装置において、パイプラインによって行っている一連の画像処理の間に他の画像処理を挿入することができる画像処理装置を提供することができるという効果が得られる。
本発明の第1の実施形態における画像処理装置の概略構成を示したブロック図である。 本発明の第1の実施形態における画像処理装置内の画像処理部に備えた入出力用モジュールの構成の概念を説明するブロック図である。 本発明の第1の実施形態における画像処理装置内の画像処理部に備えた入出力用モジュールの概略構成を示したブロック図である。 本発明の第1の実施形態における画像処理装置内の画像処理部に備えた入出力用モジュールにおける外部出力部の動作の一例を示したタイミングチャートである。 本発明の第1の実施形態における画像処理装置内の画像処理部に備えた入出力用モジュールにおける外部入力部の動作の一例を示したタイミングチャートである。 本発明の第1の実施形態における画像処理装置内の画像処理部に備えた入出力用モジュールを含んだ画素データの流れを模式的に示した図である。 本発明の第2の実施形態における画像処理装置の概略構成を示したブロック図である。 本発明の第2の実施形態における画像処理装置内の画像処理部に備えた入出力用モジュールの概略構成を示したブロック図である。 本発明の第2の実施形態における画像処理装置内の画像処理部に備えた入出力用モジュールが出力する外部出力データの構成の一例を示した図である。 本発明の第2の実施形態における画像処理装置内の画像処理部に備えた入出力用モジュールを含んだ画素データの流れを模式的に示した図である。 本発明の第3の実施形態における画像処理装置の概略構成を示したブロック図である。 本発明の第3の実施形態における画像処理装置内の画像処理部に備えた入出力用モジュールを含んだ画素データの流れを模式的に示した図である。 本発明の第1の実施形態の画像処理装置を搭載した第1の応用例の概略構成を示したブロック図である。 本発明の第1の応用例における画像処理装置内の画像処理部に備えた入出力用モジュールを含んだ画素データの流れを模式的に示した図である。 本発明の第1の実施形態の画像処理装置を搭載した第2の応用例の概略構成を示したブロック図である。 本発明の第2の応用例における画像処理装置内の画像処理部に備えた入出力用モジュールを含んだ画素データの流れを模式的に示した図である。
(第1の実施形態)
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の説明においては、本発明の第1の実施形態の画像処理装置が、例えば、静止画用カメラなどの撮像装置(以下、「撮像装置100」という)に搭載されている場合について説明する。図1は、本発明の第1の実施形態における画像処理装置の概略構成を示したブロック図である。なお、図1には、本発明の第1の実施形態の画像処理装置1に関連する撮像装置100内の構成要素として、DRAM500と、DMAバス610、拡張処理モジュール620、および外部インターフェース(I/F)部630を備えた外部拡張処理装置600と、DRAM700とを併せて示している。
図1に示した画像処理装置1は、DMAバス10と、画像処理部20と、外部インターフェース(I/F)部30と、を備えている。また、画像処理部20は、接続切り替え部21と、入力DMAモジュール22と、3つの画像処理モジュール23−1〜画像処理モジュール23−3と、入出力用モジュール24と、出力DMAモジュール25と、を備えている。
なお、図1においては、撮像装置100に備えたそれぞれの構成要素や画像処理装置1においてDMAバス10に接続される他の構成要素の図示を省略している。なお、画像処理装置1に備える他の構成要素としては、例えば、撮像装置100に備えたレンズによって結像された被写体の光学像を光電変換する固体撮像素子を制御する撮像処理部、画像処理部20によって処理された画像のデータを記録するための記録処理を行う記録処理部、画像処理部20によって処理された画像のデータを画像処理装置1に備えた表示部に表示させるための表示処理部などがある。また、例えば、撮像装置100に備える他の構成要素としては、画像処理装置1や外部拡張処理装置600に備えたそれぞれの構成要素を制御するシステム制御部などもある。
DRAM500は、画像処理装置1内のDMAバス10に接続され、撮像装置100において処理される様々なデータを記憶するデータ記憶部である。例えば、DRAM500は、撮像装置100に備えた不図示の固体撮像素子から出力された静止画像のデータを記憶する。画像処理装置1においては、DRAM500に記憶された1フレームの静止画像のデータを予め定めた複数の小さなブロックに分割し、画像処理部20が、それぞれのブロックごとに画像処理を行う。以下の説明においては、1フレームの静止画像のデータを分割したそれぞれのブロックに含まれるデータを、「ブロック画像データ」という。
画像処理部20は、入力されたブロック画像データに対して、画像処理装置1において予め定められた種々の画像処理を行うパイプライン処理部である。より具体的には、画像処理部20は、入力DMAモジュール22、画像処理モジュール23−1〜画像処理モジュール23−3、および出力DMAモジュール25が直列に接続されたパイプライン処理によって、画像処理装置1における画像処理を順次行う。画像処理部20は、ブロック画像データに含まれるそれぞれの画素のデータ(以下、「画素データ」という)を、例えば、予め定めた数の列ごとにDRAM500から読み出し、読み出した画素データを1つの処理単位として画像処理を行う。以下の説明においては、画像処理部20が画像処理を行う1つの処理単位の画素データにおいて、同じ列に含まれる連続した複数の画素データを、「ユニットライン」という。
また、画像処理部20は、パイプライン処理に含まれる画像処理を選択する機能や、パイプライン処理によって行う画像処理の順番を変更する機能、すなわち、パイプラインの構成を変更する機能を備えている。より具体的には、画像処理部20は、画像処理モジュール23−1〜画像処理モジュール23−3のそれぞれによる画像処理を順次行うパイプラインを構成することもできるが、画像処理モジュール23−1〜画像処理モジュール23−3のいずれか1つまたは複数によって画像処理を行うパイプラインや、画像処理モジュール23−1〜画像処理モジュール23−3の順番を変更して画像処理を行うパイプラインを構成することができる。以下の説明においては、画像処理モジュール23−1〜画像処理モジュール23−3のそれぞれを区別せずに表すときには、「画像処理モジュール23」という。なお、画像処理部20におけるパイプラインの構成は、例えば、不図示のシステム制御部によって変更(設定)される。
また、画像処理部20は、画像処理モジュール23−1〜画像処理モジュール23−3のそれぞれが実行する画像処理とは異なる画像処理をパイプライン処理に組み込む機能を備えている。ここで、パイプライン処理に組み込む画像処理は、画像処理モジュール23−1〜画像処理モジュール23−3のいずれの画像処理モジュール23においても実行しない画像処理であり、画像処理部20の外部に備えた構成要素によって実行される画像処理(以下、「外部画像処理」という)である。
図1に示した撮像装置100の構成では、画像処理装置1の外部に備えた外部拡張処理装置600が実行する画像処理を、外部画像処理としてパイプライン処理に組み込むことができる。画像処理部20では、入出力用モジュール24を、外部画像処理を実行する画像処理モジュールとしてパイプラインの構成内に組み込むことによって、外部拡張処理装置600が実行する外部画像処理がパイプライン処理に組み込まれる。なお、上述したように、画像処理部20におけるパイプラインの構成は、例えば、不図示のシステム制御部によって変更(設定)される。従って、画像処理部20では、入出力用モジュール24をパイプラインに組み込むか否かの設定や、パイプラインに組み込む際の入出力用モジュール24の位置の設定などが、例えば、不図示のシステム制御部によって、上述したパイプラインの構成を変更する機能の設定と共に行われる。
図1には、画像処理モジュール23−2と画像処理モジュール23−3との間に入出力用モジュール24を組み込むことによって、外部拡張処理装置600によって実行される外部画像処理がパイプラインに組み込まれている構成を示している。つまり、図1に示した画像処理部20では、画像処理モジュール23−1による画像処理、画像処理モジュール23−2による画像処理、外部拡張処理装置600による画像処理、および画像処理モジュール23−3による画像処理を順次行うパイプラインを構成している状態を示している。
なお、入出力用モジュール24をパイプラインに組み込む位置は、上述したように、例えば、不図示のシステム制御部によって設定される。つまり、入出力用モジュール24をパイプラインに組み込む位置は、図1に示した位置に限定されるものではなく、パイプライン内のいかなる位置にも組み込むことができる。つまり、入出力用モジュール24は、パイプラインの先頭、途中、最後尾など、いかなる位置にも組み込むことができる。
接続切り替え部21は、画像処理部20に備えたそれぞれの構成要素が出力した画素データの出力先を切り替える、つまり、画像処理部20に備えたそれぞれの構成要素同士の接続を切り替える。言い換えれば、接続切り替え部21は、画像処理部20が行う画像処理の順番や、パイプラインに組み込む外部画像処理の位置を変更する。
例えば、画像処理部20によって画像処理モジュール23−2のみの画像処理を行う場合、接続切り替え部21は、入力DMAモジュール22の出力端子と画像処理モジュール23−2の入力端子とを接続し、画像処理モジュール23−2の出力端子と出力DMAモジュール25の入力端子とを接続するように、それぞれの構成要素の接続を切り替える。また、例えば、画像処理部20によって画像処理モジュール23−3、画像処理モジュール23−1の順番で画像処理を行う場合、接続切り替え部21は、入力DMAモジュール22の出力端子と画像処理モジュール23−3の入力端子とを接続し、画像処理モジュール23−3の出力端子と画像処理モジュール23−1の入力端子とを接続し、画像処理モジュール23−1の出力端子と出力DMAモジュール25の入力端子とを接続するように、それぞれの構成要素の接続を切り替える。また、例えば、画像処理部20によって画像処理モジュール23−2、外部拡張処理装置600の順番で画像処理を行う場合、接続切り替え部21は、入力DMAモジュール22の出力端子と画像処理モジュール23−2の入力端子とを接続し、画像処理モジュール23−2の出力端子と入出力用モジュール24の入力端子とを接続し、入出力用モジュール24の出力端子と出力DMAモジュール25の入力端子とを接続するように、それぞれの構成要素の接続を切り替える。なお、接続切り替え部21は、例えば、不図示のシステム制御部からの制御に応じて、画像処理部20に備えたそれぞれの構成要素の接続の切り替えを行う。
なお、画像処理部20では、上述したように、入出力用モジュール24は、パイプラインの先頭、途中、最後尾など、いかなる位置にも組み込むことができる。例えば、画像処理部20によって外部拡張処理装置600、画像処理モジュール23−1の順番で画像処理を行う場合、つまり、入出力用モジュール24をパイプラインの先頭に組み込む場合、接続切り替え部21は、入力DMAモジュール22の出力端子と入出力用モジュール24の入力端子とを接続し、入出力用モジュール24の出力端子と画像処理モジュール23−1の入力端子とを接続し、画像処理モジュール23−1の出力端子と出力DMAモジュール25の入力端子とを接続するように、それぞれの構成要素の接続を切り替える。また、例えば、画像処理部20によって画像処理モジュール23−2、外部拡張処理装置600、画像処理モジュール23−3の順番で画像処理を行う場合、つまり、入出力用モジュール24をパイプラインの途中に組み込む場合、接続切り替え部21は、入力DMAモジュール22の出力端子と画像処理モジュール23−2の入力端子とを接続し、画像処理モジュール23−2の出力端子と入出力用モジュール24の入力端子とを接続し、入出力用モジュール24の出力端子と画像処理モジュール23−3の入力端子とを接続し、画像処理モジュール23−3の出力端子と出力DMAモジュール25の入力端子とを接続するように、それぞれの構成要素の接続を切り替える。また、例えば、画像処理部20によって画像処理モジュール23−3、外部拡張処理装置600の順番で画像処理を行う場合、つまり、入出力用モジュール24をパイプラインの最後尾に組み込む場合、接続切り替え部21は、入力DMAモジュール22の出力端子と画像処理モジュール23−3の入力端子とを接続し、画像処理モジュール23−3の出力端子と入出力用モジュール24の入力端子とを接続し、入出力用モジュール24の出力端子と出力DMAモジュール25の入力端子とを接続するように、それぞれの構成要素の接続を切り替える。
なお、画像処理部20では、入出力用モジュール24のみをパイプラインに組み込むこともできる。より具体的には、接続切り替え部21が、入力DMAモジュール22の出力端子と入出力用モジュール24の入力端子とを接続し、入出力用モジュール24の出力端子と出力DMAモジュール25の入力端子とを接続するように、それぞれの構成要素の接続を切り替える。これにより、画像処理部20では、入出力用モジュール24のみ、つまり、外部拡張処理装置600による外部画像処理のみをパイプライン処理として行うことができる。
入力DMAモジュール22は、DRAM500に記憶されているブロック画像データに含まれるそれぞれの画素データを、DMAバス10を介したDMAによってユニットラインごとに読み出し、読み出した画素データを、接続切り替え部21を介して、次に画像処理を行う処理モジュールであるいずれかの画像処理モジュール23や入出力用モジュール24に出力するための処理モジュールである。入力DMAモジュール22は、例えば、不図示のシステム制御部からの制御に応じて、DMAバス10を介してDRAM500から画素データを読み出し、読み出した画素データを接続切り替え部21によって接続が切り替えられた接続先のいずれかの画像処理モジュール23や入出力用モジュール24に出力する。
なお、入力DMAモジュール22は、予め定めた数のユニットライン分の画素データを一時的に記憶することができるデータバッファを備える構成であってもよい。この構成の場合、入力DMAモジュール22は、DMAバス10を介してDRAM500から読み出した画素データをデータバッファに一時記憶し、データバッファに一時記憶した画素データを、接続切り替え部21によって接続が切り替えられた接続先のいずれかの画像処理モジュール23や入出力用モジュール24に出力してもよい。
画像処理モジュール23−1〜画像処理モジュール23−3のそれぞれは、接続切り替え部21によって接続が切り替えられた接続先の入力DMAモジュール22、他の画像処理モジュール23、または入出力用モジュール24から、接続切り替え部21を介して入力された画素データに対して予め定めた種々のデジタル的な画像処理を行う処理モジュールである。画像処理モジュール23−1〜画像処理モジュール23−3のそれぞれが行う画像処理には、種々の画像処理がある。画像処理モジュール23が行う画像処理には、例えば、それぞれの画素データに対応するY(輝度)信号とC(色)信号とを生成するYC処理、それぞれの画素データに含まれるノイズを低減するノイズ低減処理、それぞれの画素データで表される画像における高周波成分の抑圧を行うLPF処理、画像における被写体の輪郭を強調するエッジ強調処理などが含まれている。画像処理モジュール23−1〜画像処理モジュール23−3のそれぞれは、例えば、不図示のシステム制御部からの制御に応じて、接続切り替え部21を介して入力された画素データに対して画像処理を施し、画像処理を施した画素データを、接続切り替え部21によって接続が切り替えられた接続先の他の画像処理モジュール23、入出力用モジュール24、または出力DMAモジュール25に出力する。
なお、画像処理モジュール23−1〜画像処理モジュール23−3のそれぞれにも、予め定めた数のユニットライン分の画素データを一時的に記憶することができるデータバッファを備える構成であってもよい。この構成の場合、画像処理モジュール23−1〜画像処理モジュール23−3のそれぞれは、接続切り替え部21を介して入力された画素データをデータバッファに一時記憶し、データバッファに一時記憶した画素データに対して画像処理を施した画素データを、接続切り替え部21によって接続が切り替えられた接続先の他の画像処理モジュール23、入出力用モジュール24、または出力DMAモジュール25に出力してもよい。または、画像処理モジュール23−1〜画像処理モジュール23−3のそれぞれは、接続切り替え部21を介して入力された画素データに対して画像処理を施してからデータバッファに一時記憶し、データバッファに一時記憶した画素データを、接続切り替え部21によって接続が切り替えられた接続先の他の画像処理モジュール23、入出力用モジュール24、または出力DMAモジュール25に出力してもよい。
なお、以下の説明においては、画像処理を施した後の画素データを、DRAM500に記憶されている画像処理を行う対象の画素データと区別して表す場合には、「処理画素データ」という。
入出力用モジュール24は、画像処理部20の外部に備えた構成要素によって実行される外部画像処理を、パイプライン処理に組み込むためのインターフェースモジュールである。入出力用モジュール24は、例えば、不図示のシステム制御部からの制御に応じて、接続切り替え部21によって接続が切り替えられた接続先の入力DMAモジュール22、画像処理モジュール23のいずれかから、接続切り替え部21を介して入力された画素データを、DMAバス10を介さずに直接、接続されている外部インターフェース部30に出力する。また、入出力用モジュール24は、例えば、不図示のシステム制御部からの制御に応じて、接続されている外部インターフェース部30から、DMAバス10を介さずに直接入力された外部画像処理が施された画素データを、接続切り替え部21によって接続が切り替えられた接続先の画像処理モジュール23のいずれか、または出力DMAモジュール25に出力する。
なお、入出力用モジュール24の構成や、入出力用モジュール24が外部画像処理を画像処理部20のパイプライン処理に組み込むときの動作などに関する詳細な説明は、後述する。なお、以下の説明においては、外部画像処理を施した後の画素データを、DRAM500に記憶されている画像処理を行う対象の画素データや、画像処理モジュール23のいずれかが画像処理を施した後の画素データ(処理画素データ)と区別して表す場合には、「外部処理画素データ」という。
出力DMAモジュール25は、接続切り替え部21によって接続が切り替えられた接続先の画像処理モジュール23のいずれかから、接続切り替え部21を介して入力された処理画素データ、または入出力用モジュール24から、接続切り替え部21を介して入力された外部処理画素データを、DMAバス10を介したDMAによってDRAM500に書き込む(記憶する)ための処理モジュールである。出力DMAモジュール25は、例えば、不図示のシステム制御部からの制御に応じて、接続切り替え部21を介して入力された処理画素データまたは外部処理画素データを、DMAバス10を介してDRAM500に出力する。
なお、出力DMAモジュール25も、予め定めた数のユニットライン分の処理画素データまたは外部処理画素データを一時的に記憶することができるデータバッファを備える構成であってもよい。この構成の場合、出力DMAモジュール25は、接続切り替え部21を介して入力された処理画素データまたは外部処理画素データをデータバッファに一時記憶し、データバッファに一時記憶した処理画素データまたは外部処理画素データを、DMAバス10を介してDRAM500に出力してもよい。
なお、以下の説明においては、画像処理モジュール23のそれぞれが出力する処理画素データと、入出力用モジュール24が出力する外部処理画素データとを区別せずに表す場合には、単に「処理画素データ」という。
このように、画像処理部20では、それぞれの画像処理モジュール23が、1フレームの静止画像のデータをブロック画像データに分割し、例えば、不図示のシステム制御部からの制御に応じた画像処理を、それぞれのブロック画像データに含まれる画素データに対してユニットラインごとに順次を行うことによって、それぞれのブロック画像データに対して、パイプライン処理による一連の画像処理を行う。また、画像処理部20では、いずれの画像処理モジュール23においても実行しない外部画像処理を、例えば、不図示のシステム制御部からの制御に応じて、画像処理部20の外部に備えた構成要素(図1においては、外部拡張処理装置600)に実行させて、パイプライン処理に組み込む。このとき、画像処理部20では、入出力用モジュール24を、外部画像処理を実行する画像処理モジュールとしてパイプラインの構成に組み込む。これにより、画像処理装置1では、画像処理部20によって実行することができない画像処理であっても、画像処理部20がパイプライン処理を行っているのと同様に処理することができる。つまり、画像処理装置1では、画像処理部20におけるパイプライン処理を拡張することができる。
外部インターフェース部30は、画像処理装置1と、パイプラインの構成に組み込む画像処理装置1の外部に備えた外部拡張処理装置600とを接続し、画像処理装置1と外部拡張処理装置600との間でデータの受け渡しを行う接続部である。外部インターフェース部30は、DMAバス10を介さずに直接、入出力用モジュール24から入力された画素データを、外部拡張処理装置600に伝送する。また、外部インターフェース部30は、外部拡張処理装置600から伝送された外部処理画素データを、DMAバス10を介さずに直接、入出力用モジュール24に出力する。
なお、外部インターフェース部30における外部拡張処理装置600へのデータの伝送方式は、複数のシステムLSIの間でのデータの伝送に用いられる、例えば、AXI(Advanced eXtensible Interface)仕様や、PCI−Express(Peripheral Component Interconnect−Express)などの高速シリアルバス仕様など、予め定めた種々の仕様に従った方式が採用されている。なお、外部インターフェース部30において外部拡張処理装置600にデータを伝送するための仕様や方式は、上述した仕様や方式に限定されるものではない。つまり、外部インターフェース部30におけるデータの伝送方式は、複数のシステムLSIの間でのデータの伝送に用いられる、既存の様々な仕様や方式を採用することができる。また、外部インターフェース部30は、複数のシステムLSIの間でのデータの伝送に用いられる仕様や方式が複数採用され、画像処理装置1に接続されるシステムLSI(図1においては、外部拡張処理装置600)に採用されているデータ伝送の仕様や方式に応じて、データを伝送する方式を変更する構成であってもよい。
なお、外部インターフェース部30は、外部拡張処理装置600との間でデータの受け渡しを行う際に、入出力用モジュール24から出力される画素データの形式と、外部拡張処理装置600が処理するデータの形式とを合わせる機能を備えていてもよい。例えば、外部インターフェース部30は、外部拡張処理装置600に画素データを伝送する際に、入出力用モジュール24から出力された画素データの形式を、外部拡張処理装置600に伝送する際の仕様に応じた形式に変換する機能を備えていてもよい。また、外部インターフェース部30は、外部拡張処理装置600から外部処理画素データを受け取る際に、外部拡張処理装置600の仕様に応じた形式で伝送されるデータを、入出力用モジュール24が処理する形式、つまり、画像処理モジュール23が引き続き画像処理を行う画素データの形式に変換する機能を備えていてもよい。
外部拡張処理装置600は、撮像装置100において画像処理装置1の外部に備えられ、画像処理装置1に備えた画像処理部20内に構成されるパイプラインに組み込まれる画像処理を行う画像処理装置(システムLSI)である。外部拡張処理装置600は、画像処理装置1に備えた画像処理部20内のいずれの画像処理モジュール23においても実行しない画像処理、つまり、画像処理装置1において実行する画像処理を拡張するための外部画像処理を実行する。外部拡張処理装置600は、外部インターフェース部630を介して画像処理装置1から入力された画素データに対して予め定めたデジタル的な外部画像処理を施し、外部画像処理を施した画素データ(外部処理画素データ)を、外部インターフェース部630を介して画像処理装置1に出力する。
なお、図1には、外部拡張処理装置600における外部画像処理以外の種々の処理や動作において、接続されたDRAM700を用いる構成の外部拡張処理装置600を示している。しかし、外部拡張処理装置600は、外部画像処理を実行する際にDRAM700を用いる構成であってもよい。
外部インターフェース部630は、画像処理装置1に備えた外部インターフェース部30と接続し、外部拡張処理装置600と画像処理装置1との間でデータの受け渡しを行う接続部である。外部インターフェース部630は、画像処理装置1から伝送された画素データ、つまり、画像処理装置1に備えた外部インターフェース部30から出力された画素データ(画像処理装置1に備えた画像処理部20内の入出力用モジュール24から出力された画素データ)を、拡張処理モジュール620に出力する。また、外部インターフェース部630は、拡張処理モジュール620から出力された外部画像処理を施した外部処理画素データを画像処理装置1に伝送、つまり、画像処理装置1に備えた外部インターフェース部30に伝送する。これにより、外部拡張処理装置600が外部画像処理を実行した外部処理画素データが、画像処理装置1に備えた画像処理部20内の入出力用モジュール24に出力される。つまり、外部拡張処理装置600が、画像処理装置1に備えた画像処理部20内に構成されるパイプラインに組み込まれる。
なお、外部インターフェース部630は、画像処理装置1に備えた外部インターフェース部30との間でデータの受け渡しを行う際に、入出力用モジュール24から出力される画素データの形式と、拡張処理モジュール620が処理するデータの形式とを合わせる機能を、画像処理装置1に備えた外部インターフェース部30の代わりに備えていてもよい。例えば、外部インターフェース部630は、画像処理装置1から画素データを受け取る際に、画像処理装置1の仕様に応じた形式で伝送されるデータを、拡張処理モジュール620が処理する画素データの形式に変換する機能を備えていてもよい。また、外部インターフェース部630は、画像処理装置1に外部処理画素データを伝送する際に、拡張処理モジュール620から出力された外部処理画素データの形式を、画像処理装置1に伝送する際の仕様に応じた形式、つまり、画像処理モジュール23が引き続き画像処理を行う形式に変換する機能を備えていてもよい。
拡張処理モジュール620は、外部インターフェース部630からDMAバス610を介して入力された画素データに対して予め定めた外部画像処理を行う処理モジュールである。拡張処理モジュール620が行う外部画像処理には、種々の画像処理がある。拡張処理モジュール620が行う外部画像処理には、例えば、ブロック画像データに含まれるそれぞれの画素の位置(座標)の変換を伴う画像補間処理なども含まれている。この画像補間処理には、例えば、画像の大きさ(サイズ)を変更(拡大や縮小)するリサイズ処理、画像に含まれる倍率色収差や歪曲収差などの歪みの補正を行う歪補正処理、台形補正などの画像の形状の補正を行う形状補正処理など、種々の処理が含まれている。拡張処理モジュール620は、例えば、不図示のシステム制御部からの制御に応じて、外部インターフェース部630を介して入力された画素データに対して外部画像処理を施し、外部画像処理を施した外部処理画素データを、外部インターフェース部630に出力する。
なお、拡張処理モジュール620が入力された画素データに対して外部画像処理を施す際には、外部拡張処理装置600に接続されたDRAM700を用いることもできる。
DRAM700は、外部拡張処理装置600内のDMAバス610に接続され、撮像装置100において外部画像処理を実行する際の様々なデータを記憶するデータ記憶部である。例えば、DRAM700は、外部インターフェース部630を介して画像処理装置1から入力された画素データ、拡張処理モジュール620が外部画像処理を行っている途中または処理を完了した結果(外部処理画素データ)などを一時的に記憶する。
このような構成によって撮像装置100では、画像処理装置1に備えた画像処理部20内の画像処理モジュール23のそれぞれが実行する画像処理によるパイプライン処理に、外部拡張処理装置600が実行する外部画像処理を組み込む。これにより、撮像装置100では、画像処理装置1のみでは実行することができない画像処理であっても、外部拡張処理装置600を画像処理装置1に接続することによって、画像処理装置1に備えた画像処理部20がパイプライン処理を行っているのと同様に、画像処理を拡張することができる。
次に、画像処理装置1において画像処理部20に備えた入出力用モジュール24の構成および動作について説明する。なお、上述したように、入出力用モジュール24は、パイプライン内のいかなる位置にも組み込むことができるが、以下の説明においては、入出力用モジュール24を2つの画像処理モジュール23の間の位置に組み込む、つまり、入出力用モジュール24の前段および後段のそれぞれに画像処理モジュール23が接続されているものとして説明する。
まず、画像処理部20に備えた入出力用モジュール24における外部インターフェース部30との間での画素データの受け渡し動作の概念について説明する。上述したように、画像処理部20において外部画像処理を行うための画素データは、入出力用モジュール24に接続されている外部インターフェース部30を介して外部拡張処理装置600に出力される。なお、上述したように、画像処理部20では、それぞれの画像処理モジュール23が、複数のユニットラインを1つの処理単位として画像処理を行う。このため、画像処理部20において外部画像処理を行う画素データも、1つの処理単位ごとに入出力用モジュール24に入力され、外部画像処理を施した外部処理画素データも、1つの処理単位ごとに入出力用モジュール24から出力される。つまり、画像処理部20においては、入出力用モジュール24と、入出力用モジュール24の前段および後段に接続された画像処理モジュール23との間の画素データの受け渡しも、1つの処理単位ごとに行われる。しかし、画像処理装置1に接続された外部拡張処理装置600は、画像処理部20に備えたそれぞれの画像処理モジュール23と同様に、必ずしも1つの処理単位ごとに外部画像処理を行うとは限らない。このため、入出力用モジュール24は、前段に接続された画像処理モジュール23から出力された画素データを1つの処理単位ごとに受け付け、受け付けた画素データを、外部画像処理を行う処理単位ごとに外部拡張処理装置600に出力する。また、入出力用モジュール24は、外部拡張処理装置600から出力された外部処理画素データを外部画像処理の処理単位ごとに受け付け、受け付けた外部処理画素データを、それぞれの画像処理モジュール23が画像処理を行う1つの処理単位ごとに後段に接続された画像処理モジュール23に出力する。
図2は、本発明の第1の実施形態における画像処理装置1内の画像処理部20に備えた入出力用モジュール24の構成の概念を説明するブロック図である。図2には、入出力用モジュール24の概念的な動作を説明するための基本的な構成を示している。図2に示したように、入出力用モジュール24は、画像処理モジュール入力制御部241と、出力バッファ部242と、外部出力制御部243と、外部入力制御部244と、入力バッファ部245と、画像処理モジュール出力制御部246と、を備えている。
画像処理モジュール入力制御部241は、入出力用モジュール24の前段に接続された画像処理モジュール23から出力された入力データ(画素データ)、つまり、外部インターフェース部30を介して外部拡張処理装置600に出力する画素データを、出力バッファ部242に一時的に記憶させる制御を行う。
出力バッファ部242は、入出力用モジュール24に入力された入力データ(画素データ)を、一時的に記憶するデータバッファである。出力バッファ部242は、例えば、SRAM(Static Random Access Memory)などのメモリで構成される。出力バッファ部242は、入出力用モジュール24の前段に接続された画像処理モジュール23から出力された予め定めた数のユニットライン分の画素データを一時的に記憶することができる記憶容量をもっている。出力バッファ部242は、画像処理モジュール入力制御部241からの制御に応じて、入力された入力データ(画素データ)を一時的に記憶する。また、出力バッファ部242は、外部出力制御部243からの制御に応じて、記憶している画素データを、外部出力データとして外部インターフェース部30に出力する。これにより、記憶している画素データが、外部インターフェース部30を介して外部拡張処理装置600に伝送される。
外部出力制御部243は、出力バッファ部242に記憶された入力データ(画素データ)を読み出し、入出力用モジュール24に接続された外部インターフェース部30に出力させる制御を行う。
外部入力制御部244は、外部インターフェース部30から出力された外部入力データ(外部処理画素データ)、つまり、外部インターフェース部30を介して外部拡張処理装置600から出力された外部処理画素データを、入力バッファ部245に一時的に記憶させる制御を行う。
入力バッファ部245は、入出力用モジュール24に入力された外部入力データ(外部処理画素データ)を、一時的に記憶するデータバッファである。入力バッファ部245も、出力バッファ部242と同様に、例えば、SRAMなどのメモリで構成される。入力バッファ部245は、外部インターフェース部30を介して外部拡張処理装置600から出力された予め定めた数のユニットライン分の外部処理画素データを、出力データとして一時的に記憶することができる記憶容量をもっている。入力バッファ部245は、外部入力制御部244からの制御に応じて、入力された入力データ(外部処理画素データ)を一時的に記憶する。また、入力バッファ部245は、画像処理モジュール出力制御部246からの制御に応じて、記憶している外部処理画素データを、出力データとして入出力用モジュール24の後段に接続された画像処理モジュール23に出力する。
画像処理モジュール出力制御部246は、入力バッファ部245に記憶された外部入力データ(外部処理画素データ)を読み出し、入出力用モジュール24の後段に接続された画像処理モジュール23に出力させる制御を行う。
このような構成によって入出力用モジュール24は、画像処理装置1に接続された外部拡張処理装置600と、前段および後段に接続された画像処理モジュール23との間での画素データの受け渡しのタイミングを制御する。つまり、入出力用モジュール24は、外部拡張処理装置600が、あたかも画像処理部20内に備えた画像処理モジュール23であるかのように、外部拡張処理装置600と画像処理モジュール23との間での画素データの受け渡しのタイミングを制御する。
なお、外部拡張処理装置600においては、外部画像処理を行うために必要な入力データ(画素データ)の数、つまり、ユニットラインの数が、外部拡張処理装置600が実行する外部画像処理の内容によって異なる。このため、出力バッファ部242および入力バッファ部245の記憶容量は、少なくとも、外部拡張処理装置600が外部画像処理を行う際に要する数、つまり、外部拡張処理装置600における外部画像処理の処理単位を満足し、かつ、画像処理部20におけるパイプライン処理がスムーズに行われる数の画素データまたは外部処理画素データを記憶することができる記憶容量であることが望ましい。例えば、出力バッファ部242および入力バッファ部245の記憶容量は、想定される外部画像処理の内容、前段への接続が想定される画像処理モジュール23から処理画素データが出力されてから、後段への接続が想定される画像処理モジュール23に外部処理画素データが出力されるまでの遅延時間などに基づいて、パイプライン処理が正常に行われるような記憶容量に予め決定されることが望ましい。また、前段および後段への接続が想定される画像処理モジュール23にデータバッファを備える場合、出力バッファ部242および入力バッファ部245の記憶容量は、それぞれの画像処理モジュール23に備えたデータバッファの記憶容量や遅延時間などに基づいて、パイプライン処理が正常に行われるような記憶容量に予め決定されることが望ましい。なお、出力バッファ部242や入力バッファ部245の記憶容量は、予め定めた余裕を持った記憶容量に決定されてもよい。
次に、画像処理装置1において画像処理部20に備えた入出力用モジュール24の構成について説明する。図3は、本発明の第1の実施形態における画像処理装置1内の画像処理部20に備えた入出力用モジュール24の概略構成を示したブロック図である。図3には、入出力用モジュール24における基本的な構成を示している。図3に示した入出力用モジュール24は、図2に示した概念的な動作を説明する構成と同様に、画像処理モジュール入力制御部241と、出力バッファ部242と、外部出力制御部243と、外部入力制御部244と、入力バッファ部245と、画像処理モジュール出力制御部246と、を備えている。
入出力用モジュール24では、画像処理モジュール入力制御部241、出力バッファ部242、および外部出力制御部243の構成によって、前段に接続された画像処理モジュール23から出力された入力データ(画素データ)を出力バッファ部242に一時記憶し、接続されている外部インターフェース部30からのデータ出力の要求に応じて、出力バッファ部242に一時記憶した画素データを、外部出力データとして出力する。また、入出力用モジュール24では、外部入力制御部244、入力バッファ部245、および画像処理モジュール出力制御部246の構成によって、外部インターフェース部30から出力された外部入力データ(外部処理画素データ)を入力バッファ部245に一時記憶し、後段に接続された画像処理モジュール23からのデータ出力の要求に応じて、入力バッファ部245に一時記憶した外部処理画素データを、出力データとして出力する。以下の説明においては、画像処理モジュール入力制御部241、出力バッファ部242、および外部出力制御部243の構成を、「外部出力部」といい、外部入力制御部244、入力バッファ部245、および画像処理モジュール出力制御部246の構成を、「外部入力部」という。
まず、入出力用モジュール24における外部出力部について説明する。
出力バッファ部242は、上述したように、入出力用モジュール24に入力された入力データ(画素データ)を、一時的に記憶するデータバッファである。図3には、データバッファを2つ備え、それぞれのデータバッファにおける画素データの記憶(書き込み)と出力(読み出し)とを逆の動作に交互に切り替えることによって、1つの処理単位の画素データの書き込みと読み出しとを同時期に行うことができるように動作する、いわゆる、ダブルバッファの構成の出力バッファ部242を示している。図3に示した出力バッファ部242は、セレクタ2421と、2つの出力バッファ2422−1および出力バッファ2422−2と、セレクタ2423と、を備えている。
セレクタ2421は、出力バッファ部242において画素データを書き込むデータバッファを選択する選択部である。セレクタ2421は、画像処理モジュール入力制御部241から出力された出力バッファライト選択信号OBWSに応じて、出力バッファ2422−1または出力バッファ2422−2のいずれか一方の出力バッファ2422を、画素データを書き込むデータバッファとして選択する。そして、セレクタ2421は、入出力用モジュール24に入力された入力データ(画素データ)を、選択した出力バッファ2422−1または出力バッファ2422−2のいずれか一方の出力バッファ2422に出力する。
セレクタ2423は、出力バッファ部242において記憶している画素データを読み出すデータバッファを選択する選択部である。セレクタ2423は、外部出力制御部243から出力された出力バッファリード選択信号OBRSに応じて、出力バッファ2422−1または出力バッファ2422−2のいずれか一方の出力バッファ2422を、記憶している画素データを読み出すデータバッファとして選択する。そして、セレクタ2423は、選択した出力バッファ2422−1または出力バッファ2422−2のいずれか一方の出力バッファ2422から読み出された画素データを、外部出力データとして外部インターフェース部30に出力する。これにより、外部出力データ(画素データ)が、外部インターフェース部30によって外部拡張処理装置600に伝送される。
出力バッファ2422−1および出力バッファ2422−2のそれぞれは、予め定めた数のユニットライン分の画素データを一時的に記憶する記憶容量のデータバッファである。セレクタ2421によって画素データを書き込むデータバッファとして選択された出力バッファ2422−1または出力バッファ2422−2のいずれか一方の出力バッファ2422は、画像処理モジュール入力制御部241から出力された出力バッファライト信号OBWに応じて、セレクタ2421を介して入力された入力データ(画素データ)を書き込む(記憶する)。一方、セレクタ2423によって記憶している画素データを読み出すデータバッファとして選択された出力バッファ2422−1または出力バッファ2422−2のいずれか一方の出力バッファ2422は、外部出力制御部243から出力された出力バッファリード信号OBRに応じて、記憶している画素データを読み出して、セレクタ2423に出力する。
画像処理モジュール入力制御部241は、上述したように、入出力用モジュール24の前段に接続された画像処理モジュール23から出力された入力データ(画素データ)の出力バッファ部242への記憶(書き込み)を制御する。図3に示した画像処理モジュール入力制御部241は、出力バッファ空き容量管理部2411と、出力バッファ書き込み管理部2412と、を備えている。
出力バッファ空き容量管理部2411は、出力バッファ部242に備えた出力バッファ2422−1および出力バッファ2422−2のそれぞれの記憶容量を監視し、記憶容量を監視した結果に応じて、入出力用モジュール24の動作状態を表す状態通知信号を、前段に接続された画像処理モジュール23に出力する。また、出力バッファ空き容量管理部2411は、出力バッファ2422への入力データ(画素データ)の記憶(書き込み)を、出力バッファ書き込み管理部2412に指示する。
より具体的には、出力バッファ空き容量管理部2411は、外部出力制御部243によって読み出されていない画素データを記憶している出力バッファ2422とは異なる他方の出力バッファ2422に、前段に接続された画像処理モジュール23から出力された入力データ(画素データ)を書き込む(一時記憶する)ための空いている記憶容量があるか否かを監視する。そして、出力バッファ空き容量管理部2411は、空いている記憶容量を監視した結果、外部出力制御部243によって読み出されるべき画素データをすでに記憶している出力バッファ2422とは異なる方の出力バッファ2422に空いている記憶容量がある場合、この出力バッファ2422は、前段に接続された画像処理モジュール23から出力された入力データ(画素データ)を書き込むことができる状態であると判定する。この場合、出力バッファ空き容量管理部2411は、入力データを受け付けることができる状態であることを表す状態通知信号として、入力データ(画素データ)の出力を要求するデータリクエスト信号を、前段に接続された画像処理モジュール23に出力する。そして、出力バッファ空き容量管理部2411は、出力したデータリクエスト信号に応じて前段に接続された画像処理モジュール23から入力データ(画素データ)を出力することを表すデータアクノリッジ信号が入力されると、データアクノリッジ信号に対応する入力データ(画素データ)を受け取って書き込む(一時記憶する)ことを指示する出力バッファライト制御信号OBWCを、出力バッファ書き込み管理部2412に出力する。なお、出力バッファ空き容量管理部2411が出力する出力バッファライト制御信号OBWCには、空いている記憶容量があると判定した出力バッファ2422の情報が含まれている。
一方、出力バッファ空き容量管理部2411は、空いている記憶容量を監視した結果、出力バッファ2422に空いている記憶容量がない場合、いずれの出力バッファ2422にも、前段に接続された画像処理モジュール23から出力された入力データ(画素データ)を書き込むことができない状態であると判定する。この場合、出力バッファ空き容量管理部2411は、入力データを受け付けることができない状態であることを表す状態通知信号として、入力データ(画素データ)の出力を要求しないことを表すデータリクエスト信号を、前段に接続された画像処理モジュール23に出力する。なお、出力バッファ空き容量管理部2411は、入力データ(画素データ)の出力を要求しないことを、データリクエスト信号と異なる信号で表してもよい。
出力バッファ書き込み管理部2412は、出力バッファ空き容量管理部2411から出力された出力バッファライト制御信号OBWCに基づいて、入力データ(画素データ)の書き込みを制御するための制御信号を出力バッファ部242に出力する。
より具体的には、出力バッファ書き込み管理部2412は、出力バッファライト制御信号OBWCに含まれる、空いている記憶容量があると判定した出力バッファ2422の情報に基づいて、前段に接続された画像処理モジュール23から出力された入力データ(画素データ)を書き込む(一時記憶する)出力バッファ2422を選択するための出力バッファライト選択信号OBWSを、出力バッファ部242に備えたセレクタ2421に出力する。また、出力バッファ書き込み管理部2412は、出力バッファ空き容量管理部2411から出力された出力バッファライト制御信号OBWCに応じて、前段に接続された画像処理モジュール23から出力された入力データ(画素データ)を書き込むタイミングを表す出力バッファライト信号OBWを、出力バッファ部242内の選択した出力バッファ2422に出力する。このとき、出力バッファ書き込み管理部2412は、前段に接続された画像処理モジュール23から入力データ(画素データ)と共に出力された、ユニットラインに含まれるそれぞれの画素データが、有効な画素データであるか否かを表すデータ有効信号に基づいて、現在入力された入力データが有効な画素データであるか否かを判定する。そして、出力バッファ書き込み管理部2412は、有効な入力データ(画素データ)のみを書き込むタイミングの出力バッファライト信号OBWを出力バッファ2422に出力する。これにより、出力バッファ部242は、有効な入力データ(画素データ)のみを、選択された出力バッファ2422に書き込む(一時記憶する)。
外部出力制御部243は、上述したように、出力バッファ部242に記憶された入力データ(画素データ)の出力(読み出し)を制御する。図3に示した外部出力制御部243は、出力バッファデータ量管理部2431と、出力バッファ読み出し管理部2432と、を備えている。
出力バッファデータ量管理部2431は、出力バッファ部242に備えた出力バッファ2422−1および出力バッファ2422−2のそれぞれの記憶容量を監視し、記憶容量を監視した結果に応じて、出力バッファ2422に記憶している画素データの出力(読み出し)を、出力バッファ読み出し管理部2432に指示する。
より具体的には、出力バッファデータ量管理部2431は、画像処理モジュール入力制御部241によって入力データ(画素データ)の書き込みがされている出力バッファ2422とは異なる他方の出力バッファ2422に書き込みが完了している入力データ(画素データ)のデータ量を監視する。そして、出力バッファデータ量管理部2431は、画素データのデータ量を監視した結果、外部インターフェース部30に外部出力データとして出力する画素データがすでに出力バッファ2422に記憶されている場合、この出力バッファ2422は、画素データを読み出して外部インターフェース部30に出力することができる状態であると判定する。この場合、出力バッファデータ量管理部2431は、接続されている外部インターフェース部30から外部出力データ(画素データ)の出力を要求するデータ出力要求信号が入力されると、データ出力要求信号に対応する外部出力データ(画素データ)を読み出す(出力する)ことを指示する出力バッファリード制御信号OBRCを、出力バッファ読み出し管理部2432に出力する。なお、出力バッファデータ量管理部2431が出力する出力バッファリード制御信号OBRCには、画素データの書き込みが完了していると判定した出力バッファ2422の情報が含まれている。なお、出力バッファデータ量管理部2431は、データ出力要求信号による外部出力データ(画素データ)の出力を受け付けたこと表すデータ出力受け付け信号を、外部インターフェース部30に出力してもよい。
一方、出力バッファデータ量管理部2431は、画素データのデータ量を監視した結果、外部出力データとして出力する画素データが出力バッファ2422に記憶されていない場合、いずれの出力バッファ2422からも、画素データを読み出すことができない状態であると判定する。この場合、出力バッファデータ量管理部2431は、データ出力要求信号による外部出力データ(画素データ)の出力を受け付けることができない状態であることを表すデータ出力受け付け信号を、外部インターフェース部30に出力してもよい。なお、このときのデータ出力受け付け信号は、外部出力データ(画素データ)の出力を受け付けることができない状態であることを、データ出力受け付け信号の論理レベルで表してもよいし、データ出力受け付け信号と異なる信号で表してもよい。
出力バッファ読み出し管理部2432は、出力バッファデータ量管理部2431から出力された出力バッファリード制御信号OBRCに基づいて、出力バッファ部242に記憶された入力データ(画素データ)の読み出し(出力)を制御するための制御信号を出力バッファ部242に出力する。
より具体的には、出力バッファ読み出し管理部2432は、出力バッファリード制御信号OBRCに含まれる、画素データの書き込みが完了していると判定した出力バッファ2422の情報に基づいて、記憶された画素データの読み出す(出力する)出力バッファ2422を選択するための出力バッファリード選択信号OBRSを、出力バッファ部242に備えたセレクタ2423に出力する。また、出力バッファ読み出し管理部2432は、出力バッファデータ量管理部2431から出力された出力バッファリード制御信号OBRCに応じて、記憶された画素データを読み出して接続された外部インターフェース部30に出力するタイミングを表す出力バッファリード信号OBRを、出力バッファ部242内の選択した出力バッファ2422に出力する。これにより、出力バッファ部242は、出力バッファリード信号OBRに応じて、記憶している画素データを読み出して、外部出力データとして外部インターフェース部30に出力する。このとき、出力バッファ読み出し管理部2432は、出力バッファ2422から外部出力データとして読み出した(出力した)ユニットラインに含まれるそれぞれの画素データが、有効な画素データであるか否かを表す出力データ有効信号を、外部インターフェース部30に出力する。
ここで、入出力用モジュール24における外部出力部の動作について説明する。図4は、本発明の第1の実施形態における画像処理装置1内の画像処理部20に備えた入出力用モジュール24における外部出力部(画像処理モジュール入力制御部241、出力バッファ部242、および外部出力制御部243)の動作の一例を示したタイミングチャートである。図4には、入出力用モジュール24が、前段に接続された画像処理モジュール23から接続されている外部インターフェース部30への画素データの受け渡しの一例を示している。つまり、図4には、入出力用モジュール24が、前段に接続された画像処理モジュール23に入力データ(画素データ)を要求して出力バッファ部242に画素データを一時記憶し、接続されている外部インターフェース部30、すなわち、外部拡張処理装置600からのデータ出力の要求に応じて出力バッファ部242に記憶している画素データを外部出力データとして出力する動作の一例を示している。
図4には、前段に接続された画像処理モジュール23と入出力用モジュール24との間でやり取りされるデータリクエスト信号、データアクノリッジ信号、データ有効信号、および入力データのタイミングを示している。また、図4には、出力バッファ部242に備えた出力バッファ2422−1および出力バッファ2422−2のそれぞれの動作の状態を示している。また、図4には、外部インターフェース部30と入出力用モジュール24との間でやり取りされるデータ出力要求信号、出力データ有効信号、および外部出力データのタイミングを示している。
なお、図4の説明においては、4つのユニットラインを1つの処理単位として、外部インターフェース部30との間で画素データの受け渡しを行うものとして説明する。また、図4の説明においては、出力バッファ部242に備えた出力バッファ2422−1と出力バッファ2422−2とのいずれにも、前段に接続された画像処理モジュール23から出力された入力データ(画素データ)を一時記憶していない、つまり、両方の出力バッファ2422が共に、記憶容量が空いている状態からの動作を説明する。
上述した状態のとき、画像処理モジュール入力制御部241に備えた出力バッファ空き容量管理部2411は、1つ目のユニットラインの入力データ(画素データ)の出力を要求するデータリクエスト信号を、前段に接続された画像処理モジュール23に出力する。その後、出力バッファ空き容量管理部2411は、前段に接続された画像処理モジュール23から、出力したデータリクエスト信号に応じて1つ目のユニットラインの画素データを出力することを表すデータアクノリッジ信号が入力されると、データリクエスト信号を入力データ(画素データ)の出力を要求しない状態にする。そして、出力バッファ空き容量管理部2411は、前段に接続された画像処理モジュール23から出力された1つ目のユニットラインの入力データ(画素データ)を受け取って、出力バッファ2422−1に書き込む(一時記憶する)ことを指示する出力バッファライト制御信号OBWCを、出力バッファ書き込み管理部2412に出力する。なお、前段に接続された画像処理モジュール23は、入出力用モジュール24から出力されたデータリクエスト信号が1つ目のユニットラインの入力データ(画素データ)の出力を要求しない状態になると、入出力用モジュール24がデータアクノリッジ信号を認識したと判定して、データアクノリッジ信号を、画素データを出力しない状態にする。
なお、図4においては、データリクエスト信号の“High”レベルが、入出力用モジュール24が入力データ(画素データ)を受け付けることができる状態であることを表し、データリクエスト信号の“Low”レベルが、入力データ(画素データ)を受け付けることができない状態であることを表している。また、図4においては、データアクノリッジ信号の“High”レベルが、データリクエスト信号に応じて前段に接続された画像処理モジュール23が画素データを出力することを表し、データアクノリッジ信号の“Low”レベルが、画素データを出力しないことを表している。
そして、前段に接続された画像処理モジュール23は、入出力用モジュール24が出力したデータリクエスト信号に応じて、1つ目のユニットラインの画素データを順次出力する。このとき、前段に接続された画像処理モジュール23は、出力している画素データが有効な画素データであるときに、データ有効信号を出力する。
なお、図4においては、データ有効信号の“High”レベルが、前段に接続された画像処理モジュール23が出力している画素データが有効な画素データあることを表し、データ有効信号の“Low”レベルが、画素データが有効ではない、つまり、無効な画素データであることを表している。
画像処理モジュール入力制御部241に備えた出力バッファ書き込み管理部2412は、出力バッファ空き容量管理部2411から出力された出力バッファライト制御信号OBWCに基づいて、出力バッファ2422−1を選択することを表す出力バッファライト選択信号OBWSを、出力バッファ部242に備えたセレクタ2421に出力する。これにより、出力バッファ部242は、前段に接続された画像処理モジュール23から出力された1つ目のユニットラインの入力データ(画素データ)を出力バッファ2422−1に書き込む(一時記憶する)状態になる。そして、出力バッファ書き込み管理部2412は、前段に接続された画像処理モジュール23から出力されたデータ有効信号に基づいて、画像処理モジュール23から順次出力された有効な画素データを順次書き込むための出力バッファライト信号OBWを、出力バッファ2422−1に出力する。これにより、出力バッファ2422−1に、前段に接続された画像処理モジュール23から順次出力された、1つ目のユニットラインの有効な画素データが書き込まれて(ライトされて)一時記憶される。
このとき、出力バッファ空き容量管理部2411は、出力バッファ2422−1において空いている記憶容量を監視した結果、現在入力されている入力データ(画素データ)を書き込んだ場合でも、依然として出力バッファ2422−1に空いている記憶容量があると判定した場合には、再度、入力データ(画素データ)の出力を要求するデータリクエスト信号を、前段に接続された画像処理モジュール23に出力する。つまり、出力バッファ空き容量管理部2411は、出力バッファ2422−1が2つ目のユニットラインの入力データ(画素データ)を書き込む(一時記憶する)ことができる状態である場合には、2つ目のユニットラインの入力データ(画素データ)の出力を要求するデータリクエスト信号を、前段に接続された画像処理モジュール23に出力する。これにより、前段に接続された画像処理モジュール23は、再度出力されたデータリクエスト信号(2つ目のユニットラインのデータリクエスト信号)に応じて、データアクノリッジ信号を、2つ目のユニットラインの画素データを出力することを表す状態にする。
そして、前段に接続された画像処理モジュール23は、現在出力している1つ目のユニットラインの入力データ(画素データ)の出力が終了すると、引き続き、入出力用モジュール24から再度出力されたデータリクエスト信号に応じて、2つ目のユニットラインの画素データおよびデータ有効信号を出力する。そして、出力バッファ書き込み管理部2412は、引き続き、前段に接続された画像処理モジュール23から順次出力された、2つ目のユニットラインの有効な画素データを、出力バッファ2422−1に書き込む。
このようにして、出力バッファ空き容量管理部2411および出力バッファ書き込み管理部2412は、出力バッファ2422−1において空いている記憶容量がなくなるまで、つまり、4つ目のユニットラインの入力データ(画素データ)を書き込むまで、前段に接続された画像処理モジュール23から順次出力された、それぞれのユニットラインの入力データ(画素データ)の出力バッファ2422−1への書き込みを繰り返す。そして、出力バッファ2422−1において空いている記憶容量がなくなると、出力バッファ空き容量管理部2411および出力バッファ書き込み管理部2412は、引き続き、同様にして、前段に接続された画像処理モジュール23から順次出力された有効な画素データの出力バッファ2422−2への書き込みを行う。つまり、出力バッファ空き容量管理部2411および出力バッファ書き込み管理部2412は、出力バッファ2422−1への4つ分のユニットラインの入力データ(画素データ)の書き込みが完了すると、引き続き、同様にして、前段に接続された画像処理モジュール23から順次出力された、5つ目以降のユニットラインの有効な画素データの出力バッファ2422−2への書き込みを行う。
また、接続されている外部インターフェース部30からデータ出力要求信号が入力されると、外部出力制御部243に備えた出力バッファデータ量管理部2431は、画像処理モジュール入力制御部241によって出力バッファ2422−1に書き込まれている有効な画素データのデータ量を監視する。そして、出力バッファデータ量管理部2431は、出力バッファ2422−1への4つ分のユニットラインの画素データの書き込みが完了する、つまり、出力バッファ2422−1において空いている記憶容量がなくなると、出力バッファ2422−1に記憶している画素データを読み出す(出力する)ことを指示する出力バッファリード制御信号OBRCを、出力バッファ読み出し管理部2432に出力する。
なお、図4においては、データ出力要求信号の“High”レベルが、外部インターフェース部30が外部出力データ(画素データ)の出力を要求している状態であることを表し、データ出力要求信号の“Low”レベルが、外部出力データ(画素データ)の出力を要求していない状態であることを表している。
外部出力制御部243に備えた出力バッファ読み出し管理部2432は、出力バッファデータ量管理部2431から出力された出力バッファリード制御信号OBRCに基づいて、出力バッファ2422−1を選択することを表す出力バッファリード選択信号OBRSを、出力バッファ部242に備えたセレクタ2423に出力する。これにより、出力バッファ部242は、出力バッファ2422−1に記憶している4つ分のユニットラインの画素データを読み出して外部インターフェース部30に出力する状態になる。そして、出力バッファ読み出し管理部2432は、出力バッファ2422−1から画素データを順次読み出すための出力バッファリード信号OBRを、出力バッファ2422−1に出力する。これにより、出力バッファ2422−1に記憶している4つ分のユニットラインの画素データが順次読み出され(リードされ)、外部出力データとして外部インターフェース部30に順次出力される。このとき、出力バッファ読み出し管理部2432は、出力バッファ2422−1から読み出して外部出力データとして出力している画素データが有効な画素データであるときに、出力データ有効信号を出力する。
なお、図4においては、出力データ有効信号の“High”レベルが、外部インターフェース部30に出力している外部出力データが有効な画素データあることを表し、出力データ有効信号の“Low”レベルが、画素データが有効ではない、つまり、無効な外部出力データであることを表している。
その後、外部インターフェース部30から、再度、データ出力要求信号が入力されると、出力バッファデータ量管理部2431および出力バッファ読み出し管理部2432は、出力バッファ2422−2への画素データの書き込みが完了した後に、引き続き、同様にして、出力バッファ2422−2に記憶している画素データを順次読み出して、外部出力データとして外部インターフェース部30に順次出力させる。つまり、出力バッファデータ量管理部2431および出力バッファ読み出し管理部2432は、出力バッファ2422−2への次の(5つ目以降の)4つ分のユニットラインの画素データの書き込みが完了すると、引き続き、同様にして、出力バッファ2422−2に記憶している5つ目以降の4つ分のユニットラインの画素データを順次読み出して、外部出力データとして外部インターフェース部30に順次出力させる。
このようにして、入出力用モジュール24における外部出力部は、前段に接続された画像処理モジュール23から出力された入力データ(画素データ)を出力バッファ2422に一旦記憶し、接続されている外部インターフェース部30からのデータ出力の要求に応じて、出力バッファ2422に記憶している画素データを読み出して、外部出力データとして出力する。
続いて、図3に戻って、入出力用モジュール24における外部入力部について説明する。
入力バッファ部245は、上述したように、入出力用モジュール24に入力された外部入力データ(外部処理画素データ)を、一時的に記憶するデータバッファである。図3には、出力バッファ部242と同様に、データバッファを2つ備えたダブルバッファの構成の入力バッファ部245を示している。入力バッファ部245では、それぞれのデータバッファにおける外部処理画素データの記憶(書き込み)と出力(読み出し)とを逆の動作に交互に切り替えることによって、1つの処理単位の外部処理画素データの書き込みと読み出しとを同時期に行うことができるように動作する。図3に示した入力バッファ部245は、セレクタ2451と、2つの入力バッファ2452−1および入力バッファ2452−2と、セレクタ2453と、を備えている。
セレクタ2451は、入力バッファ部245において外部処理画素データを書き込むデータバッファを選択する選択部である。セレクタ2451は、外部入力制御部244から出力された入力バッファライト選択信号IBWSに応じて、入力バッファ2452−1または入力バッファ2452−2のいずれか一方の入力バッファ2452を、外部処理画素データを書き込むデータバッファとして選択する。そして、セレクタ2451は、入出力用モジュール24に入力された外部入力データ(外部処理画素データ)を、選択した入力バッファ2452−1または入力バッファ2452−2のいずれか一方の入力バッファ2452に出力する。
セレクタ2453は、入力バッファ部245において記憶している外部処理画素データを読み出すデータバッファを選択する選択部である。セレクタ2453は、画像処理モジュール出力制御部246から出力された入力バッファリード選択信号IBRSに応じて、入力バッファ2452−1または入力バッファ2452−2のいずれか一方の入力バッファ2452を、記憶している外部処理画素データを読み出すデータバッファとして選択する。そして、セレクタ2453は、選択した入力バッファ2452−1または入力バッファ2452−2のいずれか一方の入力バッファ2452から読み出された外部処理画素データを、出力データとして後段に接続された画像処理モジュール23に出力する。
入力バッファ2452−1および入力バッファ2452−2のそれぞれは、予め定めた数のユニットライン分の外部処理画素データを一時的に記憶する記憶容量のデータバッファである。セレクタ2451によって外部処理画素データを書き込むデータバッファとして選択された入力バッファ2452−1または入力バッファ2452−2のいずれか一方の入力バッファ2452は、外部入力制御部244から出力された入力バッファライト信号IBWに応じて、セレクタ2451を介して入力された外部入力データ(外部処理画素データ)を書き込む(記憶する)。一方、セレクタ2453によって記憶している外部処理画素データを読み出すデータバッファとして選択された入力バッファ2452−1または入力バッファ2452−2のいずれか一方の入力バッファ2452は、画像処理モジュール出力制御部246から出力された入力バッファリード信号IBRに応じて、記憶している外部処理画素データを読み出して、セレクタ2453に出力する。
外部入力制御部244は、上述したように、外部インターフェース部30から出力された外部入力データ(外部処理画素データ)の入力バッファ部245への記憶(書き込み)を制御する。図3に示した外部入力制御部244は、入力バッファ空き容量管理部2441と、入力バッファ書き込み管理部2442と、を備えている。
入力バッファ空き容量管理部2441は、入力バッファ部245に備えた入力バッファ2452−1および入力バッファ2452−2のそれぞれの記憶容量を監視し、記憶容量を監視した結果に応じて、入力バッファ2452への外部入力データ(外部処理画素データ)の記憶(書き込み)を、入力バッファ書き込み管理部2442に指示する。
より具体的には、入力バッファ空き容量管理部2441は、画像処理モジュール出力制御部246によって読み出されていない外部処理画素データを記憶している入力バッファ2452とは異なる他方の入力バッファ2452に、接続されている外部インターフェース部30から出力された外部入力データ(外部処理画素データ)を書き込む(一時記憶する)ための空いている記憶容量があるか否かを監視する。そして、入力バッファ空き容量管理部2441は、空いている記憶容量を監視した結果、画像処理モジュール出力制御部246によって読み出されるべき外部処理画素データをすでに記憶している入力バッファ2452とは異なる方の入力バッファ2452に空いている記憶容量がある場合、この入力バッファ2452は、外部インターフェース部30から出力された外部入力データ(外部処理画素データ)を書き込むことができる状態であると判定する。この場合、入力バッファ空き容量管理部2441は、外部インターフェース部30から外部入力データ(外部処理画素データ)の入力を要求するデータ入力要求信号が入力されると、データ入力要求信号に対応する外部入力データ(外部処理画素データ)を受け取って書き込む(一時記憶する)ことを指示する入力バッファライト制御信号IBWCを、入力バッファ書き込み管理部2442に出力する。なお、入力バッファ空き容量管理部2441が出力する入力バッファライト制御信号IBWCには、空いている記憶容量があると判定した入力バッファ2452の情報が含まれている。
なお、入力バッファ空き容量管理部2441は、データ入力要求信号による外部入力データ(外部処理画素データ)の入力を受け付けたこと表すデータ入力受け付け信号を、外部インターフェース部30に出力してもよい。なお、入力バッファ空き容量管理部2441は、空いている記憶容量を監視した結果、入力バッファ2452に空いている記憶容量がない場合、いずれの入力バッファ2452にも、外部インターフェース部30から出力された外部入力データ(外部処理画素データ)を書き込むことができない状態であると判定する。この場合、入力バッファ空き容量管理部2441は、外部入力データを受け付けることができない状態であることを表すデータ入力受け付け信号を、接続されている外部インターフェース部30に出力してもよい。なお、入力バッファ空き容量管理部2441は、外部入力データ(外部処理画素データ)の出力を要求する、または要求しないことを、データ入力受け付け信号と異なる信号(例えば、外部データ出力要求信号など、)で表してもよい。
入力バッファ書き込み管理部2442は、入力バッファ空き容量管理部2441から出力された入力バッファライト制御信号IBWCに基づいて、外部入力データ(外部処理画素データ)の書き込みを制御するための制御信号を入力バッファ部245に出力する。
より具体的には、入力バッファ書き込み管理部2442は、入力バッファライト制御信号IBWCに含まれる、空いている記憶容量があると判定した入力バッファ2452の情報に基づいて、外部インターフェース部30から出力された外部入力データ(外部処理画素データ)を書き込む(一時記憶する)入力バッファ2452を選択するための入力バッファライト選択信号IBWSを、入力バッファ部245に備えたセレクタ2451に出力する。また、入力バッファ書き込み管理部2442は、入力バッファ空き容量管理部2441から出力された入力バッファライト制御信号IBWCに応じて、外部インターフェース部30から出力された外部入力データ(外部処理画素データ)を書き込むタイミングを表す入力バッファライト信号IBWを、入力バッファ部245内の選択した入力バッファ2452に出力する。このとき、入力バッファ書き込み管理部2442は、外部インターフェース部30から外部入力データ(外部処理画素データ)と共に出力された、ユニットラインに含まれるそれぞれの外部処理画素データが、有効な外部処理画素データであるか否かを表す入力データ有効信号に基づいて、現在入力された外部入力データが有効な外部処理画素データであるか否かを判定する。そして、入力バッファ書き込み管理部2442は、有効な外部入力データ(外部処理画素データ)のみを書き込むタイミングの入力バッファライト信号IBWを入力バッファ2452に出力する。これにより、入力バッファ部245は、有効な外部入力データ(外部処理画素データ)のみを、選択された入力バッファ2452に書き込む(一時記憶する)。
画像処理モジュール出力制御部246は、上述したように、入力バッファ部245に記憶された外部入力データ(外部処理画素データ)の出力(読み出し)を制御する。図3に示した画像処理モジュール出力制御部246は、入力バッファデータ量管理部2461と、入力バッファ読み出し管理部2462と、を備えている。
入力バッファデータ量管理部2461は、入力バッファ部245に備えた入力バッファ2452−1および入力バッファ2452−2のそれぞれの記憶容量を監視し、記憶容量を監視した結果に応じて、入力バッファ2452に記憶している外部処理画素データの出力(読み出し)を、入力バッファ読み出し管理部2462に指示する。
より具体的には、入力バッファデータ量管理部2461は、外部入力制御部244によって外部入力データ(外部処理画素データ)の書き込みがされている入力バッファ2452とは異なる他方の入力バッファ2452に書き込みが完了している外部入力データ(外部処理画素データ)のデータ量を監視する。そして、入力バッファデータ量管理部2461は、外部処理画素データのデータ量を監視した結果、後段に接続された画像処理モジュール23に出力データとして出力する外部処理画素データがすでに入力バッファ2452に記憶されている場合、この入力バッファ2452は、外部処理画素データを読み出して後段に接続された画像処理モジュール23に出力することができる状態であると判定する。この場合、入力バッファデータ量管理部2461は、後段に接続された画像処理モジュール23から出力データ(外部処理画素データ)の出力を要求するデータリクエスト信号が入力されると、データリクエスト信号に対応する出力データ(外部処理画素データ)を読み出す(出力する)ことを指示する入力バッファリード制御信号IBRCを、入力バッファ読み出し管理部2462に出力する。なお、入力バッファデータ量管理部2461が出力する入力バッファリード制御信号IBRCには、外部処理画素データの書き込みが完了していると判定した入力バッファ2452の情報が含まれている。また、入力バッファデータ量管理部2461は、データリクエスト信号による出力データ(外部処理画素データ)の出力を受け付けたこと表すデータアクノリッジ信号を、後段に接続された画像処理モジュール23に出力する。
一方、入力バッファデータ量管理部2461は、外部処理画素データのデータ量を監視した結果、出力データとして出力する外部処理画素データが入力バッファ2452に記憶されていない場合、いずれの入力バッファ2452からも、外部処理画素データを読み出すことができない状態であると判定する。この場合、入力バッファデータ量管理部2461は、データリクエスト信号による出力データ(外部処理画素データ)の出力を受け付けることができない状態であることを表すデータアクノリッジ信号を、後段に接続された画像処理モジュール23に出力する。なお、このときのデータアクノリッジ信号は、出力データ(外部処理画素データ)の出力を受け付けることができない状態であることを、データアクノリッジ信号の論理レベルで表してもよいし、データアクノリッジ信号と異なる信号で表してもよい。
入力バッファ読み出し管理部2462は、入力バッファデータ量管理部2461から出力された入力バッファリード制御信号IBRCに基づいて、入力バッファ部245に記憶された外部入力データ(外部処理画素データ)の読み出し(出力)を制御するための制御信号を入力バッファ部245に出力する。
より具体的には、入力バッファ読み出し管理部2462は、入力バッファリード制御信号IBRCに含まれる、外部処理画素データの書き込みが完了していると判定した入力バッファ2452の情報に基づいて、記憶された外部処理画素データの読み出す(出力する)入力バッファ2452を選択するための入力バッファリード選択信号IBRSを、入力バッファ部245に備えたセレクタ2453に出力する。また、入力バッファ読み出し管理部2462は、入力バッファデータ量管理部2461から出力された入力バッファリード制御信号IBRCに応じて、記憶された外部処理画素データを読み出して後段に接続された画像処理モジュール23に出力するタイミングを表す入力バッファリード信号IBRを、入力バッファ部245内の選択した入力バッファ2452に出力する。これにより、入力バッファ部245は、入力バッファリード信号IBRに応じて、記憶している外部処理画素データを読み出して、出力データとして後段に接続された画像処理モジュール23に出力する。このとき、入力バッファ読み出し管理部2462は、入力バッファ2452から出力データとして読み出した(出力した)ユニットラインに含まれるそれぞれの外部処理画素データが、有効な外部処理画素データであるか否かを表すデータ有効信号を、後段に接続された画像処理モジュール23に出力する。
ここで、入出力用モジュール24における外部入力部の動作について説明する。図5は、本発明の第1の実施形態における画像処理装置1内の画像処理部20に備えた入出力用モジュール24における外部入力部(外部入力制御部244、入力バッファ部245、および画像処理モジュール出力制御部246)の動作の一例を示したタイミングチャートである。図5には、入出力用モジュール24が、接続されている外部インターフェース部30から後段に接続された画像処理モジュール23への外部処理画素データの受け渡しの一例を示している。つまり、図5には、入出力用モジュール24が、接続されている外部インターフェース部30から出力された外部入力データ(外部処理画素データ)を一時記憶し、後段に接続された画像処理モジュール23からのデータ出力の要求に応じて入力バッファ部245に記憶している外部処理画素データを出力データとして出力する動作の一例を示している。
図5には、接続されている外部インターフェース部30と入出力用モジュール24との間でやり取りされるデータ入力要求信号、入力データ有効信号、および外部入力データのタイミングを示している。また、図5には、入力バッファ部245に備えた入力バッファ2452−1および入力バッファ2452−2のそれぞれの動作の状態を示している。また、図5には、後段に接続された画像処理モジュール23と入出力用モジュール24との間でやり取りされるデータリクエスト信号、データアクノリッジ信号、データ有効信号、および出力データのタイミングを示している。
なお、図5の説明においては、4つのユニットラインを1つの処理単位として、後段に接続された画像処理モジュール23との間で外部処理画素データの受け渡しを行うものとして説明する。また、図5の説明においては、入力バッファ部245に備えた入力バッファ2452−1と入力バッファ2452−2とのいずれにも、外部インターフェース部30から出力された外部入力データ(外部処理画素データ)を一時記憶していない、つまり、両方の入力バッファ2452が共に、記憶容量が空いている状態からの動作を説明する。
上述した状態のとき、接続されている外部インターフェース部30から1つ目の処理単位の外部入力データ(外部処理画素データ)の入力を要求するデータ入力要求信号が入力されると、外部入力制御部244に備えた入力バッファ空き容量管理部2441は、外部入力データ(外部処理画素データ)を書き込む(一時記憶する)ための空いている記憶容量が、入力バッファ2452−1にあるか否かを監視する。そして、入力バッファ空き容量管理部2441は、データ入力要求信号に対応する1つ目の処理単位の外部入力データ(外部処理画素データ)を受け取って、入力バッファ2452−1に書き込む(一時記憶する)ことを指示する入力バッファライト制御信号IBWCを、入力バッファ書き込み管理部2442に出力する。
なお、図5においては、データ入力要求信号の“High”レベルが、外部インターフェース部30が外部入力データ(外部処理画素データ)の入力を要求することを表し、外部インターフェース部30の“Low”レベルが、外部入力データ(外部処理画素データ)の入力を要求しないことを表している。
そして、外部インターフェース部30は、有効な外部処理画素データであることを表す入力データ有効信号と共に、1つ目の処理単位の外部処理画素データを出力する。
なお、図5においては、入力データ有効信号の“High”レベルが、外部インターフェース部30が出力している外部処理画素データが有効な外部処理画素データあることを表し、入力データ有効信号の“Low”レベルが、外部処理画素データが有効ではない、つまり、無効な外部処理画素データであることを表している。
外部入力制御部244に備えた入力バッファ書き込み管理部2442は、入力バッファ空き容量管理部2441から出力された入力バッファライト制御信号IBWCに基づいて、入力バッファ2452−1を選択することを表す入力バッファライト選択信号IBWSを、入力バッファ部245に備えたセレクタ2451に出力する。これにより、入力バッファ部245は、外部インターフェース部30から出力された1つ目の処理単位の外部入力データ(外部処理画素データ)を入力バッファ2452−1に書き込む(一時記憶する)状態になる。そして、入力バッファ書き込み管理部2442は、外部インターフェース部30から出力された入力データ有効信号に基づいて、外部インターフェース部30から順次出力された有効な外部処理画素データを順次書き込むための入力バッファライト信号IBWを、入力バッファ2452−1に出力する。これにより、入力バッファ2452−1に、外部インターフェース部30から順次出力された1つ目の処理単位の有効な外部処理画素データが書き込まれて(ライトされて)一時記憶される。
そして、外部インターフェース部30は、現在出力している1つ目の処理単位の外部入力データ(外部処理画素データ)の出力が終了すると、引き続き、2つ目の処理単位の外部入力データ(外部処理画素データ)の入力を要求するデータ入力要求信号を出力し、有効な外部処理画素データであることを表す入力データ有効信号と共に、2つ目の処理単位の外部処理画素データを出力する。
このとき、入力バッファ空き容量管理部2441は、外部インターフェース部30から出力されたデータ入力要求信号に対応する2つ目の処理単位の外部入力データ(外部処理画素データ)を受け取って、入力バッファ2452−2に書き込む(一時記憶する)ことを指示する入力バッファライト制御信号IBWCを、入力バッファ書き込み管理部2442に出力する。そして、入力バッファ書き込み管理部2442は、入力バッファ空き容量管理部2441から出力された2つ目の処理単位の入力バッファライト制御信号IBWCに基づいて、引き続き、外部インターフェース部30から順次出力された2つ目の処理単位の有効な外部処理画素データを受け取って、入力バッファ2452−2に書き込んで(ライトして)一時記憶させる。
このようにして、入力バッファ空き容量管理部2441および入力バッファ書き込み管理部2442は、接続されている外部インターフェース部30から順次出力された外部入力データ(外部処理画素データ)を、入力バッファ2452−1および入力バッファ2452−2に書き込む。
また、後段に接続された画像処理モジュール23から1つ目のユニットラインの出力データ(外部処理画素データ)の出力を要求するデータリクエスト信号が入力されると、画像処理モジュール出力制御部246に備えた入力バッファデータ量管理部2461は、外部入力制御部244によって入力バッファ2452−1に書き込まれている有効な外部処理画素データのデータ量を監視する。そして、入力バッファデータ量管理部2461は、入力バッファ2452−1への1つ目の処理単位の外部処理画素データの書き込みが完了する、つまり、入力バッファ2452−1において空いている記憶容量がなくなると、データリクエスト信号による1つ目のユニットラインの外部処理画素データの出力を受け付けたこと表すデータアクノリッジ信号を、後段に接続された画像処理モジュール23に出力する。これにより、後段に接続された画像処理モジュール23は、1つ目のユニットラインの外部処理画素データの出力を要求するデータリクエスト信号を、出力データ(外部処理画素データ)の出力を要求しない状態にする。そして、入力バッファデータ量管理部2461は、入力バッファ2452−1に記憶している1つ目のユニットラインの外部処理画素データを読み出して出力することを指示する入力バッファリード制御信号IBRCを、入力バッファ読み出し管理部2462に出力する。
なお、図5においては、データリクエスト信号の“High”レベルが、後段に接続された画像処理モジュール23が出力データ(外部処理画素データ)の出力を要求している状態であることを表し、データリクエスト信号の“Low”レベルが、出力データ(外部処理画素データ)の出力を要求していない状態であることを表している。
画像処理モジュール出力制御部246に備えた入力バッファ読み出し管理部2462は、入力バッファデータ量管理部2461から出力された入力バッファリード制御信号IBRCに基づいて、入力バッファ2452−1を選択することを表す入力バッファリード選択信号IBRSを、入力バッファ部245に備えたセレクタ2453に出力する。これにより、入力バッファ部245は、入力バッファ2452−1に記憶している外部処理画素データを読み出して後段に接続された画像処理モジュール23に出力する状態になる。そして、入力バッファ読み出し管理部2462は、入力バッファ2452−1から1つ目のユニットラインの外部処理画素データを順次読み出すための入力バッファリード信号IBRを、入力バッファ2452−1に出力する。これにより、入力バッファ2452−1に記憶している1つ目のユニットラインの外部処理画素データが順次読み出され(リードされ)、1つ目のユニットラインの出力データとして、後段に接続された画像処理モジュール23に順次出力される。このとき、入力バッファ読み出し管理部2462は、入力バッファ2452−1から読み出して出力データとして出力している1つ目のユニットラインの外部処理画素データが有効な外部処理画素データであるときに、データ有効信号を出力する。
なお、図5においては、データ有効信号の“High”レベルが、後段に接続された画像処理モジュール23に出力している出力データが有効な外部処理画素データあることを表し、データ有効信号の“Low”レベルが、外部処理画素データが有効ではない、つまり、無効な出力データであることを表している。
その後、後段に接続された画像処理モジュール23から、2つ目のユニットラインの出力データ(外部処理画素データ)の出力を要求するデータリクエスト信号が入力されると、入力バッファデータ量管理部2461は、2つ目のユニットラインの外部処理画素データの出力を受け付けたこと表すデータアクノリッジ信号を、後段に接続された画像処理モジュール23に出力する。そして、入力バッファデータ量管理部2461は、現在出力している1つ目のユニットラインの外部処理画素データの読み出しが完了した後に、引き続き、入力バッファ2452−1に記憶している2つ目のユニットラインの外部処理画素データを読み出して出力することを指示する入力バッファリード制御信号IBRCを、入力バッファ読み出し管理部2462に出力する。これにより、入力バッファ読み出し管理部2462は、引き続き、入力バッファ2452−1から2つ目のユニットラインの外部処理画素データを順次読み出して、2つ目のユニットラインの出力データとして、データ有効信号と共に、後段に接続された画像処理モジュール23に順次出力する。
このようにして、入力バッファデータ量管理部2461および入力バッファデータ量管理部2461は、後段に接続された画像処理モジュール23から入力されたデータリクエスト信号に応じて、全ての外部処理画素データの読み出しが完了するまで、つまり、4つ目のユニットラインの出力データ(外部処理画素データ)の出力が終了するまで、入力バッファ2452−1に記憶している外部処理画素データの読み出しを繰り返す。そして、入力バッファ2452−1に記憶している外部処理画素データの読み出しが完了すると、入力バッファデータ量管理部2461および入力バッファデータ量管理部2461は、後段に接続された画像処理モジュール23から入力されたデータリクエスト信号に応じて、引き続き、同様にして、入力バッファ2452−2に記憶している外部処理画素データの読み出しを行う。つまり、入力バッファデータ量管理部2461および入力バッファデータ量管理部2461は、入力バッファ2452−1からの4つ分のユニットラインの出力データ(外部処理画素データ)の出力が完了すると、引き続き、同様にして、入力バッファ2452−2からの5つ目以降のユニットラインの出力データ(外部処理画素データ)を、後段に接続された画像処理モジュール23に出力する。
このようにして、入出力用モジュール24における外部入力部は、接続されている外部インターフェース部30から出力された外部入力データ(外部処理画素データ)を入力バッファ部245に一旦記憶し、後段に接続された画像処理モジュール23からのデータ出力の要求に応じて、入力バッファ部245に記憶している外部処理画素データを読み出して、出力データとして出力する。
このような構成によって画像処理部20に備えた入出力用モジュール24は、前段に接続された画像処理モジュール23から出力された入力データ(画素データ)の接続されている外部インターフェース部30への出力と、外部インターフェース部30から出力された外部入力データ(外部処理画素データ)の後段に接続された画像処理モジュール23への出力とを行う。これにより、入出力用モジュール24は、画像処理部20においてパイプラインが構成された、前段に接続された画像処理モジュール23と後段に接続された画像処理モジュール23との間に、外部インターフェース部30によって接続された外部拡張処理装置600による外部画像処理を組み込むことができる。
なお、図3に示した入出力用モジュール24の構成では、リクエスト信号、アクノリッジ信号、および有効信号によって、前段または後段に接続された画像処理モジュール23や、外部インターフェース部30との間で画素データのやり取りをする構成を示した。しかし、入出力用モジュール24が、前段または後段に接続された画像処理モジュール23や、外部インターフェース部30との間で画素データをやり取りする方法は、リクエスト信号、アクノリッジ信号、および有効信号による方法に限定されるものではなく、他の様々な方法によるデータの伝送方法を採用してもよい。
次に、入出力用モジュール24によって外部拡張処理装置600による外部画像処理を組み込んだパイプライン処理におけるデータの流れについて説明する。図6は、本発明の第1の実施形態における画像処理装置1内の画像処理部20に備えた入出力用モジュール24を含んだ画素データの流れを模式的に示した図である。図6には、画像処理部20において構成されたパイプライン処理の中に、外部拡張処理装置600による外部画像処理を組み込んだときの画素データの流れを示している。より具体的には、図1に示した撮像装置100の構成において、画像処理装置1内の画像処理部20に備えた画像処理モジュール23−2と画像処理モジュール23−3との間に入出力用モジュール24を組み込むことによって、外部拡張処理装置600による外部画像処理を、パイプライン処理による一連の画像処理に組み込んだときの画素データの流れを示している。
画像処理装置1に備えた画像処理部20におけるパイプライン処理では、画像処理モジュール23や外部拡張処理装置600のそれぞれが、前段の画像処理モジュール23または外部拡張処理装置600から出力された画素データに対する予め定めた画像処理を並列に行うことによって、パイプライン処理がスムーズに行われるようにしている。言い換えれば、画像処理モジュール23や外部拡張処理装置600のそれぞれは、同じ時期に異なる画像処理を行っている。しかし、図6に示した画素データの流れの説明では、説明を容易にするため、1つの処理単位の画素データに着目して、データの流れを説明する。図6に示した画素データの流れでは、以下のような流れ(フロー)で処理が行われる。
(フローF1):まず、入力DMAモジュール22が、DRAM500に記憶されているブロック画像データに含まれるそれぞれの画素データを、DMAバス10を介したDMAによってユニットラインごとに読み出す。そして、入力DMAモジュール22は、読み出した画素データを、接続切り替え部21を介して、次に画像処理を行う接続先の画像処理モジュール23−1に出力する。
(フローF2):続いて、画像処理モジュール23−1は、接続切り替え部21を介して接続先の入力DMAモジュール22から出力された画素データに対して予め定めた画像処理を施し、画像処理を施した後の処理画素データを、接続切り替え部21を介して、次に画像処理を行う接続先の画像処理モジュール23−2に出力する。
(フローF3):続いて、画像処理モジュール23−2は、接続切り替え部21を介して接続先の画像処理モジュール23−1から出力された処理画素データに対して予め定めた画像処理を施し、画像処理をさらに施した後の処理画素データを、接続切り替え部21を介して、次に画像処理を行う外部拡張処理装置600に出力する。このとき、接続切り替え部21は、画像処理モジュール23−2から出力された処理画素データを、入出力用モジュール24に出力する。
(フローF4):続いて、入出力用モジュール24は、接続切り替え部21を介して接続先の画像処理モジュール23−2から出力された処理画素データを、DMAバス10を介さずに直接、外部インターフェース部30に出力し、外部インターフェース部30を介して、外部拡張処理装置600に伝送する。
(フローF5):続いて、外部拡張処理装置600は、画像処理装置1に備えた外部インターフェース部30を介して伝送された処理画素データを外部インターフェース部630によって受け取り、DMAバス610を介して拡張処理モジュール620に出力する。そして、拡張処理モジュール620は、DMAバス610を介して外部インターフェース部630から出力された処理画素データに対して予め定めた外部画像処理を施し、外部画像処理を施した後の処理画素データ(外部処理画素データ)を、DMAバス610を介して外部インターフェース部630に出力する。
(フローF6):続いて、外部インターフェース部630は、DMAバス610を介して拡張処理モジュール620から出力された外部処理画素データを、画像処理装置1に伝送する。そして、画像処理装置1は、外部拡張処理装置600に備えた外部インターフェース部630を介して伝送された外部処理画素データを外部インターフェース部30によって受け取り、外部インターフェース部30は、受け取った外部処理画素データを、DMAバス10を介さずに直接、入出力用モジュール24に出力する。
(フローF7):続いて、入出力用モジュール24は、外部インターフェース部30を介して、外部拡張処理装置600から伝送された外部処理画素データを、接続切り替え部21を介して、次に画像処理を行う接続先の画像処理モジュール23−3に出力する。
(フローF8):続いて、画像処理モジュール23−3は、接続切り替え部21を介して接続先の入出力用モジュール24から出力された外部処理画素データに対して予め定めた画像処理を施し、画像処理をさらに施した後の外部処理画素データ(処理画素データ)を、接続切り替え部21を介して、出力DMAモジュール25に出力する。
(フローF9):続いて、出力DMAモジュール25は、接続切り替え部21を介して接続先の画像処理モジュール23−3から出力された処理画素データを、DMAバス10を介したDMAによってDRAM500に書き込む(記憶する)。
このようにして、画像処理装置1では、画像処理部20に構成されたパイプライン処理の中に、外部拡張処理装置600による外部画像処理を組み込んだ一連の画像処理を実行する。
本第1の実施形態によれば、入力されたデータ(画素データ)に対して予め定めた処理を行う複数の処理モジュール(画像処理モジュール23−1〜画像処理モジュール23−3)を直列に接続してパイプラインを構成し、画像処理モジュール23−1〜画像処理モジュール23−3のそれぞれが処理を順次行うことによってパイプライン処理を行う画像処理部(画像処理部20)がデータバス(DMAバス10)に接続され、DMAバス10に接続されたデータ記憶部(DRAM500)からDMAバス10を介して読み出した画素データに対して画像処理を行う画像処理装置(画像処理装置1)であって、画像処理部20は、画像処理モジュール23−1〜画像処理モジュール23−3のそれぞれが行う処理と異なる処理を行う処理モジュールとしてパイプライン内に組み込まれる入出力用モジュール(入出力用モジュール24)、を備え、入出力用モジュール24は、パイプラインにおいて組み込まれた位置の前段に位置する処理モジュールである第1の処理モジュール(例えば、画像処理モジュール23−2)が処理を行った処理データ(入力データ,画素データ,処理画素データ)を、DMAバス10を介さずに直接、画像処理部20の外部の外部処理部(外部拡張処理装置600)に(外部出力データとして)出力し、外部拡張処理装置600によって処理データ(入力データ,画素データ,処理画素データ)に対して外部処理(外部画像処理)が行われて入力された外部処理データ(外部入力データ,外部処理画素データ)を、DMAバス10を介さずに直接、パイプラインにおいて第1の処理モジュール(例えば、画像処理モジュール23−2)の後段に位置する処理モジュールである第2の処理モジュール(例えば、画像処理モジュール23−3)に(出力データとして)出力する、画像処理装置(画像処理装置1)が構成される。
また、本第1の実施形態によれば、入出力用モジュール24は、処理データ(入力データ,画素データ,処理画素データ)を一時的に記憶する出力バッファ部(出力バッファ部242)と、外部処理データ(外部入力データ,外部処理画素データ)を一時的に記憶する入力バッファ部(入力バッファ部245)と、を備え、第1の処理モジュール(例えば、画像処理モジュール23−2)が出力した処理データ(処理画素データ)を出力バッファ部242に一旦記憶し、外部拡張処理装置600からの要求に応じて出力バッファ部242に記憶した処理データ(処理画素データ)を(外部出力データとして)出力し、外部拡張処理装置600が出力した外部処理データ(外部入力データ,外部処理画素データ)を入力バッファ部245に一旦記憶し、第2の処理モジュールからの要求に応じて入力バッファ部245に記憶した外部処理データ(外部入力データ,外部処理画素データ)を(出力データとして)出力する、画像処理装置1が構成される。
また、本第1の実施形態によれば、入出力用モジュール24は、出力バッファ部242の記憶容量に基づいて、出力バッファ部242への処理データ(入力データ,画素データ,処理画素データ)の書き込みを制御する処理モジュール入力制御部(画像処理モジュール入力制御部241)と、出力バッファ部242に記憶されている処理データ(入力データ,画素データ,処理画素データ)のデータ量に基づいて、出力バッファ部242からの処理データ(入力データ,画素データ,処理画素データ)の読み出しを制御する外部出力制御部(外部出力制御部243)と、入力バッファ部245の記憶容量に基づいて、入力バッファ部245への外部処理データ(外部入力データ,外部処理画素データ)の書き込みを制御する外部入力制御部(外部入力制御部244)と、入力バッファ部245に記憶されている外部処理データ(外部入力データ,外部処理画素データ)のデータ量に基づいて、入力バッファ部245からの外部処理データ(外部入力データ,外部処理画素データ)の読み出しを制御する処理モジュール出力制御部(画像処理モジュール出力制御部246)と、をさらに備える、画像処理装置1が構成される。
また、本第1の実施形態によれば、画像処理モジュール入力制御部241は、第1の処理モジュール(例えば、画像処理モジュール23−2)が処理を行う単位(例えば、ユニットライン)ごとに、出力バッファ部242に処理データ(入力データ,画素データ,処理画素データ)を書き込み、外部出力制御部243は、外部拡張処理装置600が外部画像処理を行う単位(例えば、4つのユニットライン)ごとに、出力バッファ部242に記憶されている処理データ(入力データ,画素データ,処理画素データ)を読み出し、外部入力制御部244は、外部拡張処理装置600が外部画像処理を行う単位(例えば、4つのユニットライン)ごとに、入力バッファ部245に外部処理データ(外部入力データ,外部処理画素データ)を書き込み、画像処理モジュール出力制御部246は、第2の処理モジュール(例えば、画像処理モジュール23−3)が処理を行う単位(例えば、ユニットライン)ごとに、入力バッファ部245に記憶されている外部処理データ(外部入力データ,外部処理画素データ)を読み出す、画像処理装置1が構成される。
また、本第1の実施形態によれば、入出力用モジュール24は、パイプラインの先頭、途中、および最後尾の少なくとも1つの位置に組み込まれる、画像処理装置1が構成される。
また、本第1の実施形態によれば、外部拡張処理装置600との間でデータ(入力データ,画素データ,処理画素データ,外部出力データ,外部入力データ,外部処理画素データ,出力データ)の入出力を行う外部インターフェース部(外部インターフェース部30)、をさらに備え、入出力用モジュール24は、外部インターフェース部30を介して、外部拡張処理装置600との間でデータ伝送を行う、画像処理装置1が構成される。
また、本第1の実施形態によれば、処理データ(入力データ,画素データ,処理画素データ)および外部処理データ(外部入力データ,外部処理画素データ)は、画像データ(例えば、静止画像のデータ)であり、第1の処理モジュール(例えば、画像処理モジュール23−2)および第2の処理モジュール(例えば、画像処理モジュール23−3)が処理を行う単位(例えば、ユニットライン)と、外部拡張処理装置600が外部画像処理を行う単位(例えば、4つのユニットライン)とのそれぞれは、1フレームの画像データ(例えば、静止画像のデータ)を予め定めた複数のブロック(例えば、ブロック画像データ)に分割したサイズであり、出力バッファ部242の記憶容量および入力バッファ部245の記憶容量は、1フレームの画像データ(例えば、静止画像のデータ)に含まれる画素データを記憶するための記憶容量よりも少ない、画像処理装置1が構成される。
上述したように、第1の実施形態の画像処理装置1では、パイプライン処理を行う画像処理部20内に外部インターフェース部30がDMAバス10を介さずに直接接続される入出力用モジュール24を備える。これにより、第1の実施形態の画像処理装置1では、パイプライン処理の途中の処理画素データを、画像処理装置1の外部に接続された外部拡張処理装置600に伝送することができる。そして、第1の実施形態の画像処理装置1では、外部拡張処理装置600が画像処理を施した処理画素データ(外部処理画素データ)に対して、パイプライン処理における続きの画像処理を行うことができる。このことにより、第1の実施形態の画像処理装置1では、すでに構成されたパイプライン処理による画像処理の中に、拡張性を持たせるための外部拡張処理装置600による画像処理を組み込むことができる。
しかも、第1の実施形態の画像処理装置1では、外部インターフェース部30によって、拡張する画像処理に用いる画素データを、DRAM500などの記憶部を用いずに、外部拡張処理装置600との間で伝送することができる。このため、第1の実施形態の画像処理装置1では、すでに構成されたパイプライン処理が分断されることなく、拡張する画像処理を組み込んだ状態で、一連の画像処理を行うことができる。このことにより、第1の実施形態の画像処理装置1では、DRAMのバス帯域の圧迫や、画像処理装置1の消費電力の増大などが起こらず、第1の実施形態の画像処理装置1を搭載した撮像装置100の性能を低下させることなく、画像処理を拡張することができる。
なお、第1の実施形態の画像処理装置1では、画像処理装置1内の画像処理部20に備えた画像処理モジュール23−2と画像処理モジュール23−3との間に、外部拡張処理装置600による外部画像処理を組み込む構成について説明した。しかし、上述したように、第1の実施形態の画像処理装置1では、接続切り替え部21によって、画像処理部20が行う画像処理の順番や、パイプラインに組み込む外部画像処理の位置を変更することができる。従って、第1の実施形態の画像処理装置1においてパイプライン処理の中に外部画像処理を組み込む位置は、第1の実施形態において説明した位置に限定されるものではない。例えば、接続切り替え部21の設定によって、画像処理モジュール23−1と画像処理モジュール23−2との間に、外部拡張処理装置600による外部画像処理を組み込むこともできる。
また、第1の実施形態の画像処理装置1では、画像処理部20に備えた入出力用モジュール24が、画像処理装置1に備えた外部インターフェース部30と接続され、外部インターフェース部30を介して画像処理装置1の外部に備えた外部拡張処理装置600との間で画素データのやり取りをする構成を示した。しかし、入出力用モジュール24の構成は、第1の実施形態において示した構成に限定されるものではない。例えば、入出力用モジュール24に、外部インターフェース部30の機能を備え、入出力用モジュール24と外部拡張処理装置600との間で、画素データのやり取りを直接行う構成であってもよい。また、この構成の入出力用モジュール24では、例えば、外部拡張処理装置600が、予め想定される外部画像処理を行うために画像処理装置1に専用に接続される画像処理装置(システムLSI)ある場合などにおいて、予め定めた特定のデータ伝送の仕様や方式でデータの伝送を行う機能のみを、外部インターフェース部30の機能として備えていてもよい。この場合、画像処理装置1に専用の外部拡張処理装置600では、画素データを入力してから外部画像処理を行って外部処理画素データを出力するまでの遅延時間が予めわかる。このため、画像処理部20におけるパイプライン処理がスムーズに行われる場合には、入出力用モジュール24の構成を、出力バッファ部242および入力バッファ部245を備えない、つまり、それぞれの画素データのバッファリングを行わない構成にしてもよい。なお、前段および後段への接続が想定される画像処理モジュール23にデータバッファを備えている場合、入出力用モジュール24は、それぞれの画像処理モジュール23に備えたデータバッファを、出力バッファ部242および入力バッファ部245のデータバッファとして兼用することによって、それぞれの画素データのバッファリングを行わない構成にしてもよい。
なお、第1の実施形態の画像処理装置1では、パイプライン処理に組み込んで拡張する画像処理を実行する構成要素が、画像処理装置1の外部に接続された外部拡張処理装置600である構成を説明した。しかし、画像処理装置1の構成によっては、パイプライン処理に組み込んで拡張する画像処理を実行する構成要素を、画像処理装置1の中に備えていることも考えられる。この場合、入出力用モジュール24が、外部インターフェース部30の代わりに、画像処理装置1の中に備えた拡張する画像処理を実行する構成要素との間で画素データのやり取りを行うことによって、同様に、画像処理部20においてすでに構成されたパイプライン処理による画像処理の中に、拡張性を持たせるための画像処理を組み込むことができる。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。なお、以下の説明においても、本発明の第2の実施形態の画像処理装置が、例えば、静止画用カメラなどの撮像装置(以下、「撮像装置200」という)に搭載されている場合について説明する。図7は、本発明の第2の実施形態における画像処理装置の概略構成を示したブロック図である。なお、図7には、本発明の第2の実施形態の画像処理装置2に関連する撮像装置200内の構成要素として、DRAM500を併せて示している。
図7に示した画像処理装置2は、DMAバス10と、画像処理部40と、外部インターフェース(I/F)部30と、デジタルシグナルプロセッサ(DSP)50と、セレクタ部60と、を備えている。また、画像処理部40は、接続切り替え部21と、入力DMAモジュール22と、3つの画像処理モジュール23−1〜画像処理モジュール23−3と、入出力用モジュール44と、出力DMAモジュール25と、を備えている。
図7に示した画像処理装置2の構成は、図1に示した第1の実施形態の画像処理装置1に備えた画像処理部20が、画像処理部40に代わり、さらにデジタルシグナルプロセッサ50と、セレクタ部60とを備えた構成である。また、図7に示した画像処理装置2に備えた画像処理部40は、図1に示した第1の実施形態の画像処理装置1に備えた画像処理部20に備えた入出力用モジュール24が、入出力用モジュール44に代わった構成である。
なお、画像処理装置2および画像処理装置2に備えた画像処理部40における他の構成要素は、図1に示した第1の実施形態の画像処理装置1または画像処理装置1に備えた画像処理部20における構成要素と同様である。従って、以下の説明においては、画像処理装置2および画像処理装置2に備えた画像処理部40の構成要素において、図1に示した第1の実施形態の画像処理装置1または画像処理装置1に備えた画像処理部20の構成要素と同様の構成要素には同一の符号を付与し、それぞれの構成要素に関する詳細な説明は省略する。なお、図7においても、図1に示した撮像装置100と同様に、撮像装置200に備えたそれぞれの構成要素や画像処理装置2においてDMAバス10に接続される他の構成要素の図示を省略している。
画像処理部40は、図1に示した第1の実施形態の画像処理装置1に備えた画像処理部20と同様に、入力されたブロック画像データに対して、画像処理装置2において予め定められた種々の画像処理をパイプライン処理する。また、画像処理部40も、第1の実施形態の画像処理装置1に備えた画像処理部20と同様に、パイプラインの構成を変更する機能を備えている。
また、画像処理部40も、第1の実施形態の画像処理装置1に備えた画像処理部20と同様に、画像処理モジュール23−1〜画像処理モジュール23−3のそれぞれが実行する画像処理とは異なる画像処理をパイプライン処理に組み込む機能を備えている。ただし、画像処理装置2では、デジタルシグナルプロセッサ50によって実行する画像処理(以下、「DSP画像処理」という)を、画像処理部40における画像処理を拡張する画像処理としてパイプライン処理に組み込むこともできる。ここで、デジタルシグナルプロセッサ50において実行してパイプライン処理に組み込む画像処理(DSP画像処理)は、画像処理モジュール23−1〜画像処理モジュール23−3のいずれの画像処理モジュール23においても実行しない画像処理である。
図7に示した撮像装置200の構成では、画像処理装置2の外部に備えたシステムLSIなどの構成要素(図1に示した第1の実施形態においては、外部拡張処理装置600)が実行する外部画像処理、またはデジタルシグナルプロセッサ50が実行するDSP画像処理のいずれか一方の画像処理を、画像処理部40におけるパイプライン処理に組み込むことができる。以下の説明においては、説明を容易にするため、画像処理装置2の外部に備えた構成要素が、図1に示した第1の実施形態において画像処理装置1の外部に備えた外部拡張処理装置600であるものとして説明する。また、以下の説明においては、外部画像処理とDSP画像処理とのそれぞれを区別せずに表すときには、「拡張画像処理」という。画像処理部40では、入出力用モジュール44を、拡張画像処理を実行する画像処理モジュールとしてパイプラインの構成内に組み込むことによって、外部拡張処理装置600またはデジタルシグナルプロセッサ50が実行する拡張画像処理がパイプライン処理に組み込まれる。
なお、画像処理装置2においても、第1の実施形態の画像処理装置1に備えた画像処理部20と同様に、画像処理部40におけるパイプラインの構成が、例えば、不図示のシステム制御部によって変更(設定)される。
図7には、画像処理モジュール23−2と画像処理モジュール23−3との間に入出力用モジュール44を組み込むことによって、外部拡張処理装置600またはデジタルシグナルプロセッサ50によって実行される拡張画像処理がパイプラインに組み込まれている構成を示している。つまり、図7に示した画像処理部40では、画像処理モジュール23−1による画像処理、画像処理モジュール23−2による画像処理、外部拡張処理装置600またはデジタルシグナルプロセッサ50による画像処理、および画像処理モジュール23−3による画像処理を順次行うパイプラインを構成している状態を示している。
なお、画像処理装置2においても、第1の実施形態の画像処理装置1に備えた画像処理部20と同様に、入出力用モジュール44をパイプラインに組み込む位置は、例えば、不図示のシステム制御部によって設定される。従って、画像処理装置2においても、第1の実施形態の画像処理装置1に備えた画像処理部20と同様に、入出力用モジュール44をパイプラインに組み込む位置は、図7に示した位置に限定されるものではなく、パイプライン内のいかなる位置にも組み込むことができる。
入出力用モジュール44は、第1の実施形態の画像処理装置1に備えた画像処理部20の入出力用モジュール24と同様に、画像処理部40の外部に備えた構成要素によって実行される拡張画像処理を、パイプライン処理に組み込むためのインターフェースモジュールである。なお、第1の実施形態では、入出力用モジュール24と外部インターフェース部30とが、DMAバス10を介さずに直接接続されていたが、入出力用モジュール44では、セレクタ部60が、DMAバス10を介さずに直接接続されている。入出力用モジュール44は、例えば、不図示のシステム制御部からの制御に応じて、接続切り替え部21によって接続が切り替えられた接続先の入力DMAモジュール22、画像処理モジュール23のいずれかから、接続切り替え部21を介して入力された画素データを、セレクタ部60を介して、外部インターフェース部30に接続されている外部拡張処理装置600またはデジタルシグナルプロセッサ50に出力する。また、入出力用モジュール44は、例えば、不図示のシステム制御部からの制御に応じて、外部インターフェース部30に接続されている外部拡張処理装置600またはデジタルシグナルプロセッサ50から、セレクタ部60を介して入力された拡張画像処理が施された画素データを、接続切り替え部21によって接続が切り替えられた接続先の画像処理モジュール23のいずれか、または出力DMAモジュール25に出力する。
上述したように、入出力用モジュール44は、外部インターフェース部30に接続されている外部拡張処理装置600が実行する外部画像処理、またはデジタルシグナルプロセッサ50が実行するDSP画像処理のいずれか一方の拡張画像処理を、画像処理部40におけるパイプライン処理に組み込む。このため、入出力用モジュール44では、外部画像処理またはDSP画像処理のいずれの拡張画像処理をパイプライン処理に組み込むかを表す情報として、画像処理部40の外部に備えたいずれの構成要素に、拡張画像処理に用いる画素データを出力するのかを示す出力先の情報(以下、「出力先情報」という)を、画素データに付加して出力する。この出力先情報は、拡張画像処理に用いる画素データを、外部インターフェース部30に接続されている外部拡張処理装置600またはデジタルシグナルプロセッサ50の、画像処理部40の外部に備えたいずれの構成要素に出力するかを示す情報である。
なお、入出力用モジュール44は、拡張画像処理に用いる画素データに出力先情報を付加してもよいが、例えば、拡張画像処理に用いる画素データが入力された構成要素がそれぞれの画像処理を実行する際に用いる画像処理の設定などの情報として画素データの先頭や後尾に付加された、いわゆる、ヘッダ情報やマーカ情報などの付加情報に含めるようにして付加してもよい。
なお、入出力用モジュール44の構成、入出力用モジュール44がやり取りする画素データの構成や、入出力用モジュール44が拡張画像処理を画像処理部40のパイプライン処理に組み込むときの動作などに関する詳細な説明は、後述する。なお、以下の説明においては、DSP画像処理を施した後の画素データを、DRAM500に記憶されている画像処理を行う対象の画素データや、画像処理モジュール23のいずれかが画像処理を施した後の処理画素データ、外部拡張処理装置600が外部画像処理を施した後の外部処理画素データと区別して表す場合には、「DSP処理画素データ」という。また、以下の説明においては、外部処理画素データと、DSP処理画素データとを区別せずに表す場合には、「拡張処理画素データ」という。また、以下の説明においては、処理画素データと、外部処理画素データ、DSP処理画素データや、拡張処理画素データとを区別せずに表す場合には、単に「処理画素データ」という。
このように、画像処理部40でも、第1の実施形態の画像処理装置1に備えた画像処理部20と同様に、それぞれの画像処理モジュール23が、例えば、不図示のシステム制御部からの制御に応じて、パイプライン処理による一連の画像処理を行う。そして、画像処理部40でも、第1の実施形態の画像処理装置1に備えた画像処理部20と同様に、いずれの画像処理モジュール23においても実行しない拡張画像処理を、例えば、不図示のシステム制御部からの制御に応じて、画像処理部40の外部に備えた構成要素に実行させて、パイプライン処理に組み込む。このとき、画像処理部40でも、第1の実施形態の画像処理装置1に備えた画像処理部20と同様に、入出力用モジュール44を、拡張画像処理を実行する画像処理モジュールとしてパイプラインの構成に組み込む。
これにより、画像処理装置2でも、第1の実施形態の画像処理装置1と同様に、画像処理部40によって実行することができない画像処理であっても、画像処理部40がパイプライン処理を行っているのと同様に処理して、画像処理部40におけるパイプライン処理を拡張することができる。ただし、画像処理装置2では、第1の実施形態の画像処理装置1とは異なり、外部拡張処理装置600が実行する外部画像処理、またはデジタルシグナルプロセッサ50が実行するDSP画像処理のいずれか一方の拡張画像処理を選択してパイプライン処理に組み込む。このため、入出力用モジュール44が出力する拡張画像処理に用いる画素データには、上述したように、外部拡張処理装置600またはデジタルシグナルプロセッサ50のいずれの構成要素への出力であるかを示す出力先情報が付加されている。
セレクタ部60は、入出力用モジュール44が出力した拡張画像処理に用いる画素データに付加された出力先情報に基づいて、画素データの入出力先の構成要素を選択する選択部である。入出力用モジュール44が出力した拡張画像処理に用いる画素データに付加された出力先情報が、画像処理装置2の外部に備えた外部拡張処理装置600への出力を示している場合、セレクタ部60は、DMAバス10を介さずに直接、入出力用モジュール44から入力された画素データを、外部インターフェース部30に出力する。これにより、入出力用モジュール44から出力された画素データが、外部インターフェース部30によって、画像処理装置2の外部に備えた外部拡張処理装置600に伝送される。そして、セレクタ部60は、外部インターフェース部30を介して画像処理装置2の外部に備えた外部拡張処理装置600から伝送された外部処理画素データを、DMAバス10を介さずに直接、入出力用モジュール44に出力する。
なお、入出力用モジュール44が出力した拡張画像処理に用いる画素データに付加された出力先情報が画像処理装置2の外部に備えた外部拡張処理装置600への出力を示している場合における、入出力用モジュール44が外部画像処理を画像処理部40のパイプライン処理に組み込むときの動作は、第1の実施形態の画像処理装置1に備えた画像処理部20の入出力用モジュール24と同様である。従って、入出力用モジュール44が外部画像処理を画像処理部40のパイプライン処理に組み込むときの動作に関する詳細な説明は省略する。
一方、入出力用モジュール44が出力した拡張画像処理に用いる画素データに付加された出力先情報が、デジタルシグナルプロセッサ50への出力を示している場合、セレクタ部60は、DMAバス10を介さずに直接、入出力用モジュール44から入力された画素データを、デジタルシグナルプロセッサ50に出力する。そして、セレクタ部60は、デジタルシグナルプロセッサ50から伝送された外部処理画素データを、DMAバス10を介さずに直接、入出力用モジュール44に出力する。これにより、画像処理部40では、デジタルシグナルプロセッサ50が実行するDSP画像処理が、画像処理部40内に構成されるパイプラインに組み込まれる。
デジタルシグナルプロセッサ50は、画像処理装置2の内部に備えられ、画像処理装置2に備えた画像処理部40内に構成されるパイプラインに組み込まれるDSP画像処理を行う信号処理部である。デジタルシグナルプロセッサ50は、画像処理装置2に備えた画像処理部40内のいずれの画像処理モジュール23においても実行しない画像処理、つまり、画像処理装置2において実行する画像処理を拡張するためのDSP画像処理を実行する。デジタルシグナルプロセッサ50は、撮像装置200においてDMAバス10を介さずに入出力用モジュール44から直接入力された拡張画像処理に用いる画素データに対して予め定めたデジタル的なDSP画像処理を施し、DSP画像処理を施した画素データ(DSP処理画素データ)を、DMAバス10を介さずに入出力用モジュール44に直接に出力する。
なお、デジタルシグナルプロセッサ50は、画像処理部40内に構成されるパイプラインに組み込むDSP画像処理以外にも種々の信号処理を行う。このため、デジタルシグナルプロセッサ50は、図7に示したように、DMAバス10にも接続されている。従って、デジタルシグナルプロセッサ50は、DMAバス10に接続されたDRAM500を用いて種々の信号処理を実行することもできる。図7に示した画像処理装置2の構成では、デジタルシグナルプロセッサ50は、DRAM500を用いずにDSP画像処理を実行する構成を想定している。しかし、デジタルシグナルプロセッサ50は、拡張画像処理に用いる画素データに対してDSP画像処理を施す際に、DRAM500を用いてもよい。
このような構成によって撮像装置200では、画像処理装置2に備えた画像処理部40内の画像処理モジュール23のそれぞれが実行する画像処理によるパイプライン処理に、外部拡張処理装置600が実行する外部画像処理、またはデジタルシグナルプロセッサ50が実行するDSP画像処理のいずれか一方の拡張画像処理を組み込む。これにより、撮像装置200では、画像処理装置2のみでは実行することができない画像処理であっても、外部拡張処理装置600またはデジタルシグナルプロセッサ50によって、画像処理装置2に備えた画像処理部40がパイプライン処理を行っているのと同様に、画像処理を拡張することができる。
次に、画像処理装置2において画像処理部40に備えた入出力用モジュール44の構成、入出力用モジュール44がやり取りする画素データの構成、および入出力用モジュール44の動作について説明する。なお、入出力用モジュール44も、第1の実施形態の画像処理装置1に備えた画像処理部20の入出力用モジュール24と同様に、パイプライン内のいかなる位置にも組み込むことができる。以下の説明においても、第1の実施形態の画像処理装置1に備えた画像処理部20の入出力用モジュール24と同様に、入出力用モジュール44の前段および後段のそれぞれに画像処理モジュール23が接続されているものとして説明する。なお、画像処理部40に備えた入出力用モジュール44における外部インターフェース部30またはデジタルシグナルプロセッサ50との間での画素データの受け渡し動作の概念は、セレクタ部60を介して行う以外は、図2に示した第1の実施形態の画像処理装置1に備えた画像処理部20の入出力用モジュール24における画素データの受け渡しの概念的な動作と同様である。従って、入出力用モジュール44における画素データの受け渡しの概念的な動作に関する詳細な説明は省略する。
図8は、本発明の第2の実施形態における画像処理装置2内の画像処理部40に備えた入出力用モジュール44の概略構成を示したブロック図である。図8には、入出力用モジュール44における基本的な構成を示している。図8に示した入出力用モジュール44は、画像処理モジュール入力制御部241と、出力バッファ部242と、外部出力制御部443と、外部入力制御部244と、入力バッファ部245と、画像処理モジュール出力制御部246と、を備えている。図8に示した入出力用モジュール44は、第1の実施形態の画像処理装置1に備えた画像処理部20の入出力用モジュール24に備えた外部出力制御部243が、外部出力制御部443に代わった構成である。外部出力制御部443は、第1の実施形態の画像処理装置1に備えた画像処理部20の入出力用モジュール24に備えた外部出力制御部243の機能に、拡張画像処理に用いる画素データに出力先の構成要素を示す出力先情報を付加する機能が追加されている。
なお、入出力用モジュール44における他の構成要素は、図3に示した第1の実施形態の画像処理装置1に備えた画像処理部20の入出力用モジュール24における構成要素と同様である。従って、以下の説明においては、入出力用モジュール44に備えた構成要素において、図3に示した第1の実施形態における入出力用モジュール24に備えた構成要素と同様の構成要素には同一の符号を付与し、それぞれの構成要素に関する詳細な説明は省略する。
入出力用モジュール44でも、入出力用モジュール24と同様に、画像処理モジュール入力制御部241、出力バッファ部242、および外部出力制御部443の構成が、外部出力部である。入出力用モジュール44でも、入出力用モジュール24と同様に、外部出力部の構成によって、前段に接続された画像処理モジュール23から出力された入力データ(画素データ)を出力バッファ部242に一時記憶し、画素データの出力先の構成要素からのデータ出力の要求に応じて、出力バッファ部242に一時記憶した画素データを読み出して、外部出力データとして出力する。なお、入出力用モジュール44においては、外部入力部の構成は、入出力用モジュール24と同様である。つまり、入出力用モジュール44においても、外部入力制御部244、入力バッファ部245、および画像処理モジュール出力制御部246の構成が、外部入力部である。
外部出力制御部443は、第1の実施形態における入出力用モジュール24に備えた外部出力制御部243と同様に、出力バッファ部242に記憶された入力データ(画素データ)の出力(読み出し)を制御する。図8に示した外部出力制御部443は、出力バッファデータ量管理部2431と、出力バッファ読み出し管理部4432と、を備えている。外部出力制御部443は、第1の実施形態における入出力用モジュール24に備えた外部出力制御部243内の出力バッファ読み出し管理部2432が、出力バッファ読み出し管理部4432に代わった構成である。
出力バッファデータ量管理部2431は、出力バッファ部242に備えた出力バッファ2422−1および出力バッファ2422−2のそれぞれの記憶容量を監視し、記憶容量を監視した結果に応じて、出力バッファ2422に記憶している画素データの出力(読み出し)を指示する出力バッファリード制御信号OBRCを、出力バッファ読み出し管理部4432に出力する。
出力バッファ読み出し管理部4432は、出力バッファデータ量管理部2431から出力された出力バッファリード制御信号OBRCに基づいて、出力バッファ部242に記憶された入力データ(画素データ)の読み出し(出力)を制御するための出力バッファリード選択信号OBRSと出力バッファリード信号OBRとを、出力バッファ部242に出力する。これにより、出力バッファ部242は、出力バッファリード信号OBRに応じて、記憶している画素データが読み出される。
入出力用モジュール44では、出力バッファ部242から読み出された画素データは、外部出力データとして出力されず、出力バッファ読み出し管理部4432に入力される。そして、出力バッファ読み出し管理部4432は、出力バッファ部242から読み出された(出力された)画素データに出力先情報を付加し、出力先情報を付加した画素データを、外部出力データとしてセレクタ部60に出力する。このとき、出力バッファ読み出し管理部4432は、外部出力データとして出力したユニットラインに含まれるそれぞれの画素データが、有効な画素データであるか否かを表す出力データ有効信号も、セレクタ部60に出力する。
ここで、出力バッファ読み出し管理部4432が出力先情報を付加した外部出力データの構成、つまり、入出力用モジュール44がやり取りする画素データの構成について説明する。図9は、本発明の第2の実施形態における画像処理装置2内の画像処理部40に備えた入出力用モジュール44が出力する外部出力データの構成の一例を示した図である。図9には、出力バッファ読み出し管理部4432が、出力先情報を、付加情報(より具体的には、ヘッダ情報)の中に含めるようにして付加した場合の一例を示している。
外部出力データは、拡張画像処理に用いる画素データよりも前の領域、つまり、外部出力データの先頭側の領域に、ヘッダ情報が付加されている。出力バッファ読み出し管理部4432は、このヘッダ情報の中に含めるようにして出力先情報を付加する。図9には、「出力先」、「画像処理パラメータ」、「画像サイズ」、「左上座標」の情報が含まれるヘッダ情報の構成を示している。
ここで、ヘッダ情報に含まれる「出力先」の情報は、出力バッファ読み出し管理部4432が付加した出力先情報である。この出力先情報によって、セレクタ部60は、入出力用モジュール44から出力された外部出力データを出力する出力先が複数ある場合でも、外部出力データを適切な構成要素のいずれかに出力することができる。画像処理装置2では、ヘッダ情報に含まれる「出力先」の情報(出力先情報)は、外部インターフェース部30に接続されている外部拡張処理装置600またはデジタルシグナルプロセッサ50を出力先として示す出力先情報である。従って、セレクタ部60は、ヘッダ情報に含まれる「出力先」の情報(出力先情報)に基づいて、外部出力データに含まれる拡張画像処理に用いる画素データを、出力先情報が示す構成要素に出力する。
また、ヘッダ情報に含まれる「画像処理パラメータ」、「画像サイズ」、および「左上座標」の情報は、拡張画像処理を実行するそれぞれの構成要素(画像処理装置2においては、外部拡張処理装置600またはデジタルシグナルプロセッサ50)が、それぞれの拡張画像処理を実行する際に用いる画像処理の設定などの情報(付加情報)である。
より具体的には、ヘッダ情報に含まれる「画像処理パラメータ」の情報は、外部出力データに含まれる画素データに対して施す拡張画像処理(外部画像処理またはDSP画像処理)の設定(パラメータ)の情報である。この「画像処理パラメータ」の情報としては、例えば、フィルタ処理におけるフィルタ係数の値、画像補間処理における設定値、リサイズ処理におけるリサイズ率の値、歪補正処理における歪み係数の値などのパラメータなどの情報がある。
また、ヘッダ情報に含まれる「画像サイズ」の情報は、外部出力データに含まれる画像データのサイズに関する情報である。この「画像サイズ」の情報としては、例えば、画素データのデータ量(画素数)、ブロック画像データのサイズ(水平方向の画素数や垂直方向の画素数)、1フレームの静止画像のサイズ(水平方向の画素数や垂直方向の画素数)などの情報がある。
また、ヘッダ情報に含まれる「左上座標」の情報は、外部出力データに含まれる画素データの、基準の位置(座標)に対する位置(座標)に関する情報である。この「左上座標」の情報としては、例えば、外部出力データに含まれる画素データが表す画像の領域において左上に位置する画素に対応した画素データ(例えば、先頭の画素データ)が、1フレームの静止画像を画像処理する際に一般的に基準の位置として扱われる左上の画素の座標を基準座標(0,0)に対してどのような位置関係にあるかを示すための座標などの情報がある。
外部出力データ、すなわち、拡張画像処理に用いる画素データが入力された構成要素(外部拡張処理装置600またはデジタルシグナルプロセッサ50)は、画素データと同時に入力されたヘッダ情報に含まれる「画像処理パラメータ」、「画像サイズ」、および「左上座標」の情報を用いることによって、入力された画素データに適した拡張画像処理を行うことができる。また、「画像処理パラメータ」、「画像サイズ」、および「左上座標」のいずれかの情報に、例えば、外部出力データに含まれる画素データが、1フレームの静止画像内のいずれの位置のブロック画像データであるか、言い換えれば、1フレームの静止画像に対する画像処理を開始する最初のブロック画像データであるか、1フレームの静止画像に対する画像処理を終了する最後のブロック画像データであるかを表す情報などを含んでもよい。これにより、1フレームの静止画像に対する画像処理の状況を考慮した拡張画像処理を行うこともできる。
なお、一般的に、画像処理装置では、拡張画像処理を実行する際に用いる情報を、ヘッダ情報として拡張画像処理に用いる画素データと同時に出力しない構成も考えられる。しかし、この構成の場合には、例えば、不図示のシステム制御部によって、拡張画像処理を実行するそれぞれの構成要素に個別に、ヘッダ情報に含まれる情報と同様の設定を行う必要があり、パイプライン処理においては、拡張画像処理を実行するそれぞれの構成要素と画像処理部40に備えた画像処理モジュール23のそれぞれとの同期が難しくなることも考えられる。このため、パイプライン処理において、拡張画像処理を実行するそれぞれの構成要素と画像処理部40に備えた画像処理モジュール23のそれぞれとの同期を容易にするためには、拡張画像処理を実行する際に用いる情報をヘッダ情報として拡張画像処理に用いる画素データと同時に出力することは有効な方法であると考えられる。
なお、出力バッファ読み出し管理部4432が出力先情報を付加して出力する外部出力データの構成は、図9に示した構成に限定されるものではなく、種々の構成が考えられる。また、拡張画像処理を実行する際に用いる画像処理の設定などの情報は、図9に示した情報に限定されるものではなく、種々の情報や設定が考えられる。
なお、入出力用モジュール44における外部出力部および外部入力部の動作のタイミングは、外部出力データの構成が異なる以外は、図4および図5に示した、第1の実施形態の画像処理装置1に備えた画像処理部20の入出力用モジュール24における外部出力部および外部入力部の動作のタイミングと同様に考えることができる。従って、入出力用モジュール44における外部出力部および外部入力部の動作のタイミングに関する詳細な説明は省略する。
このような構成によって画像処理部40に備えた入出力用モジュール44は、前段に接続された画像処理モジュール23から出力された入力データ(画素データ)の画像処理部40の外部に備えたいずれかの構成要素への出力と、画像処理部40の外部に備えたいずれかの構成要素から出力された外部入力データ(外部処理画素データ)の後段に接続された画像処理モジュール23への出力とを行う。これにより、入出力用モジュール44は、画像処理部40においてパイプラインが構成された、前段に接続された画像処理モジュール23と後段に接続された画像処理モジュール23との間に、画像処理部40の外部に備えたいずれかの構成要素による拡張画像処理を組み込むことができる。
なお、図8に示した入出力用モジュール44の構成でも、図3に示した第1の実施形態における入出力用モジュール24と同様に、リクエスト信号、アクノリッジ信号、および有効信号によって画素データのやり取りをする構成を示したが、入出力用モジュール44においても、他の様々なデータの伝送方法によって画素データをやり取りしてもよい。
次に、入出力用モジュール44によって画像処理部40の外部に備えたいずれかの構成要素による拡張画像処理を組み込んだパイプライン処理におけるデータの流れについて説明する。図10は、本発明の第2の実施形態における画像処理装置2内の画像処理部40に備えた入出力用モジュール44を含んだ画素データの流れを模式的に示した図である。図10には、画像処理部40において構成されたパイプライン処理の中に、デジタルシグナルプロセッサ50によるDSP画像処理を組み込んだときの画素データの流れを示している。より具体的には、図7に示した撮像装置200の構成において、画像処理装置2内の画像処理部40に備えた画像処理モジュール23−2と画像処理モジュール23−3との間に入出力用モジュール44を組み込むことによって、デジタルシグナルプロセッサ50によるDSP画像処理を、パイプライン処理による一連の画像処理に組み込んだときの画素データの流れを示している。
画像処理装置2に備えた画像処理部40におけるパイプライン処理でも、第1の実施形態の画像処理装置1に備えた画像処理部20におけるパイプライン処理と同様に、画像処理モジュール23やデジタルシグナルプロセッサ50のそれぞれが、前段の画像処理モジュール23またはデジタルシグナルプロセッサ50から出力された画素データに対する予め定めた画像処理を並列に行うことによって、パイプライン処理がスムーズに行われるようにしている。言い換えれば、画像処理モジュール23やデジタルシグナルプロセッサ50のそれぞれは、同じ時期に異なる画像処理を行っている。しかし、図10に示した画素データの流れの説明では、説明を容易にするため、第1の実施形態の画像処理装置1における画素データの流れの説明と同様に、1つの処理単位の画素データに着目して、データの流れを説明する。図10に示した画素データの流れでは、以下のような流れ(フロー)で処理が行われる。
(フローF11):まず、入力DMAモジュール22が、DRAM500に記憶されているブロック画像データに含まれるそれぞれの画素データを、DMAバス10を介したDMAによってユニットラインごとに読み出し、読み出した画素データを、接続切り替え部21を介して、次に画像処理を行う接続先の画像処理モジュール23−1に出力する。
(フローF12):続いて、画像処理モジュール23−1は、接続切り替え部21を介して接続先の入力DMAモジュール22から出力された画素データに対して予め定めた画像処理を施し、画像処理を施した後の処理画素データを、接続切り替え部21を介して、次に画像処理を行う接続先の画像処理モジュール23−2に出力する。
(フローF13):続いて、画像処理モジュール23−2は、接続切り替え部21を介して接続先の画像処理モジュール23−1から出力された処理画素データに対して予め定めた画像処理を施し、画像処理をさらに施した後の処理画素データを、接続切り替え部21を介して、次に画像処理を行うデジタルシグナルプロセッサ50に出力する。このとき、接続切り替え部21は、画像処理モジュール23−2から出力された処理画素データを、入出力用モジュール44に出力する。
(フローF14):続いて、入出力用モジュール44は、接続切り替え部21を介して接続先の画像処理モジュール23−2から出力された処理画素データにデジタルシグナルプロセッサ50を示す出力先情報を付加する。そして、入出力用モジュール44は、出力先情報を付加した処理画素データを、DMAバス10を介さずに直接、セレクタ部60に出力する。
(フローF15):続いて、セレクタ部60は、入出力用モジュール44から入力された処理画素データに付加された出力先情報に基づいて、処理画素データの入出力先の構成要素としてデジタルシグナルプロセッサ50を選択する。そして、セレクタ部60は、入出力用モジュール44からDMAバス10を介さずに直接入力された処理画素データを、選択したデジタルシグナルプロセッサ50に伝送する。
(フローF16):続いて、デジタルシグナルプロセッサ50は、画像処理装置2に備えたセレクタ部60を介して伝送された処理画素データに対して予め定めたDSP画像処理を施し、DSP画像処理を施した後の処理画素データ(DSP処理画素データ)を、セレクタ部60に出力する。
(フローF17):続いて、セレクタ部60は、デジタルシグナルプロセッサ50から出力されたDSP処理画素データを、DMAバス10を介さずに直接、入出力用モジュール44に出力する。
(フローF18):続いて、入出力用モジュール44は、セレクタ部60からDMAバス10を介さずに直接出力されたDSP処理画素データを、接続切り替え部21を介して、次に画像処理を行う接続先の画像処理モジュール23−3に出力する。
(フローF19):続いて、画像処理モジュール23−3は、接続切り替え部21を介して接続先の入出力用モジュール44から出力されたDSP処理画素データに対して予め定めた画像処理を施し、画像処理をさらに施した後のDSP処理画素データ(処理画素データ)を、接続切り替え部21を介して、出力DMAモジュール25に出力する。
(フローF20):続いて、出力DMAモジュール25は、接続切り替え部21を介して接続先の画像処理モジュール23−3から出力された処理画素データを、DMAバス10を介したDMAによってDRAM500に書き込む(記憶する)。
このようにして、画像処理装置2では、画像処理部40に構成されたパイプライン処理の中に、デジタルシグナルプロセッサ50によるDSP画像処理を組み込んだ一連の画像処理を実行する。
本第2の実施形態によれば、外部出力制御部(外部出力制御部443)は、複数の外部処理部(外部拡張処理装置600およびデジタルシグナルプロセッサ50)の内、いずれの外部処理部(外部拡張処理装置600またはデジタルシグナルプロセッサ50)に処理データ(入力データ,画素データ,処理画素データ)を出力するのかを示す出力先情報を処理データ(拡張画像処理に用いる入力データ,画素データ,処理画素データ)に付加する、画像処理装置(画像処理装置2)が構成される。
また、本第2の実施形態によれば、出力先情報は、外部処理部(外部拡張処理装置600またはデジタルシグナルプロセッサ50)が処理データ(入力データ,画素データ,処理画素データ)に対して行う外部処理(拡張画像処理,外部画像処理またはDSP画像処理)の設定(画像処理の設定)の情報が示された付加情報に含まれる、画像処理装置2が構成される。
上述したように、第2の実施形態の画像処理装置2では、パイプライン処理を行う画像処理部40内にセレクタ部60がDMAバス10を介さずに直接接続される入出力用モジュール44を備える。このとき、第2の実施形態の画像処理装置2では、入出力用モジュール44が、セレクタ部60が画素データを伝送する構成要素を選択するための出力先情報を画素データに付加して出力する。これにより、第2の実施形態の画像処理装置2では、セレクタ部60が、画素データに付加された出力先情報に基づいて画素データの入出力先の構成要素を選択し、パイプライン処理の途中の処理画素データを、出力先情報に示された画像処理部40の外部に備えた構成要素に伝送することができる。そして、第2の実施形態の画像処理装置2では、出力先情報に示された、画像処理部40の外部に備えた構成要素が画像処理を施した拡張処理画素データ(外部処理画素データまたはDSP処理画素データ)に対して、パイプライン処理における続きの画像処理を行うことができる。このことにより、第2の実施形態の画像処理装置2でも、第1の実施形態の画像処理装置1と同様に、すでに構成されたパイプライン処理による画像処理の中に、拡張性を持たせるために画像処理部40の外部に備えた構成要素による画像処理を組み込むことができる。
しかも、第2の実施形態の画像処理装置2でも、第1の実施形態の画像処理装置1と同様に、拡張する画像処理に用いる画素データを、DRAM500などの記憶部を用いずに、画像処理部40の外部に備えた構成要素との間で伝送することができる。このため、第2の実施形態の画像処理装置2でも、第1の実施形態の画像処理装置1と同様に、すでに構成されたパイプライン処理が分断されることなく、拡張する画像処理を組み込んだ状態で、一連の画像処理を行うことができる。このことにより、第2の実施形態の画像処理装置2でも、第1の実施形態の画像処理装置1と同様に、DRAMのバス帯域の圧迫や、画像処理装置2の消費電力の増大などが起こらず、第2の実施形態の画像処理装置2を搭載した撮像装置200の性能を低下させることなく、画像処理を拡張することができる。
なお、第2の実施形態の画像処理装置2では、画像処理装置2内の画像処理部40に備えた画像処理モジュール23−2と画像処理モジュール23−3との間に、デジタルシグナルプロセッサ50によるDSP画像処理を組み込む構成について説明した。しかし、上述したように、第2の実施形態の画像処理装置2では、セレクタ部60によって画素データの入出力先の構成要素を選択することができる。従って、第2の実施形態の画像処理装置2でも、第1の実施形態の画像処理装置1と同様に、外部拡張処理装置600による外部画像処理を組み込む構成を実現することができる。
なお、第2の実施形態の画像処理装置2でも、接続切り替え部21によって、画像処理部40が行う画像処理の順番や、パイプラインに組み込む拡張画像処理の位置の変更に対する考え方は、第1の実施形態の画像処理装置1と同様である。
また、第2の実施形態の画像処理装置2では、画像処理部40に備えた入出力用モジュール44が、画像処理装置2に備えたセレクタ部60と接続され、セレクタ部60を介して画像処理部40の外部に備えた構成要素との間で画素データのやり取りをする構成を示した。しかし、入出力用モジュール44の構成は、第2の実施形態において示した構成に限定されるものではない。例えば、入出力用モジュール44に、セレクタ部60および外部インターフェース部30の機能を備える構成にしてもよい。そして、この構成の入出力用モジュール44では、第1の実施形態における入出力用モジュール24と同様に、画像処理部40の外部に備えた構成要素における画素データの入力から出力までの遅延時間を考えて、出力バッファ部242および入力バッファ部245の構成を兼用してもよい。つまり、入出力用モジュール44におけるそれぞれの画素データのバッファリングを行わない構成にしてもよい。
なお、第1の実施形態の画像処理装置1では、画像処理部20に入出力用モジュール24を1つ備え、第2の実施形態の画像処理装置2では、画像処理部40に入出力用モジュール44を1つ備えた構成について説明した。しかし、本発明の画像処理装置では、画像処理部に備える入出力用モジュールの数は、第1の実施形態および第2の実施形態において示した数、すなわち、1つに限定されるものではない。つまり、本発明の画像処理装置では、画像処理部に複数の入出力用モジュールを備える構成にしてもよい。画像処理部に複数の入出力用モジュールを備えることによって、画像処理部の外部に備えた構成要素によって実行される画像処理を、画像処理部においてすでに構成されたパイプライン内の複数の位置に組み込むことができる。
(第3の実施形態)
次に、本発明の第3の実施形態について説明する。なお、以下の説明においても、本発明の第3の実施形態の画像処理装置が、例えば、静止画用カメラなどの撮像装置(以下、「撮像装置300」という)に搭載されている場合について説明する。図11は、本発明の第3の実施形態における画像処理装置の概略構成を示したブロック図である。なお、図11に示した本発明の第3の実施形態の画像処理装置3は、図7に示した第2の実施形態の画像処理装置2に備えた画像処理部40に、複数(2つ)の入出力用モジュール44を備えた構成である。
なお、図11には、本発明の第3の実施形態の画像処理装置3に関連する撮像装置300内の構成要素として、DRAM500と、外部拡張処理装置600と、DRAM700と、DMAバス810、拡張処理モジュール820、および外部インターフェース(I/F)部830を備えた外部拡張処理装置800と、DRAM900とを併せて示している。なお、外部拡張処理装置800は、入力された画素データに対して実施する予め定めたデジタル的な外部画像処理が異なる以外は、外部拡張処理装置600と同様の画像処理装置(システムLSI)である。また、DRAM900も、外部拡張処理装置800に接続されていること以外は、DRAM700と同様のデータ記憶部である。
図11に示した画像処理装置3は、DMAバス10と、画像処理部70と、2つの外部インターフェース(I/F)部30(外部インターフェース部30−1および外部インターフェース部30−2)と、デジタルシグナルプロセッサ(DSP)50と、セレクタ部80と、を備えている。また、画像処理部70は、接続切り替え部21と、入力DMAモジュール22と、3つの画像処理モジュール23−1〜画像処理モジュール23−3と、2つの入出力用モジュール44(入出力用モジュール44−1および入出力用モジュール44−2)と、出力DMAモジュール25と、を備えている。
図11に示した画像処理装置3の構成では、図7に示した第2の実施形態の画像処理装置2に備えた画像処理部40に2つの入出力用モジュール44を備えたことに伴って、第2の実施形態の画像処理装置2に備えた画像処理部40とセレクタ部60とが、画像処理部70とセレクタ部80とに代わっている。
なお、画像処理装置3および画像処理装置3に備えた画像処理部70における他の構成要素は、図7に示した第2の実施形態の画像処理装置2または画像処理装置2に備えた画像処理部40における構成要素と同様である。従って、以下の説明においては、画像処理装置3および画像処理装置3に備えた画像処理部70の構成要素において、図7に示した第2の実施形態の画像処理装置2または画像処理装置2に備えた画像処理部40の構成要素と同様の構成要素には同一の符号を付与し、それぞれの構成要素に関する詳細な説明は省略する。なお、図11においても、図7に示した撮像装置200と同様に、撮像装置300に備えたそれぞれの構成要素や画像処理装置3においてDMAバス10に接続される他の構成要素の図示を省略している。
画像処理部70は、図7に示した第2の実施形態の画像処理装置2に備えた画像処理部40と同様に、入力されたブロック画像データに対して、画像処理装置3において予め定められた種々の画像処理をパイプライン処理する。また、画像処理部70も、第2の実施形態の画像処理装置2に備えた画像処理部40と同様に、パイプラインの構成を変更する機能を備えている。
また、画像処理部70も、第2の実施形態の画像処理装置2に備えた画像処理部40と同様に、画像処理モジュール23−1〜画像処理モジュール23−3のそれぞれが実行する画像処理とは異なる画像処理をパイプライン処理に組み込む機能を備えている。ただし、画像処理装置3では、デジタルシグナルプロセッサ50が実行するDSP画像処理、外部拡張処理装置600が実行する外部画像処理、および外部拡張処理装置800が実行する外部画像処理の内、いずれか2つの拡張画像処理を、画像処理部70における画像処理を拡張する画像処理としてパイプライン処理に組み込むことができる。なお、画像処理装置3においても、第2の実施形態の画像処理装置2に備えた画像処理部40と同様に、画像処理部70におけるパイプラインの構成が、例えば、不図示のシステム制御部によって変更(設定)される。
図11には、画像処理モジュール23−1と画像処理モジュール23−2との間に入出力用モジュール44−1を組み込むことによって、外部拡張処理装置800が実行する外部画像処理がパイプラインに組み込まれ、画像処理モジュール23−2と画像処理モジュール23−3との間に入出力用モジュール44−2を組み込むことによって、外部拡張処理装置600が実行する外部画像処理がパイプラインに組み込まれる構成を示している。つまり、図11に示した画像処理部70では、画像処理モジュール23−1による画像処理、外部拡張処理装置800による画像処理、画像処理モジュール23−2による画像処理、外部拡張処理装置600による画像処理、および画像処理モジュール23−3による画像処理を順次行うパイプラインを構成している状態を示している。
なお、画像処理装置3においても、第2の実施形態の画像処理装置2に備えた画像処理部40と同様に、入出力用モジュール44をパイプラインに組み込む位置は、例えば、不図示のシステム制御部によって設定される。従って、画像処理装置3においても、第2の実施形態の画像処理装置2に備えた画像処理部40と同様に、入出力用モジュール44をパイプラインに組み込む位置は、図11に示した位置に限定されるものではなく、パイプライン内のいかなる位置にも組み込むことができる。
入出力用モジュール44−1および入出力用モジュール44−2のそれぞれは、第2の実施形態の画像処理装置2に備えた画像処理部40の入出力用モジュール44と同様である。ただし、画像処理装置3では、パイプラインの2カ所に画像処理部70の外部に備えた構成要素によって実行される拡張画像処理を組み込むため、それぞれの入出力用モジュール44が出力する外部出力データに含まれる出力先情報は、異なる構成要素を示している。このため、それぞれの入出力用モジュール44が出力した外部出力データは、セレクタ部80によって、出力先情報に対応する構成要素、つまり、デジタルシグナルプロセッサ50、外部拡張処理装置600、または外部拡張処理装置800のいずれかに出力される。また、それぞれの入出力用モジュール44に入力される外部入力データは、外部出力データに含まれる出力先情報に対応する構成要素から、セレクタ部80を介して入力される。
セレクタ部80は、第2の実施形態の画像処理装置2に備えたセレクタ部60と同様に、入出力用モジュール44のそれぞれが出力した外部出力データに含まれる出力先情報に基づいて、拡張画像処理に用いる画素データを伝送する構成要素を選択して出力する。そして、セレクタ部80は、選択した構成要素から伝送された外部入力データ(拡張処理画素データ)を、対応する入出力用モジュール44のいずれかに出力する。
このような構成によって撮像装置300では、画像処理装置3に備えた画像処理部70内の画像処理モジュール23のそれぞれが実行するパイプライン処理による一連の画像処理に、デジタルシグナルプロセッサ50が実行するDSP画像処理、外部拡張処理装置600が実行する外部画像処理、および外部拡張処理装置800が実行する外部画像処理の内、いずれか2つの拡張画像処理を組み込む。これにより、撮像装置300では、画像処理装置3のみでは実行することができない2つの画像処理を、デジタルシグナルプロセッサ50、外部拡張処理装置600、または外部拡張処理装置800によって、画像処理部70がパイプライン処理を行っているのと同様に実行し、画像処理部70のパイプライン処理による一連の画像処理を拡張することができる。
次に、2つの入出力用モジュール44によって画像処理部70の外部に備えたいずれかの構成要素による拡張画像処理を組み込んだパイプライン処理におけるデータの流れについて説明する。図12は、本発明の第3の実施形態における画像処理装置3内の画像処理部70に備えた入出力用モジュール44を含んだ画素データの流れを模式的に示した図である。図12には、画像処理部70において構成されたパイプライン処理の中に、外部拡張処理装置800による外部画像処理と、外部拡張処理装置600による外部画像処理とを組み込んだときの画素データの流れを示している。より具体的には、図11に示した撮像装置300の構成において、画像処理装置3内の画像処理部70に備えた画像処理モジュール23−1と画像処理モジュール23−2との間に入出力用モジュール44−1を組み込むことによって、外部拡張処理装置800による外部画像処理を、画像処理モジュール23−2と画像処理モジュール23−3との間に入出力用モジュール44−2を組み込むことによって、外部拡張処理装置800による外部画像処理を、パイプライン処理による一連の画像処理に組み込んだときの画素データの流れを示している。
画像処理装置3に備えた画像処理部70におけるパイプライン処理でも、第2の実施形態の画像処理装置2に備えた画像処理部40におけるパイプライン処理と同様に、画像処理モジュール23や、外部拡張処理装置800、外部拡張処理装置600のそれぞれが、入力された画素データに対する予め定めた異なる画像処理を同じ時期に並列に行うことによって、パイプライン処理がスムーズに行われるようにしている。しかし、図12に示した画素データの流れの説明においても、説明を容易にするため、第2の実施形態の画像処理装置2における画素データの流れの説明と同様に、1つの処理単位の画素データに着目して、データの流れを説明する。図12に示した画素データの流れでは、以下のような流れ(フロー)で処理が行われる。
(フローF21):まず、入力DMAモジュール22が、DRAM500に記憶されているブロック画像データに含まれるそれぞれの画素データを、DMAバス10を介したDMAによってユニットラインごとに読み出し、読み出した画素データを、接続切り替え部21を介して、次に画像処理を行う接続先の画像処理モジュール23−1に出力する。
(フローF22):続いて、画像処理モジュール23−1は、接続切り替え部21を介して接続先の入力DMAモジュール22から出力された画素データに対して予め定めた画像処理を施し、画像処理を施した後の処理画素データを、接続切り替え部21を介して、次に画像処理を行う外部拡張処理装置800に出力する。このとき、接続切り替え部21は、画像処理モジュール23−1から出力された処理画素データを、入出力用モジュール44−1に出力する。
(フローF23):続いて、入出力用モジュール44−1は、接続切り替え部21を介して接続先の画像処理モジュール23−1から出力された処理画素データに外部拡張処理装置800を示す出力先情報を付加する。そして、入出力用モジュール44−1は、出力先情報を付加した処理画素データを、DMAバス10を介さずに直接、セレクタ部80に出力する。
(フローF24):続いて、セレクタ部80は、入出力用モジュール44−1から入力された処理画素データに付加された出力先情報に基づいて、処理画素データの入出力先の構成要素として外部インターフェース部30−1を選択する。そして、セレクタ部80は、入出力用モジュール44−1からDMAバス10を介さずに直接入力された処理画素データを、選択した外部インターフェース部30−1に出力する。これにより、セレクタ部80を介して入出力用モジュール44−1から出力された処理画素データが、さらに外部インターフェース部30−1を介して外部拡張処理装置800に伝送される。
(フローF25):続いて、外部拡張処理装置800は、画像処理装置3に備えた外部インターフェース部30−1を介して伝送された処理画素データを外部インターフェース部830によって受け取り、DMAバス810を介して拡張処理モジュール820に出力する。そして、拡張処理モジュール820は、DMAバス810を介して外部インターフェース部830から出力された処理画素データに対して予め定めた外部画像処理を施し、外部画像処理を施した後の処理画素データ(外部処理画素データ)を、DMAバス810を介して外部インターフェース部830に出力する。
(フローF26):続いて、外部インターフェース部830は、DMAバス810を介して拡張処理モジュール820から出力された外部処理画素データを、画像処理装置3に伝送する。そして、画像処理装置3は、外部拡張処理装置800に備えた外部インターフェース部830を介して伝送された外部処理画素データを外部インターフェース部30−1によって受け取り、外部インターフェース部30−1は、受け取った外部処理画素データを、セレクタ部80に出力する。
(フローF27):続いて、セレクタ部80は、外部インターフェース部30−1から出力された外部処理画素データを、DMAバス10を介さずに直接、入出力用モジュール44−1に出力する。
(フローF28):続いて、入出力用モジュール44−1は、セレクタ部80からDMAバス10を介さずに直接出力された外部処理画素データを、接続切り替え部21を介して、次に画像処理を行う接続先の画像処理モジュール23−2に出力する。
(フローF29):続いて、画像処理モジュール23−2は、接続切り替え部21を介して接続先の入出力用モジュール44−1から出力された外部処理画素データに対して予め定めた画像処理を施し、画像処理をさらに施した後の外部処理画素データ(処理画素データ)を、接続切り替え部21を介して、次に画像処理を行う外部拡張処理装置600に出力する。このとき、接続切り替え部21は、画像処理モジュール23−2から出力された処理画素データを、入出力用モジュール44−2に出力する。
(フローF30):続いて、入出力用モジュール44−2は、接続切り替え部21を介して接続先の画像処理モジュール23−2から出力された処理画素データに外部拡張処理装置600を示す出力先情報を付加する。そして、入出力用モジュール44−2は、出力先情報を付加した処理画素データを、DMAバス10を介さずに直接、セレクタ部80に出力する。
(フローF31):続いて、セレクタ部80は、入出力用モジュール44−2から入力された処理画素データに付加された出力先情報に基づいて、処理画素データの入出力先の構成要素として外部インターフェース部30−2を選択する。そして、セレクタ部80は、入出力用モジュール44−2からDMAバス10を介さずに直接入力された処理画素データを、選択した外部インターフェース部30−2に出力する。これにより、セレクタ部80を介して入出力用モジュール44−2から出力された処理画素データが、さらに外部インターフェース部30−2を介して外部拡張処理装置600に伝送される。
(フローF32):続いて、外部拡張処理装置600は、画像処理装置3に備えた外部インターフェース部30−2を介して伝送された処理画素データを外部インターフェース部630によって受け取り、DMAバス610を介して拡張処理モジュール620に出力する。そして、拡張処理モジュール620は、DMAバス610を介して外部インターフェース部630から出力された処理画素データに対して予め定めた外部画像処理を施し、外部画像処理を施した後の処理画素データ(外部処理画素データ)を、DMAバス610を介して外部インターフェース部630に出力する。
(フローF33):続いて、外部インターフェース部630は、DMAバス610を介して拡張処理モジュール620から出力された外部処理画素データを、画像処理装置3に伝送する。そして、画像処理装置3は、外部拡張処理装置600に備えた外部インターフェース部630を介して伝送された外部処理画素データを外部インターフェース部30−2によって受け取り、外部インターフェース部30−2は、受け取った外部処理画素データを、セレクタ部80に出力する。
(フローF34):続いて、セレクタ部80は、外部インターフェース部30−2から出力された外部処理画素データを、DMAバス10を介さずに直接、入出力用モジュール44−2に出力する。
(フローF35):続いて、入出力用モジュール44−2は、セレクタ部80からDMAバス10を介さずに直接出力された外部処理画素データを、接続切り替え部21を介して、次に画像処理を行う接続先の画像処理モジュール23−3に出力する。
(フローF36):続いて、画像処理モジュール23−3は、接続切り替え部21を介して接続先の入出力用モジュール44−2から出力された外部処理画素データに対して予め定めた画像処理を施し、画像処理をさらに施した後の外部処理画素データ(処理画素データ)を、接続切り替え部21を介して、出力DMAモジュール25に出力する。
(フローF37):続いて、出力DMAモジュール25は、接続切り替え部21を介して接続先の画像処理モジュール23−3から出力された処理画素データを、DMAバス10を介したDMAによってDRAM500に書き込む(記憶する)。
このようにして、画像処理装置3では、画像処理部70に構成されたパイプライン処理の中に、外部拡張処理装置800による外部画像処理と、外部拡張処理装置600による外部画像処理とを組み込んだ一連の画像処理を実行する。
上述したように、第3の実施形態の画像処理装置3では、パイプライン処理を行う画像処理部70内にセレクタ部80がDMAバス10を介さずに直接接続される2つの入出力用モジュール44を備える。このとき、第3の実施形態の画像処理装置3では、それぞれの入出力用モジュール44が、セレクタ部80が画素データを伝送する構成要素を選択するための出力先情報を画素データに付加して出力する。これにより、第3の実施形態の画像処理装置3では、セレクタ部80が、画素データに付加された出力先情報に基づいて、それぞれの入出力用モジュール44に対応する画素データの入出力先の構成要素をそれぞれ選択して、それぞれの入出力用モジュール44の位置におけるパイプライン処理の途中の処理画素データを、出力先情報に示された画像処理部70の外部に備えたそれぞれの構成要素に伝送することができる。そして、第3の実施形態の画像処理装置3では、それぞれの入出力用モジュール44の位置において、画像処理部70の外部に備えた構成要素が画像処理を施した拡張処理画素データ(外部処理画素データまたはDSP処理画素データ)に対して、それぞれの入出力用モジュール44の位置における続きのパイプライン処理の画像処理を行うことができる。このことにより、第3の実施形態の画像処理装置3でも、第2の実施形態の画像処理装置2と同様に、すでに構成されたパイプライン処理による画像処理の中に、拡張性を持たせるために画像処理部70の外部に備えた複数の構成要素による複数の画像処理を組み込むことができる。
しかも、第3の実施形態の画像処理装置3でも、第2の実施形態の画像処理装置2と同様に、拡張する画像処理に用いる画素データを、DRAM500などの記憶部を用いずに、画像処理部70の外部に備えた複数の構成要素との間で伝送することができる。このため、第3の実施形態の画像処理装置3でも、第2の実施形態の画像処理装置2と同様に、すでに構成されたパイプライン処理が分断されることなく、拡張する複数の画像処理を組み込んだ状態で、一連の画像処理を行うことができる。このことにより、第3の実施形態の画像処理装置3でも、第2の実施形態の画像処理装置2と同様に、DRAMのバス帯域の圧迫や、画像処理装置3の消費電力の増大などが起こらず、第3の実施形態の画像処理装置3を搭載した撮像装置300の性能を低下させることなく、画像処理を拡張することができる。
なお、第3の実施形態の画像処理装置3では、画像処理装置3内の画像処理部70に備えた画像処理モジュール23−1と画像処理モジュール23−2との間、および画像処理モジュール23−2と画像処理モジュール23−3との間のそれぞれの位置に、外部拡張処理装置800または外部拡張処理装置600による外部画像処理を組み込む構成について説明した。しかし、上述したように、第3の実施形態の画像処理装置3でも、セレクタ部80によって画素データの入出力先の構成要素を選択することができるため、画像処理部70におけるパイプライン内のいかなる位置にも、デジタルシグナルプロセッサ50によるDSP画像処理を組み込む構成を実現することができる。
また、第3の実施形態の画像処理装置3では、画像処理装置3内の画像処理部70に備えた画像処理モジュール23−1と画像処理モジュール23−2との間に入出力用モジュール44−1を組み込み、画像処理モジュール23−2と画像処理モジュール23−3との間に入出力用モジュール44−2を組み込む構成について説明した。しかし、上述したように、第3の実施形態の画像処理装置3でも、接続切り替え部21によって、画像処理部70が行う画像処理の順番や、パイプラインに組み込む入出力用モジュール44の位置を変更することができる。このため、入出力用モジュール44−1と入出力用モジュール44−2とを連続してパイプラインに組み込む構成にすることもできる。例えば、画像処理モジュール23−1と画像処理モジュール23−2との間に、外部拡張処理装置800による外部画像処理と外部拡張処理装置600による外部画像処理とを連続して組み込む構成にすることもできる。
なお、第3の実施形態の画像処理装置3でも、接続切り替え部21によって、画像処理部70が行う画像処理の順番や、パイプラインに組み込む拡張画像処理の位置の変更に対する考え方は、第2の実施形態の画像処理装置2と同様である。
なお、第3の実施形態の画像処理装置3では、外部インターフェース部30−1が外部拡張処理装置800に処理画素データを伝送し、外部インターフェース部30−2が外部拡張処理装置600に処理画素データを伝送する構成を示した。つまり、外部インターフェース部30は、画像処理装置3の外部に備えた1つの構成要素に対応する構成である場合について説明した。しかし、外部インターフェース部30が対応する外部の構成要素は、1つの構成要素に限定されるものではなく、外部の複数の構成要素に対応する構成であってもよい。例えば、外部インターフェース部30は、複数のチャンネルに対応したPCI−Express仕様の接続部であってもよい。この場合、外部インターフェース部30は、入力された処理画素データに付加された出力先情報に基づいて、その処理画素データに対して画像処理を実行する外部の構成要素を選択し、選択した構成要素に処理画素データを伝送する構成にしてもよい。
なお、第1の実施形態の画像処理装置1では、画像処理装置1に備えた画像処理部20における一連のパイプライン処理に、画像処理装置1の外部に接続された外部拡張処理装置600による外部画像処理を組み込む構成について説明した。また、第2の実施形態の画像処理装置2では、画像処理装置2に備えた画像処理部40における一連のパイプライン処理に、画像処理部40の外部に接続されたデジタルシグナルプロセッサ50によるDSP画像処理を組み込む構成について説明した。さらに、第3の実施形態の画像処理装置3では、画像処理装置3に備えた画像処理部70における一連のパイプライン処理に、画像処理装置3の外部に接続された外部拡張処理装置800による外部画像処理と、外部拡張処理装置600による外部画像処理とを組み込む構成について説明した。つまり、第1の実施形態〜第3の実施形態では、画像処理部においてパイプライン処理の途中まで実行した処理画素データを画像処理部の外部に一旦伝送し、画像処理部の外部で画像処理を施した処理画素データ(拡張処理画素データ)が伝送された後に、画像処理部においてパイプライン処理の続きの画像処理を行う構成について説明した。
しかし、画像処理装置を搭載した、例えば、撮像装置の構成によっては、画像処理装置に備えた画像処理部において、途中からパイプライン処理を実行する構成も考えられる。より具体的には、例えば、撮像装置に搭載した固体撮像素子が出力する画素データの構造が、画像処理部に構成されたパイプライン処理に入力する画素データの構造と異なる場合などが考えられる。この場合、撮像装置では、構造が異なる画素データを出力する固体撮像素子に対応した外部の撮像処理装置を搭載し、画像処理装置に備えた画像処理部に構成されたパイプライン処理における前段の画像処理と異なる方法の画像処理を外部の撮像処理装置が実行し、その後、外部の撮像処理装置による画像処理に引き続き、画像処理装置に備えた画像処理部に構成されたパイプライン処理における後段の画像処理を行うことが考えられる。
また、画像処理装置を搭載した、例えば、撮像装置の構成によっては、画像処理装置に備えた画像処理部において、パイプライン処理を途中まで実行する構成も考えられる。より具体的には、例えば、撮像装置に搭載した表示部に入力する画素データの構造が、画像処理部に構成されたパイプライン処理から出力する画素データの構造と異なる場合などが考えられる。この場合、撮像装置では、構造が異なる画素データを入力する表示部に対応した外部の表示処理装置を搭載し、画像処理部に構成されたパイプライン処理における前段の画像処理を画像処理装置が実行し、その後、画像処理装置による前段の画像処理に引き続き、外部の表示処理装置が、画像処理部に構成されたパイプライン処理における後段の画像処理と異なる方法の画像処理を行って表示部に出力することが考えられる。
つまり、画像処理装置では、画像処理部においてパイプライン処理を実行した処理画素データを画像処理部の外部に伝送(出力)するのみ、または、画像処理装置(または画像処理部)の外部の構成要素において拡張画像処理が施された拡張処理画素データが伝送(入力)されるのみである構成も考えられる。この場合、画像処理部に備えた入出力用モジュールにおいて、画像処理部の外部への処理画素データの伝送(出力)に関連する構成要素、または画像処理部の外部からの拡張処理画素データの伝送(入力)に関連する構成要素のいずれか一方を動作させることによって、外部の構成要素への処理画素データの伝送(出力)のみ、または外部の構成要素からの拡張処理画素データの伝送(入力)のみを行う構成を実現することができる。
(第1の応用例)
次に、本発明の第1の応用例について説明する。第1の応用例は、画像処理部に備えた入出力用モジュールにおいて、画像処理部の外部からの拡張処理画素データの伝送(入力)に関連する構成要素のみを動作させることによって、外部の構成要素からの拡張処理画素データの伝送(入力)のみを実現する構成の一例である。なお、以下の説明においては、本発明の第1の実施形態の画像処理装置1が、例えば、静止画用カメラなどの撮像装置(以下、「撮像装置400」という)に搭載されている場合について説明する。なお、第2の実施形態の画像処理装置2および第3の実施形態の画像処理装置3においても、同様に考えることができる。
図13は、本発明の第1の実施形態の画像処理装置1を搭載した第1の応用例の概略構成を示したブロック図である。なお、図13には、第1の応用例の構成の撮像装置400において、画像処理装置1に関連する構成要素として、DRAM500と、DMAバス1010、撮像処理部1020、および外部インターフェース(I/F)部1030を備えた外部拡張処理装置1000と、イメージセンサ1100と、DRAM2000とを併せて示している。なお、図13においては、図1に示した撮像装置100と同様に、撮像装置400に備えたそれぞれの構成要素や画像処理装置1においてDMAバス10に接続される他の構成要素の図示を省略している。
イメージセンサ1100は、撮像装置400に備えたレンズによって結像された被写体の光学像を光電変換した画素信号を出力する固体撮像素子である。また、外部拡張処理装置1000は、イメージセンサ1100の制御や、イメージセンサ1100から入力された画素信号に対して予め定めた撮像処理を施し、さらに予め定めたデジタル的な外部画像処理を施したデジタル信号の画素データを出力する撮像処理装置(システムLSI)である。また、DRAM2000は、外部拡張処理装置1000において処理される様々なデータを記憶するデータ記憶部である。なお、DRAM2000は、図1に示した撮像装置100において外部拡張処理装置600に接続されたDRAM700と同様のデータ記憶部であってもよい。つまり、DRAM2000は、外部拡張処理装置1000に接続されていること以外は、DRAM700と同様であってもよい。
図13に示した画像処理装置1では、外部拡張処理装置1000が外部画像処理を施した後の処理画素データ(外部処理画素データ)に対して、続きの画像処理を行う。より具体的には、図13に示した画像処理装置1では、画像処理部20において、外部拡張処理装置1000から出力された外部処理画素データに対して、画像処理モジュール23−2以降の予め定められた種々の画像処理をパイプライン処理し、処理画素データをDRAM500に書き込む(記憶する)。このため、画像処理部20では、入出力用モジュール24を、画像処理モジュール23−2の前段に接続している。つまり、画像処理部20では、接続切り替え部21が、入出力用モジュール24の出力端子と画像処理モジュール23−2の入力端子とを接続するように、それぞれの構成要素の接続を切り替えている。そして、画像処理部20では、外部拡張処理装置1000からの外部処理画素データの伝送(入力)に関連する構成要素、つまり、入出力用モジュール24に備えた外部入力制御部244、入力バッファ部245、および画像処理モジュール出力制御部246のみを動作させる。これにより、図13に示した画像処理装置1では、外部拡張処理装置1000から出力された外部処理画素データに対して、引き続き、画像処理モジュール23−2による画像処理、および画像処理モジュール23−3による画像処理を順次行うパイプライン処理を行って、処理画素データをDRAM500に書き込む(記憶する)。
次に、外部拡張処理装置1000から出力された外部処理画素データに対して続きの画像処理を行うパイプライン処理におけるデータの流れについて説明する。図14は、本発明の第1の応用例における画像処理装置1内の画像処理部20に備えた入出力用モジュール24を含んだ画素データの流れを模式的に示した図である。図14には、外部拡張処理装置1000による外部画像処理に引き続き、画像処理部20において構成されたパイプライン処理を途中から行うときの画素データの流れを示している。より具体的には、図13に示した撮像装置400の構成において、画像処理装置1内の画像処理部20に備えた画像処理モジュール23−2の前段に入出力用モジュール24を組み込むことによって、外部拡張処理装置1000による外部画像処理の続きのパイプライン処理を行うときの画素データの流れを示している。
図13に示した画像処理装置1に備えた画像処理部20におけるパイプライン処理でも、外部拡張処理装置1000や、画像処理モジュール23のそれぞれが、入力された画素信号や画素データに対する予め定めた異なる画像処理を同じ時期に並列に行うことによって、パイプライン処理がスムーズに行われるようにしている。しかし、図14に示した画素データの流れの説明においても、説明を容易にするため、図6に示した画像処理装置1における画素データの流れの説明と同様に、1つの処理単位の画素データに着目して、データの流れを説明する。図14に示した画素データの流れでは、以下のような流れ(フロー)で処理が行われる。
(フローF41):まず、外部拡張処理装置1000は、イメージセンサ1100から入力された画素信号に対して撮像処理部1020が予め定めた撮像処理および外部画像処理を施し、外部画像処理を施した後の外部処理画素データを、DMAバス1010を介してDRAM2000に一旦書き込む(記憶する)。その後、外部拡張処理装置1000は、DRAM2000に記憶された外部処理画素データを読み出して、DMAバス1010を介して外部インターフェース部1030に出力する。
(フローF42):続いて、外部インターフェース部1030は、DMAバス1010を介してDRAM2000から出力された(読み出された)外部処理画素データを、画像処理装置1に伝送する。そして、画像処理装置1は、外部拡張処理装置1000に備えた外部インターフェース部1030を介して伝送された外部処理画素データを外部インターフェース部30によって受け取り、外部インターフェース部30は、受け取った外部処理画素データを、DMAバス10を介さずに直接、入出力用モジュール24に出力する。
(フローF43):続いて、入出力用モジュール24は、外部インターフェース部30を介して、外部拡張処理装置1000から伝送された外部処理画素データを、接続切り替え部21を介して、次に画像処理を行う接続先の画像処理モジュール23−2に出力する。
(フローF44):続いて、画像処理モジュール23−2は、接続切り替え部21を介して接続先の入出力用モジュール24から出力された外部処理画素データに対して予め定めた画像処理を施し、画像処理を施した後の外部処理画素データ(処理画素データ)を、接続切り替え部21を介して、次に画像処理を行う接続先の画像処理モジュール23−3に出力する。
(フローF45):続いて、画像処理モジュール23−3は、接続切り替え部21を介して接続先の画像処理モジュール23−2から出力された処理画素データに対して予め定めた画像処理を施し、画像処理をさらに施した後の処理画素データを、接続切り替え部21を介して、出力DMAモジュール25に出力する。
(フローF46):続いて、出力DMAモジュール25は、接続切り替え部21を介して接続先の画像処理モジュール23−3から出力された処理画素データを、DMAバス10を介したDMAによってDRAM500に書き込む(記憶する)。
このようにして、画像処理装置1では、外部拡張処理装置1000が外部画像処理を施した後の処理画素データ(外部処理画素データ)に対して、画像処理部20に構成されたパイプライン処理の途中から続きの画像処理を行うこともできる。つまり、画像処理装置1では、入出力用モジュール24を、外部拡張処理装置1000からの外部処理画素データの伝送(入力)のみに用いることもできる。言い換えれば、画像処理装置1では、あたかもDRAM500に記憶されているブロック画像データに含まれるそれぞれの画素データに対するパイプライン処理を行っているかのように、画像処理部20に構成されたパイプライン処理を途中から行うことができる。
(第2の応用例)
次に、本発明の第2の応用例について説明する。第2の応用例は、画像処理部に備えた入出力用モジュールにおいて、画像処理部の外部への処理画素データの伝送(出力)に関連する構成要素のみを動作させることによって、外部の構成要素への処理画素データの伝送(出力)のみを実現する構成の一例である。なお、以下の説明においては、本発明の第1の実施形態の画像処理装置1が、例えば、静止画用カメラなどの撮像装置(以下、「撮像装置450」という)に搭載されている場合について説明する。なお、第2の実施形態の画像処理装置2および第3の実施形態の画像処理装置3においても、同様に考えることができる。
図15は、本発明の第1の実施形態の画像処理装置1を搭載した第2の応用例の概略構成を示したブロック図である。なお、図15には、第2の応用例の構成の撮像装置450において、画像処理装置1に関連する構成要素として、DRAM500と、DMAバス3010、表示処理部3020、および外部インターフェース(I/F)部3030を備えた外部拡張処理装置3000と、表示デバイス3100と、DRAM4000とを併せて示している。なお、図15においては、図1に示した撮像装置100および図13に示した撮像装置400と同様に、撮像装置450に備えたそれぞれの構成要素や画像処理装置1においてDMAバス10に接続される他の構成要素の図示を省略している。
表示デバイス3100は、外部拡張処理装置3000によって処理された撮像装置450における画像のデータを表示させる、例えば、液晶ディスプレイ(LCD:Liquid Crystal Display)などの表示装置である。また、外部拡張処理装置3000は、画像処理装置1から入力された画素データに対して、表示デバイス3100に表示させるための予め定めた表示処理を施した画像のデータを出力する表示処理装置(システムLSI)である。また、DRAM4000は、外部拡張処理装置3000において処理される様々なデータを記憶するデータ記憶部である。なお、DRAM4000は、図1に示した撮像装置100において外部拡張処理装置600に接続されたDRAM700や、図13に示した撮像装置400において外部拡張処理装置1000に接続されたDRAM2000と同様のデータ記憶部であってもよい。つまり、DRAM4000は、外部拡張処理装置3000に接続されていること以外は、DRAM700やDRAM2000と同様であってもよい。
図15に示した画像処理装置1では、画像処理部20における画像処理のパイプライン処理を途中まで施した処理画素データを、外部拡張処理装置3000に出力する。より具体的には、図15に示した画像処理装置1では、画像処理部20において、DRAM500から読み出した画素データに対して画像処理モジュール23−2以前の予め定められた種々の画像処理をパイプライン処理した処理画素データを外部拡張処理装置3000に出力する。このため、画像処理部20では、入出力用モジュール24を、画像処理モジュール23−2の後段に接続している。つまり、画像処理部20では、接続切り替え部21が、画像処理モジュール23−2の出力端子と入出力用モジュール24の入力端子とを接続するように、それぞれの構成要素の接続を切り替えている。そして、画像処理部20では、外部拡張処理装置3000への処理画素データの伝送(出力)に関連する構成要素、つまり、入出力用モジュール24に備えた画像処理モジュール入力制御部241、出力バッファ部242、および外部出力制御部243のみを動作させる。これにより、図15に示した画像処理装置1では、DRAM500から読み出した画素データに対して、画像処理モジュール23−1による画像処理、および画像処理モジュール23−2による画像処理を順次行うパイプライン処理を行った処理画素データを外部拡張処理装置3000に出力する。
次に、画像処理部20が画像処理のパイプライン処理を途中まで施した処理画素データを外部拡張処理装置3000に出力する際のパイプライン処理におけるデータの流れについて説明する。図16は、本発明の第2の応用例における画像処理装置1内の画像処理部20に備えた入出力用モジュール24を含んだ画素データの流れを模式的に示した図である。図16には、画像処理部20において構成されたパイプライン処理を途中まで行って外部拡張処理装置3000に出力するときの画素データの流れを示している。より具体的には、図15に示した撮像装置450の構成において、画像処理装置1内の画像処理部20に備えた画像処理モジュール23−2の後段に入出力用モジュール24を組み込むことによって、画像処理モジュール23−2までのパイプライン処理を行って外部拡張処理装置3000に出力するときの画素データの流れを示している。
図15に示した画像処理装置1に備えた画像処理部20におけるパイプライン処理でも、画像処理モジュール23や、外部拡張処理装置3000のそれぞれが、入力された画素データや処理画素データに対する予め定めた異なる画像処理を同じ時期に並列に行うことによって、パイプライン処理がスムーズに行われるようにしている。しかし、図16に示した画素データの流れの説明においても、説明を容易にするため、図6に示した撮像装置100に搭載した画像処理装置1における画素データの流れの説明、および図14に示した撮像装置400に搭載した画像処理装置1における画素データの流れの説明と同様に、1つの処理単位の画素データに着目して、データの流れを説明する。図16に示した画素データの流れでは、以下のような流れ(フロー)で処理が行われる。
(フローF51):まず、入力DMAモジュール22が、DRAM500に記憶されているブロック画像データに含まれるそれぞれの画素データを、DMAバス10を介したDMAによってユニットラインごとに読み出し、読み出した画素データを、接続切り替え部21を介して、次に画像処理を行う接続先の画像処理モジュール23−1に出力する。
(フローF52):続いて、画像処理モジュール23−1は、接続切り替え部21を介して接続先の入力DMAモジュール22から出力された画素データに対して予め定めた画像処理を施し、画像処理を施した後の処理画素データを、接続切り替え部21を介して、次に画像処理を行う接続先の画像処理モジュール23−2に出力する。
(フローF53):続いて、画像処理モジュール23−2は、接続切り替え部21を介して接続先の画像処理モジュール23−1から出力された処理画素データに対して予め定めた画像処理を施し、画像処理をさらに施した後の処理画素データを、接続切り替え部21を介して、出力先の外部拡張処理装置3000に出力する。このとき、接続切り替え部21は、画像処理モジュール23−2から出力された処理画素データを、入出力用モジュール24に出力する。
(フローF54):続いて、入出力用モジュール24は、接続切り替え部21を介して接続先の画像処理モジュール23−2から出力された処理画素データを、DMAバス10を介さずに直接、外部インターフェース部30に出力し、外部インターフェース部30を介して、外部拡張処理装置3000に伝送する。
(フローF55):続いて、外部拡張処理装置3000は、画像処理装置1に備えた外部インターフェース部30を介して伝送された処理画素データを外部インターフェース部3030によって受け取り、DMAバス3010を介してDRAM4000に一旦書き込む(記憶する)。その後、外部拡張処理装置3000は、DRAM4000に記憶された処理画素データを読み出して、DMAバス3010を介して表示処理部3020に出力し、表示処理部3020が読み出した処理画素データに対して予め定めた表示処理を施した画像のデータを施して表示デバイス3100に出力する。これにより、表示デバイス3100は、外部拡張処理装置3000から出力された画像のデータに応じた画像を表示させる。
このようにして、画像処理装置1では、画像処理部20に構成されたパイプライン処理を途中まで行った処理画素データを、外部拡張処理装置3000に出力することもできる。つまり、画像処理装置1では、入出力用モジュール24を、処理画素データの外部拡張処理装置3000への伝送(出力)のみに用いることもできる。言い換えれば、画像処理装置1では、パイプライン処理を行った処理画素データを、あたかもDRAM500に書き込む(記憶する)かのように、画像処理部20に構成されたパイプライン処理を途中まで行うことができる。
本第1の応用例および第2の応用例によれば、入力されたデータ(画素データ)に対して予め定めた処理を行う複数の処理モジュール(画像処理モジュール23−1〜画像処理モジュール23−3)を直列に接続してパイプラインを構成し、画像処理モジュール23−1〜画像処理モジュール23−3のそれぞれが処理を順次行うことによってパイプライン処理を行う画像処理部(画像処理部20)がデータバス(DMAバス10)に接続され、DMAバス10に接続されたデータ記憶部(DRAM500)からDMAバス10を介して読み出した画素データに対して画像処理を行う画像処理装置(画像処理装置1)であって、画像処理部20は、画像処理モジュール23−1〜画像処理モジュール23−3のそれぞれが行う処理と異なる処理を行う処理モジュールとしてパイプライン内に組み込まれる入出力用モジュール(入出力用モジュール24)、を備え、入出力用モジュール24は、パイプラインにおいて組み込まれた位置の前段に位置する処理モジュールである第1の処理モジュール(例えば、画像処理モジュール23−2)が処理を行った処理データ(入力データ,画素データ,処理画素データ)を、DMAバス10を介さずに直接、画像処理部20の外部の外部処理部(例えば、外部拡張処理装置3000)に(外部出力データとして)出力するか、もしくは、画像処理部20の外部の外部処理部(例えば、外部拡張処理装置1000)から入力された外部処理データ(外部入力データ,外部処理画素データ)を、DMAバス10を介さずに直接、パイプラインにおいて組み込まれた位置の後段に位置する処理モジュールである第2の処理モジュール(例えば、画像処理モジュール23−2)に出力するか、もしくは、処理データ(入力データ,画素データ,処理画素データ)のDMAバス10を介さない画像処理部20の外部の外部処理部(例えば、外部拡張処理装置600)への(外部出力データとして)直接の出力、および外部拡張処理装置600によって処理データ(入力データ,画素データ,処理画素データ)に対して外部処理(外部画像処理)が行われて入力された外部処理データ(外部入力データ,外部処理画素データ)のDMAバス10を介さない第2の処理モジュール(例えば、画像処理モジュール23−3)への(出力データとして)直接の出力の両方を行う、画像処理装置(画像処理装置1)が構成される。
上述したように、第1の応用例の画像処理装置1では、入出力用モジュール24に備えた外部入力制御部244、入力バッファ部245、および画像処理モジュール出力制御部246のみを動作させることによって、外部拡張処理装置1000が外部画像処理を施した後の処理画素データ(外部処理画素データ)に対して、画像処理部20に構成されたパイプライン処理の途中から続きの画像処理を行うことができる。また、上述したように、第2の応用例の画像処理装置1では、入出力用モジュール24に備えた画像処理モジュール入力制御部241、出力バッファ部242、および外部出力制御部243のみを動作させることによって、画像処理部20に構成されたパイプライン処理を途中まで行った処理画素データを、外部拡張処理装置3000に出力することができる。このことにより、第1の応用例の画像処理装置1および第2の応用例の画像処理装置1では、すでに構成されたパイプライン処理による画像処理の中に、画像処理装置1の開発時に想定されていなかった外部の構成要素(外部拡張処理装置1000や外部拡張処理装置3000)による画像処理を組み込むことができる。
なお、第1の応用例の画像処理装置1では、外部拡張処理装置1000に接続されたDRAM2000に一旦書き込んだ(記憶した)外部処理画素データを、画像処理装置1に伝送(入力)する構成について説明した。しかし、外部拡張処理装置1000は、DRAM2000を介さずに、外部処理画素データを伝送(入力)する構成であってもよい。つまり、外部拡張処理装置1000は、撮像処理部1020が出力した外部処理画素データを、DMAバス1010および外部インターフェース部1030を介して、第1の応用例の画像処理装置1に伝送(入力)する構成であってもよい。また、第2の応用例の画像処理装置1では、画像処理装置1が伝送(出力)した処理画素データを、外部拡張処理装置3000に接続されたDRAM4000に一旦書き込んだ(記憶した)後に表示処理を施す構成について説明した。しかし、外部拡張処理装置3000は、DRAM4000を介さずに、画像処理装置1が伝送(出力)した処理画素データを受け取る構成であってもよい。つまり、外部拡張処理装置3000は、画像処理装置1が伝送(出力)した処理画素データを、外部インターフェース部3030およびDMAバス3010を介して、表示処理部3020に出力する構成であってもよい。
上記に述べたように、本発明の各実施形態によれば、画像処理装置に備えた画像処理部に、画像処理部の外部に備えた構成要素と、DMAバスを介さずに直接接続するための入出力用モジュールを備える。つまり、本発明の各実施形態では、画像処理部において実行する画像処理を拡張するため、画像処理部に備えたいずれの画像処理モジュールにおいても実行しない画像処理を行う画像処理装置と、DMAバスを介さずに直接接続するための入出力用モジュールを備える。また、本発明の各実施形態では、画像処理部に備えたそれぞれの処理モジュールの接続を切り替える、つまり、画像処理部に構成するパイプラインの接続を切り替えるための接続切り替え部を備える。そして、本発明の各実施形態では、画像処理装置において実行する画像処理を拡張する場合に、画像処理部に構成するパイプラインの中に、入出力用モジュールを画像処理モジュールとして組み込む。これにより、本発明の各実施形態では、画像処理部に備えたそれぞれの画像処理モジュールが実行するパイプライン処理による一連の画像処理に、画像処理部の外部に備えた構成要素が実行する画像処理を組み込むことができる。このことにより、本発明の各実施形態では、画像処理部に備えたそれぞれの画像処理モジュールがパイプライン処理を行っているのと同様に、画像処理部のパイプライン処理による一連の画像処理を拡張することができる。
しかも、本発明の各実施形態では、画像処理装置に備えた入出力用モジュールは、画像処理部の外部に備えた構成要素に、DMAバスを介さずに直接、拡張する画像処理に用いる画素データを伝送する。このため、本発明の各実施形態では、画像処理部に備えたそれぞれの画像処理モジュールによってすでに構成されたパイプライン処理が分断されることなく、拡張する画像処理を組み込んだ状態で、一連の画像処理を行うことができる。このことにより、本発明の各実施形態では、DMAバスのバス帯域の圧迫や、画像処理装置の消費電力の増大などが起こらず、画像処理装置を搭載した撮像装置の性能を低下させることなく、画像処理を拡張することができる。例えば、第1の実施形態の画像処理装置1を搭載することによって、基本的な画像処理を行う撮像装置を実現し、画像処理装置1と外部拡張処理装置600との両方を搭載することによって、高機能な画像処理を行う撮像装置を実現することができる。
なお、本発明の各実施形態では、画像処理装置に備えた画像処理部内にパイプラインを構成するそれぞれの処理モジュールを備えた構成について説明した。しかし、パイプライン構成によって一連の処理を行う処理装置は、画像処理装置の他にも種々の処理装置が考えられる。また、パイプライン構成による一連の処理の拡張が求められるシステムも撮像装置の他にも種々のシステムが考えられる。従って、本発明の考え方を適用することができる処理装置やシステムは、本発明の各実施形態で示した画像処理装置や撮像装置に限定されるものではなく、複数の処理モジュールを直列に接続することによってパイプラインを構成してパイプライン処理を行う処理装置を搭載したシステムであれば、本発明の考え方を同様に適用することができ、本発明と同様の効果を得ることができる。
以上、本発明の好ましい実施形態を説明したが、本発明はこれら実施形態およびその変形例に限定されることはない。本発明の趣旨を逸脱しない範囲で、構成の付加、省略、置換、およびその他の変更が可能である。
また、本発明は前述した説明によって限定されることはなく、添付のクレームの範囲によってのみ限定される。
上記各実施形態によれば、パイプライン処理を行う構成の画像処理装置において、パイプラインによって行っている一連の画像処理の間に他の画像処理を挿入することができる。
1,2,3 画像処理装置(画像処理装置)
10 DMAバス(データバス)
20 画像処理部(画像処理部)
21 接続切り替え部(画像処理部)
22 入力DMAモジュール(画像処理部)
23−1,23−2,23−3 画像処理モジュール(画像処理部,処理モジュール)
24 入出力用モジュール(画像処理部,入出力用モジュール)
241 画像処理モジュール入力制御部(画像処理部,入出力用モジュール,処理モジュール入力制御部)
2411 出力バッファ空き容量管理部(画像処理部,入出力用モジュール,処理モジュール入力制御部)
2412 出力バッファ書き込み管理部(画像処理部,入出力用モジュール,処理モジュール入力制御部)
242 出力バッファ部(画像処理部,入出力用モジュール,出力バッファ部)
2421 セレクタ(画像処理部,入出力用モジュール,出力バッファ部)
2422−1,2422−2 出力バッファ(画像処理部,入出力用モジュール,出力バッファ部)
2423 セレクタ(画像処理部,入出力用モジュール,出力バッファ部)
243 外部出力制御部(画像処理部,入出力用モジュール,外部出力制御部)
2431 出力バッファデータ量管理部(画像処理部,入出力用モジュール,外部出力制御部)
2432 出力バッファ読み出し管理部(画像処理部,入出力用モジュール,外部出力制御部)
244 外部入力制御部(画像処理部,入出力用モジュール,外部入力制御部)
2441 入力バッファ空き容量管理部(画像処理部,入出力用モジュール,外部入力制御部)
2442 入力バッファ書き込み管理部(画像処理部,入出力用モジュール,外部入力制御部)
245 入力バッファ部(画像処理部,入出力用モジュール,入力バッファ部)
2451 セレクタ(画像処理部,入出力用モジュール,入力バッファ部)
2452−1,2452−2 入力バッファ(画像処理部,入出力用モジュール,入力バッファ部)
2453 セレクタ(画像処理部,入出力用モジュール,入力バッファ部)
246 画像処理モジュール出力制御部(画像処理部,入出力用モジュール,処理モジュール出力制御部)
2461 入力バッファデータ量管理部(画像処理部,入出力用モジュール,処理モジュール出力制御部)
2462 入力バッファ読み出し管理部(画像処理部,入出力用モジュール,処理モジュール出力制御部)
25 出力DMAモジュール(画像処理部)
30,30−1,30−2 外部インターフェース部(外部処理部)
40 画像処理部(画像処理部)
44,44−1,44−2 入出力用モジュール(画像処理部,入出力用モジュール)
443 外部出力制御部(画像処理部,入出力用モジュール,外部出力制御部)
4432 出力バッファ読み出し管理部(画像処理部,入出力用モジュール,外部出力制御部)
50 デジタルシグナルプロセッサ(外部処理部)
60 セレクタ部(外部処理部)
70 画像処理部(画像処理部)
80 セレクタ部(外部処理部)
100,200,300 撮像装置
500 DRAM(データ記憶部)
600,800 外部拡張処理装置(外部処理部)
610,810 DMAバス(外部処理部)
620,820 拡張処理モジュール(外部処理部)
630,830 外部インターフェース部(外部処理部)
700,900 DRAM
OBWC 出力バッファライト制御信号
OBWS 出力バッファライト選択信号
OBW 出力バッファライト信号
OBRC 出力バッファリード制御信号
OBRS 出力バッファリード選択信号
OBR 出力バッファリード信号
IBWC 入力バッファライト制御信号
IBWS 入力バッファライト選択信号
IBW 入力バッファライト信号
IBRC 入力バッファリード制御信号
IBRS 入力バッファリード選択信号
IBR 入力バッファリード信号
400 撮像装置
1000 外部拡張処理装置(外部処理部)
1010 DMAバス(外部処理部)
1020 撮像処理部(外部処理部)
1030 外部インターフェース部(外部処理部)
1100 イメージセンサ
2000 DRAM
450 撮像装置
3000 外部拡張処理装置(外部処理部)
3010 DMAバス(外部処理部)
3020 表示処理部(外部処理部)
3030 外部インターフェース部(外部処理部)
3100 表示デバイス
4000 DRAM

Claims (10)

  1. 入力されたデータに対して予め定めた処理を行う複数の処理モジュールを直列に接続してパイプラインを構成し、それぞれの前記処理モジュールが前記処理を順次行うことによってパイプライン処理を行う画像処理部がデータバスに接続され、前記データバスに接続されたデータ記憶部から前記データバスを介して読み出したデータに対して画像処理を行う画像処理装置であって、
    前記画像処理部は、
    前記処理モジュールのそれぞれが行う前記処理と異なる処理を行う前記処理モジュールとして前記パイプライン内に組み込まれる入出力用モジュール、
    を備え、
    前記入出力用モジュールは、
    前記パイプラインにおいて組み込まれた位置の前段に位置する前記処理モジュールである第1の処理モジュールが前記処理を行った処理データを、前記データバスを介さずに直接、前記画像処理部の外部の外部処理部に出力し、前記外部処理部によって前記処理データに対して外部処理が行われて入力された外部処理データを、前記データバスを介さずに直接、前記パイプラインにおいて前記第1の処理モジュールの後段に位置する前記処理モジュールである第2の処理モジュールに出力する、
    画像処理装置。
  2. 入力されたデータに対して予め定めた処理を行う複数の処理モジュールを直列に接続してパイプラインを構成し、それぞれの前記処理モジュールが前記処理を順次行うことによってパイプライン処理を行う画像処理部がデータバスに接続され、前記データバスに接続されたデータ記憶部から前記データバスを介して読み出したデータに対して画像処理を行う画像処理装置であって、
    前記画像処理部は、
    前記処理モジュールのそれぞれが行う前記処理と異なる処理を行う前記処理モジュールとして前記パイプライン内に組み込まれる入出力用モジュール、
    を備え、
    前記入出力用モジュールは、
    前記パイプラインにおいて組み込まれた位置の前段に位置する前記処理モジュールである第1の処理モジュールが前記処理を行った処理データを、前記データバスを介さずに直接、前記画像処理部の外部の外部処理部に出力するか、もしくは、前記画像処理部の外部の外部処理部から入力された外部処理データを、前記データバスを介さずに直接、前記パイプラインにおいて組み込まれた位置の後段に位置する前記処理モジュールである第2の処理モジュールに出力するか、もしくは、前記処理データの前記データバスを介さない前記画像処理部の外部の外部処理部への直接の出力、および前記外部処理部によって前記処理データに対して外部処理が行われて入力された外部処理データの前記データバスを介さない前記第2の処理モジュールへの直接の出力の両方を行う、
    画像処理装置。
  3. 前記入出力用モジュールは、
    前記処理データを一時的に記憶する出力バッファ部と、
    前記外部処理データを一時的に記憶する入力バッファ部と、
    を備え、
    前記第1の処理モジュールが出力した前記処理データを前記出力バッファ部に一旦記憶し、前記外部処理部からの要求に応じて前記出力バッファ部に記憶した前記処理データを出力し、
    前記外部処理部が出力した前記外部処理データを前記入力バッファ部に一旦記憶し、前記第2の処理モジュールからの要求に応じて前記入力バッファ部に記憶した前記外部処理データを出力する、
    請求項1または請求項2に記載の画像処理装置。
  4. 前記入出力用モジュールは、
    前記出力バッファ部の記憶容量に基づいて、前記出力バッファ部への前記処理データの書き込みを制御する処理モジュール入力制御部と、
    前記出力バッファ部に記憶されている前記処理データのデータ量に基づいて、前記出力バッファ部からの前記処理データの読み出しを制御する外部出力制御部と、
    前記入力バッファ部の記憶容量に基づいて、前記入力バッファ部への前記外部処理データの書き込みを制御する外部入力制御部と、
    前記入力バッファ部に記憶されている前記外部処理データのデータ量に基づいて、前記入力バッファ部からの前記外部処理データの読み出しを制御する処理モジュール出力制御部と、
    をさらに備える、
    請求項3に記載の画像処理装置。
  5. 前記処理モジュール入力制御部は、
    前記第1の処理モジュールが前記処理を行う単位ごとに、前記出力バッファ部に前記処理データを書き込み、
    前記外部出力制御部は、
    前記外部処理部が前記外部処理を行う単位ごとに、前記出力バッファ部に記憶されている前記処理データを読み出し、
    前記外部入力制御部は、
    前記外部処理部が前記外部処理を行う単位ごとに、前記入力バッファ部に前記外部処理データを書き込み、
    前記処理モジュール出力制御部は、
    前記第2の処理モジュールが前記処理を行う単位ごとに、前記入力バッファ部に記憶されている前記外部処理データを読み出す、
    請求項4に記載の画像処理装置。
  6. 前記外部出力制御部は、
    複数の前記外部処理部の内、いずれの前記外部処理部に前記処理データを出力するのかを示す出力先情報を前記処理データに付加する、
    請求項5に記載の画像処理装置。
  7. 前記出力先情報は、
    前記外部処理部が前記処理データに対して行う前記外部処理の設定の情報が示された付加情報に含まれる、
    請求項6に記載の画像処理装置。
  8. 前記入出力用モジュールは、
    前記パイプラインの先頭、途中、および最後尾の少なくとも1つの位置に組み込まれる、
    請求項1から請求項7のいずれか1つの項に記載の画像処理装置。
  9. 前記外部処理部との間でデータの入出力を行う外部インターフェース部、
    をさらに備え、
    前記入出力用モジュールは、
    前記外部インターフェース部を介して、前記外部処理部との間でデータ伝送を行う、
    請求項1または請求項2に記載の画像処理装置。
  10. 前記処理データおよび前記外部処理データは、
    画像データであり、
    前記第1の処理モジュールおよび前記第2の処理モジュールが前記処理を行う単位と、前記外部処理部が前記外部処理を行う単位とのそれぞれは、
    1フレームの前記画像データを予め定めた複数のブロックに分割したサイズであり、
    前記出力バッファ部の記憶容量および前記入力バッファ部の記憶容量は、
    1フレームの前記画像データに含まれる画素データを記憶するための記憶容量よりも少ない、
    請求項5に記載の画像処理装置。
JP2018502865A 2016-02-29 2016-02-29 画像処理装置 Pending JPWO2017149591A1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/056015 WO2017149591A1 (ja) 2016-02-29 2016-02-29 画像処理装置

Publications (1)

Publication Number Publication Date
JPWO2017149591A1 true JPWO2017149591A1 (ja) 2018-12-20

Family

ID=59743553

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018502865A Pending JPWO2017149591A1 (ja) 2016-02-29 2016-02-29 画像処理装置

Country Status (5)

Country Link
US (1) US20180365796A1 (ja)
JP (1) JPWO2017149591A1 (ja)
CN (1) CN108701029A (ja)
DE (1) DE112016006516T5 (ja)
WO (1) WO2017149591A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6722278B2 (ja) * 2016-04-11 2020-07-15 オリンパス株式会社 画像処理装置
US9992467B2 (en) * 2016-06-30 2018-06-05 Apple Inc. Parallel computer vision and image scaling architecture
CN110366740B (zh) * 2017-07-24 2023-07-07 奥林巴斯株式会社 图像处理装置和摄像装置
JP2020008926A (ja) * 2018-07-03 2020-01-16 株式会社リコー データパス制御装置、画像処理装置、データパス制御装置の制御方法およびプログラム
JP7070187B2 (ja) * 2018-07-13 2022-05-18 株式会社リコー データ処理装置、画像処理装置、データ処理方法、及びプログラム
CN109492549A (zh) * 2018-10-24 2019-03-19 杭州睿琪软件有限公司 一种训练样本集处理、模型训练方法及系统
JP7176355B2 (ja) * 2018-10-31 2022-11-22 株式会社リコー 画像処理装置、画像処理装置の制御方法およびプログラム
CN111221762B (zh) * 2020-02-25 2021-05-25 深圳市春盛海科技有限公司 图像控制器及图像系统
JP7374505B2 (ja) * 2021-03-30 2023-11-07 株式会社モルフォ 画像処理装置、画像処理プログラム、及び、画像処理方法
WO2023053356A1 (ja) * 2021-09-30 2023-04-06 株式会社アイ・エル・シー 通信制御オブジェクトを有する機器、通信制御方法および通信制御プログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03116352A (ja) * 1989-09-29 1991-05-17 Imajika:Kk ビデオ信号パイプラインバス
US6331856B1 (en) * 1995-11-22 2001-12-18 Nintendo Co., Ltd. Video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing
WO2000036562A1 (en) * 1998-12-15 2000-06-22 Intensys Corporation Digital camera using programmed parallel computer for image processing functions and control
JP3740379B2 (ja) * 2000-04-19 2006-02-01 キヤノン株式会社 画像処理装置及び画像処理方法
JP4093741B2 (ja) * 2001-10-03 2008-06-04 シャープ株式会社 外部メモリ制御装置およびそれを含んだデータ駆動型情報処理装置
JP2003216943A (ja) * 2002-01-22 2003-07-31 Toshiba Corp 画像処理装置、この装置に用いられるコンパイラおよび画像処理方法
JP4051974B2 (ja) * 2002-03-20 2008-02-27 富士ゼロックス株式会社 画像処理装置および画像処理方法
WO2004042561A2 (en) * 2002-10-31 2004-05-21 Lockheed Martin Corporation Pipeline accelerator having multiple pipeline units and related computing machine and method
US9013750B2 (en) * 2009-06-25 2015-04-21 Canon Kabushiki Kaisha Image processing for processing image data in correspondence with each pixel of an image
JP5835942B2 (ja) * 2010-06-25 2015-12-24 キヤノン株式会社 画像処理装置、その制御方法及びプログラム
JP5738618B2 (ja) * 2011-02-08 2015-06-24 オリンパス株式会社 データ処理装置
JP5993267B2 (ja) * 2012-10-04 2016-09-14 オリンパス株式会社 画像処理装置

Also Published As

Publication number Publication date
US20180365796A1 (en) 2018-12-20
CN108701029A (zh) 2018-10-23
WO2017149591A1 (ja) 2017-09-08
DE112016006516T5 (de) 2018-11-15

Similar Documents

Publication Publication Date Title
WO2017149591A1 (ja) 画像処理装置
JP4219887B2 (ja) 画像処理装置及び画像処理方法
US8904069B2 (en) Data processing apparatus and image processing apparatus
US10803589B2 (en) Image processing device
WO2008032545A1 (fr) Dispositif de traitement d'image, procédé de traitement d'image et programme
JP6016423B2 (ja) 信号処理装置、撮像装置及び信号処理方法
US20120203942A1 (en) Data processing apparatus
US10713757B2 (en) Image processing apparatus, control method thereof, and storage medium
WO2010064374A1 (ja) 画像処理装置
US10453166B2 (en) Image processing device and image processing method
JP5583563B2 (ja) データ処理装置
JP6295619B2 (ja) 画像処理装置及び方法、並びに電子機器
JP4219939B2 (ja) 画像入力装置における信号処理回路
JP2018182551A (ja) 撮像装置
JP2005311745A (ja) 画像処理装置
JP2015034891A (ja) レジスタ設定制御装置
JP2016103169A (ja) 画像処理装置、画像処理方法および電子機器
JP4015682B2 (ja) 画像入力装置における信号処理回路
JP2001053959A (ja) 画像デ−タの変倍装置
JP6084000B2 (ja) 画像処理装置
JP2006067513A (ja) 画像拡大縮小変換装置およびデジタル映像システム
JP2019114067A (ja) 画像処理装置、画像処理方法及びプログラム
JP2004336323A (ja) 簡易変倍装置
JP2016122929A (ja) 画像処理装置及び画像処理方法
JP2011145938A (ja) Simd型プロセッサを備えたマイクロプロセッサとその処理方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190208

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200121

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200714