JP6263016B2 - 制御装置、処理装置、制御方法及びプログラム - Google Patents

制御装置、処理装置、制御方法及びプログラム Download PDF

Info

Publication number
JP6263016B2
JP6263016B2 JP2013258699A JP2013258699A JP6263016B2 JP 6263016 B2 JP6263016 B2 JP 6263016B2 JP 2013258699 A JP2013258699 A JP 2013258699A JP 2013258699 A JP2013258699 A JP 2013258699A JP 6263016 B2 JP6263016 B2 JP 6263016B2
Authority
JP
Japan
Prior art keywords
command
data
unit
input
data processing
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.)
Active
Application number
JP2013258699A
Other languages
English (en)
Other versions
JP2015115902A (ja
Inventor
伊藤 忠幸
忠幸 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2013258699A priority Critical patent/JP6263016B2/ja
Publication of JP2015115902A publication Critical patent/JP2015115902A/ja
Application granted granted Critical
Publication of JP6263016B2 publication Critical patent/JP6263016B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は制御装置、処理装置、制御方法及びプログラムに関する。
近年、製品の高画質化、機能強化、高速化などのため、画像処理装置が多岐に渡る製品の動作モードで画像処理を実行することが求められている。画像処理装置には、例えば、高画質化や機能強化と高速化とを両立するために、多種多様な画像処理回路が搭載されている。そして、画像処理装置は、多岐に渡る製品の動作モードに対応して、これらの多種多様な画像処理回路を切り替え、また個々の画像処理回路の動作設定を変更して、画像処理装置の全体を制御する。
このとき、個々の画像処理回路は、画像、テーブル、設定値などを一時記憶するための大容量のメモリを含み、画像処理装置は、前述の多岐にわたる動作モードに応じて、これらのメモリに記憶される情報を書き換える。すなわち、画像処理装置は、動作モードに応じて画像処理回路を切り替えるために、画像処理の前に、必要となる情報を設定する処理を実行する。また、画像処理装置は、この設定の後に、設定された値に従って画像処理を実行する。そして、画像処理装置は、これらの2つの処理を順次実行しながら所定の画像処理を行う。
特許文献1には、設定のためのレジスタ制御コマンドと画像処理のためのデータ処理コマンドとを用意し、外部メモリ(DRAM等)からこれらのコマンドを交互に読み出して種々の画像処理回路に時分割多重で入力して、画像処理を行うことが記載されている。そして、特許文献1の画像処理装置は、処理後のコマンドを画像処理回路から受け取り、再び外部メモリ(DRAM等)に書き戻して画像処理を完了する。このとき、特許文献1の画像処理回路は、パイプライン動作により、レジスタ制御コマンドを連続して入力することで高速な設定を実現することができる。また、同様に、特許文献1の画像処理装置は、データ処理コマンドを連続して入力することで、高速な画像処理を実現することができる。
特開2010−282429号公報
画像処理装置は、上述のような多種多様な動作モードに応じて、様々な画像処理回路を組み合せて使用するため、画像処理装置の全体の制御のための設定値の算出のために複雑な計算を行う必要がある。例えば、画像処理装置は、上述のコマンドを外部メモリ(DRAM等)から読み出し、処理後のコマンドを外部メモリ(DRAM等)に書き戻す。ここで、画像処理装置は、DMAC(ダイレクト・メモリ・アクセス・コントローラ)を備えるものとし、この外部メモリ(DRAM等)への読み書きを実行するものとする。このとき、画像処理装置は、上述の動作モードに応じて処理する画像の大きさや設定の情報量が変わるため、外部メモリ(DRAM等)への読み書きの転送量を算出してDMACに設定することとなる。そして、この算出された転送量と画像処理の動作とが整合していない場合、画像処理装置に含まれる画像処理回路に、先のコマンドが残留する場合がある。その結果、画像処理装置は、画像処理回路で構成される処理パイプラインに続くコマンドを投入できなくなり、画像処理装置がエラー(ハングアップ)状態になる場合がある。
特許文献1の画像処理装置は、上述の2種のコマンドを、設定と画像処理とのそれぞれにおいて切り替えて、時分割多重で画像処理回路へ入出力する。そして、例えば画像処理において画像処理パイプラインにデータ処理コマンドが残留し、詰まっている状態になった場合、画像処理装置は、外部からレジスタ制御コマンドを投入することができなくなる。その結果、画像処理装置は、装置内の画像処理の状態(ステータスレジスタ)を読み取ることができなくなり、画像処理装置のエラー(ハングアップ)状態の原因を知ることができない。なお、外部から画像処理装置のリセット信号をアサートして、画像処理装置全体を初期化して、エラー状態から復帰させることは可能である。しかしながら、このような復帰では画像処理の状態(ステータスレジスタ)も初期化されるため、上記のエラー(ハングアップ)状態の原因を特定することはできない。また、ユーザ操作によって処理を中断する際に、外部から画像処理装置のリセット信号をアサートして、画像処理装置全体を初期化すると、処理を再度実行する又は再開する際に、再度設定を実行する必要がある。
本発明は、このような事情に鑑みてなされたもので、処理装置において、データの処理状態を維持したまま、処理が可能な状態で処理を中断または中止する技術を提供することを目的とする。
上記目的を達成するため、本発明による制御装置は、入力されたデータ処理コマンドに応じてデータ処理する、パイプラインとして連なった実行手段に対して、コマンドの入力または出力を制御する制御手段を有する制御装置であって、前記制御手段は、所定の指示を受け付けた場合、前記実行手段に対する前記データ処理コマンドの入力を停止すると共に前記実行手段から出力された前記データ処理コマンドを破棄し、前記実行手段の処理を中断または中止する、ことを特徴とする。
本発明によれば、処理装置において、データの処理状態を維持したまま、処理が可能な状態で処理を中断または中止することができる。
画像処理装置の構成例を示すブロック図。 コマンドの格納例を説明する図。 コマンドのデータ構造を説明する図。 画像処理部の構成例を示すブロック図。 画像処理回路のコマンド動作の一例を説明するフローチャート。 画像処理回路のコマンド動作の一例を説明する図。 エラー状態からの画像処理部の復帰処理の例を示すシーケンス図。 ユーザからの処理の中断の操作を受け付けた場合の画像処理部の処理を中断する手順の例を示すシーケンス図。 バンド処理の動作の一例を説明する図。 バンド処理の動作の一例を説明する図。 画像データの格納例とデータ構造の一例を説明する図。 画像データの入出力の動作の一例を示す図。
以下、添付図面を参照して本発明の実施の形態を詳細に説明する。
<<実施形態1>>
(画像処理装置の構成)
図1は、本実施形態に係る画像処理装置の構成例を示すブロック図である。画像処理装置は、例えば、CPU回路部100、画像読み取り部120、画像処理部150を有する。
画像読み取り部120は、例えば、レンズ124、CCDセンサ126、及びアナログ信号処理部127を有する。画像読み取り部120では、レンズ124を介してCCDセンサ126に原稿110の画像情報が結像され、CCDセンサ126によりその画像情報がR(Red)、G(Green)、B(Blue)のアナログ電気信号に変換される。アナログ電気信号に変換された画像情報は、アナログ信号処理部127に入力され、R、G、Bの色毎に補正等が行われた後にアナログ/デジタル変換(A/D変換)される。こうして、デジタル化されたフルカラーのデジタル画像信号(画素値)が生成される。生成されたデジタル画像信号は、映像入力部130へ入力され、その後、DMAC(ダイレクト・メモリ・アクセス・コントローラ)192へ入力される。
DMAC192は、CPU102により予め動作が設定されており、共有バス190を介して、入力されたデジタル画像信号をCPU回路部100のメモリ(RAM106)に記憶させる。なお、以下では、複数の画素についてのデジタル画像信号を、1枚の画像や一部の画像領域を形成するように集合させたデータを、画像データと呼ぶ。本実施形態では、デジタル画像信号は画像データの形式でRAM106に記憶されるものとする。画像処理を行う場合、CPU102はDMAC194を起動してRAM106に記憶された画像データを読み出させ、処理の対象となる画素に対応するデジタル画像信号を画像処理部150に入力させる。
画像処理部150は、例えば、入力されたデジタル画像信号に対して、例えば、スキャナなどのセンサ・デバイスの読み取り素子の個体差の補正と入力ガンマ補正などの色補正とを行い、画像データを作成するデータ処理装置である。そして、DMAC196は、これらの処理が施された画像データをRAM106に格納する。なお、DMAC196の制御については、例えばCPU102が予めDMAC196の動作を設定し、また、CPU102がDMAC196を起動するようにする。DMAC196の動作は、例えば処理後の画像データをRAM106へ書き込むように設定しておく。
これにより、例えば、画像処理部150は、入力されたデジタル画像信号に対し、入力色補正処理、空間フィルタ処理、色空間変換、濃度補正処理、及び中間調処理などの、画像の印刷のための画像処理を施す。そして、画像処理部150は、印刷可能な画像データを作成し、その画像データを、DMAC196によりRAM106に格納させる。
DMAC198は、RAM106に格納された画像処理済みの画像データを読み出して画像印刷部170へ出力する。画像印刷部170は例えばプリンタである。DMAC198の設定は例えばCPU102が行う。画像印刷部170は、例えば、インクジェットヘッドやサーマルヘッド等を使用した印刷出力部(不図示)を有する。そして、入力された画像データのデジタル画像信号に基づいて紙上に画像を記録する。なお、上述の説明では、画像印刷部170を用いる例を説明したがこれに限られない。例えば、映像入力部130や映像表示部160等を用いて、入力された映像に対し所定の画像(映像)処理を施し、処理後の映像をディスプレイなどの表示装置(不図示)に表示してもよい。
CPU回路部100は、演算制御用のCPU102、固定データやプログラムを格納するROM104、データの一時保存やプログラムのロードに使用されるRAM106、及び外部記憶装置108等を備える。CPU回路部100は、画像読み取り部120、画像処理部150、及び画像印刷部170等を制御し、本実施形態の画像処理装置のシーケンスを統括的に制御する。外部記憶装置108は、本実施形態の画像処理装置が使用するパラメータやプログラムや補正データを記憶するディスク等の記憶媒体であり、RAM106のデータやプログラム等は、外部記憶装置108からロードされてもよい。
(画像処理コマンドの構成)
次に図2を用いてRAM106へのコマンドリストの格納の仕方の例を説明する。図2において、DPL_AREA_STR_ADDRからDPL_AREA_END_ADDRまでが、画像処理に必要な種々のコマンドを格納する領域である。図2は、この領域にDPL(1)からDPL(3)までの、3種のコマンドリストが格納されている状態の例を示している。DRAMの性能を落とさずにデータにアクセスすることを可能とするため、各々格納されるデータの容量の最小単位は、図2の506に示すように32bit×8wordの32Byteとなっている。したがって、DPL(1)からDPL(3)までのコマンドリストの格納容量は、32Byteの整数倍となる。CPUは、選択されたアプリケーション又はユーザ操作等によって、使用するコマンドリストをDPL(1)からDPL(3)の中から選択して、異なる画像処理を実行する。
さらに、図3を用いてメインメモリへ格納されているコマンドリストについて詳しく説明する。本発明のコマンドリストを構成するコマンドは、一例として、64bit長を有し、32Byte単位のデータ520に、4つのコマンドが格納される。またコマンドリストを構成するコマンドは、レジスタ制御コマンド540、データ取得コマンド542、データ処理コマンド544、終了コマンド546のように、例えば4つの種類が存在する。そして、各コマンドは上位8bitのopcodeにより識別され、下位56bitは各コマンドにより用途が異なる。
上述のように、画像処理装置は、設定と画像処理との2つの処理を交互に繰り返す。そして、画像処理装置は、設定において、レジスタ制御コマンド540を用いて、多種多様の画像処理回路の制御レジスタに値の設定、又は、画像処理回路の状態を記憶しているステータスレジスタの値の読み出しなどを実行する。また画像処理装置は、画像処理において、データ処理コマンド544を用いて、画像処理回路に画像データを供給し、各画像処理回路は、供給されたデータに対して画像処理を実行して出力する。なお、データ取得コマンド542については、後述する実施形態3にて説明を行う。また終了コマンド546については後述する。
(画像処理コマンドの入出力)
これらのコマンドは、図1の画像処理部150における処理において機能する。以下、画像処理部150の構成例である図4を用いて各コマンドの機能について説明する。
まず、画像処理装置は、DMAC(Read)194を起動してメインメモリからコマンドリストを読み出し、入力ポート151を介して画像処理部150にコマンドを入力する。そして、コマンドリストを構成する各コマンドは、画像処理部150の各種画像処理回路(画像入力部1521、画像処理回路(1)1531〜画像処理回路(P)1537、画像出力部1523)で機能する。各コマンドは、その入力順にインターコネクト1530と内部バス(155、1532、1533、1535、1536、・・・、1538、1539、156)を経由する。そして各コマンドは、画像入力部1521、画像処理回路(1)1531〜画像処理回路(P)1537、画像出力部1523へと送られる。なお、各コマンドは、各種画像処理回路によって内部情報を書き換えられることはあるが、コマンド自体が途中で削除されることはない。
画像出力部1523は、最後に、画像処理装置によって予め起動されたDMAC(Write)196に出力ポート154を介してコマンドを送出する。そして、DMAC(Write)196は受け取ったコマンドをメインメモリに書き戻す。
また、後述の復帰指示の送受信のために、画像処理部150は、CPU102(上位層)とコマンド入出力部152との間にレジスタバス158を有する。このレジスタバス158を介して、CPU102(上位層)は、コマンド入出力部152に含まれるステータスレジスタを直接読み出して、コマンド入出力部152の状態を監視することができる。
以下では、画像処理コマンドの動作についてさらに詳細に説明する。また画像処理回路によるコマンド動作の一例を、図5のフローチャートに示す。
(レジスタ制御コマンド)
レジスタ制御コマンド540は、画像処理部150の各種画像処理回路のレジスタに対して値を読み書きするためのコマンドである。コマンドの1bit情報“rw”が“0”のときレジスタ・リード・コマンドとなり、“rw”が“1”のときはレジスタ・ライト・コマンドとなる。7bitの回路識別情報“ip_id”は、上述の各種画像処理回路を区別する情報である。例えば、回路識別情報“ip_id”は、画像入力部1521は“0”、そして、画像出力部1523は“30”である。また、各画像処理回路に対する回路識別情報は、図6に示すように、画像処理回路(1)1531は“1”、画像処理回路(2)1534は“2”、・・・、そして、画像処理回路(P)1537は“P”である。また、16bit情報“address”は、上述の各種画像処理回路ごとの所有するレジスタの番地を示す情報である。
例えば、“rw=1、ip_id=1、address=0x0、data=0xF”であるレジスタ制御コマンドの場合、画像入力部1521では、回路識別情報“ip_id”が異なるので無視される。そして、このレジスタ制御コマンドは、内部バス155を通って画像処理回路(1)1531に入力される。画像処理回路(1)1531では、画像処理回路(1)1531の識別情報と、このレジスタ制御コマンドの回路識別情報“ip_id”とが一致するため、レジスタ・ライト・コマンドが有効となる。そして、このレジスタ・ライト・コマンドは、画像処理回路(1)1531の“address=0x0”番地のレジスタに、“data=0xF”を書き込む。
画像処理回路(1)1531はこのレジスタ制御コマンドを削除せず、そのまま内部バス1533へ出力する。そして、このレジスタ制御コマンドは、内部バス1531を介して、次の画像処理回路(2)1534へ入力される。画像処理回路(2)1534以降の回路では、その回路の識別情報が、レジスタ制御コマンドの回路識別情報“ip_id”と異なるため、このレジスタ制御コマンドは無視される。このレジスタ制御コマンドは、同様に画像出力部1523で無視された後、画像出力部1523によりメインメモリに書き戻される。なお、そのあとの画像処理で使用予定がない場合、画像出力部1523は、このコマンドを削除してもよい。
また“rw=0、ip_id =2、address=0x4、data=0x0”であるレジスタ・リード・コマンドの場合も、回路識別情報“ip_id =2”である画像処理回路(2)1534以外では無視される。このレジスタ・リード・コマンドは、回路識別情報“ip_id”が一致する画像処理回路(2)1534で有効となる。そして、このレジスタ・リード・コマンドに応じて、画像処理回路(2)1534の“address=0x4”番地のレジスタ値が読み出され、このレジスタ・リード・コマンドの“data”領域がこの読み出された値に置き換えられる。そして、このレジスタ・リード・コマンドは、内部バス1530を介して後段の画像処理回路に送られる。画像出力部1523では、前述のレジスタ・ライト・コマンドと異なり“data”だけが抜き取られるか、このレジスタ・リード・コマンドそのものが、CPUがアクセス可能なメモリ領域に出力(記憶)される。
(データ処理コマンド)
データ処理コマンド544も、レジスタ制御コマンドと同様に、メインメモリから入力され、以降の動作で画像処理が実行された後に、メインメモリに書き戻される。データ処理コマンド544は、画像処理回路(1)1531〜画像処理回路(P)1537を用いて画像処理を実行するためのコマンドである。画像処理を実行する前に、画像処理回路(1)1531〜画像処理回路(P)1537には、上述のレジスタ・ライト・コマンドにより、所定のレジスタ値が設定される。
データ処理コマンド544は、8bitデータ処理識別情報“step”を含む。また、画像処理回路(1)1531〜画像処理回路(P)1537のそれぞれには、予め、処理すべきデータ処理コマンドを識別するためのデータ処理識別情報“step”が設定されている。そして、各画像処理回路は、入力されたデータ処理コマンドのデータ処理識別情報“step”が、自らに設定された“step”と一致するコマンドについてのみ、画像処理を実行し、それ以外のコマンドは無視する。各画像処理回路は、データ処理コマンドから、各16bitのR、G、B領域の画像データを抜き出し、所定の画像処理を実行する。そして、各画像処理回路は、データ処理コマンドの各16bitのR、G、B領域に、処理結果をそれぞれ格納して内部バスを介して後段の画像処理回路に送る。画像処理回路(1)1531〜画像処理回路(P)1537のそれぞれが一連の画像処理を行うことで、パイプライン的に並列処理を行う。
(終了コマンド)
終了コマンド546は、コマンドリストの終了を示すコマンドであり、コマンドリストの最後に位置する。終了コマンド546も、他のコマンドと同様に、画像処理部150に入出力される。画像出力部1523は、このコマンドを受け取った後、CPUに対して終了割り込みを出力する。
(画像処理実行部の動作)
画像処理実行部153について補足する。画像処理実行部153は、P個の画像処理回路(画像処理回路(1)1531〜画像処理回路(P)1537)と、インターコネクト1530とを含んで構成される。P個の画像処理回路と、インターコネクト1530とは、入力ポート1532、1535並びに1538、および出力ポート1533、1536並びに1539等のポートを介して互いに接続される。
画像処理回路は、例えば、入力色補正処理、色空間変換、濃度補正処理、中間調処理、空間フィルタ処理、拡大処理、縮小処理、トリミング処理、端部拡張処理、IP変換、クロマ・アップサンプリングのうち、1つの処理を行う。これらの画像処理回路は、パイプライン回路等のハードウェアで実現されてもよいし、プロセッサとプログラム(ソフトウェア)等で実現されてもよい。そして、例えば、入力ポート1532、1535、1538等からコマンドを受け付け、処理を実行した後に、出力ポート1533、1536、1539から処理後のデータを含むコマンドを出力する。
また、インターコネクト1530はクロスバーやリングバス等で実現され、入力ポート及び出力ポートの接続先を任意に切り替えることができる。したがって、CPU102がこれらポートの接続先の指定を設定することで、インターコネクト1530は、例えばP個の画像処理回路の実行順序を変更し、または一部の処理をバイパスすることができる。このように、画像処理実行部153は、アプリケーションに応じて、各種の処理を取捨選択して組み合せ、所望の画像処理を実現する。
(画像処理部のエラー(ハングアップ)状態の発生)
画像処理装置は、例えば画像処理の実行に際し、画像処理実行部153に含まれる画像処理回路において、拡大処理を行うとする。このとき、画像処理装置は、予め拡大処理の拡大率を画像処理回路の該当するレジスタに設定する。また、画像処理装置は、画像処理の際に入力及び出力するデータ処理コマンドの転送量を、DMAC(Read)194とDMAC(Write)196とに設定する。
画像処理実行部153は、入力されたデータ処理コマンドに対して、拡大処理を含む画像処理を施し、処理後のデータ処理コマンドとして出力する。この出力されたデータ処理コマンドは、コマンド入出力部152を介して、DMAC(Write)196によってRAM106に書き戻される。
ここで、例えば、拡大により増加するコマンドの転送量よりDMAC(Write)196の転送量が小さく設定されると、画像処理実行部153で処理されたコマンドを全てRAM106に書き戻す前にDMAC(Write)196の転送が完了してしまう。そのため、画像処理実行部153にコマンドが残留してしまう。この一例では、拡大処理よってコマンドが増加するため、タイミングによってはDMAC(Read)194もコマンドの入力を完了しており、画像処理装置はDMA転送を完了していると誤判定してしまう。そして、画像処理装置は、画像処理から設定に移行し、レジスタ設定コマンドを入力しようとする。しかしながら、画像処理実行部153にはコマンドが残留しているため、画像処理実行部153がレジスタ設定コマンドを受け付けることはできない。
(画像処理部の復帰シーケンス)
ここでは図7のフローチャートに基づいて、上述のエラー(ハングアップ)状態の発生からの、画像処理部の復帰手法について詳細説明を行う。本処理では、まず、コマンド入出力部152が、画像処理の入出力の状態の監視を行い(S640、S642、S644)、画像処理部のエラー状態が検出されたかを判定する。例えば、コマンド入出力部152は、所定時間の間、画像処理実行部153に対してデータ処理コマンドを入力できない場合に、エラー(ハングアップ)状態を検出する。また、コマンド入出力部152は、所定時間の間、画像処理実行部153から、処理を終えた後のデータを含むデータ処理コマンドを受け取らなかった場合に、エラー状態を検出する。また、さらに他のエラー状態の検出手法が用いられてもよい。例えば、他の画像処理部のエラー状態の検出の例について、後述する実施形態3において説明する。本処理においては、主としてコマンド入出力部152が復帰処理のための制御を行う制御装置として機能する。以下では、これらの処理について説明する。
上述のようなエラー(ハングアップ)状態の後、CPU102(上位層)が画像処理部の復帰処理の必要性を判断し(S650でYES)、復帰指示を発行してコマンド入出力部152に通知する。コマンド入出力部152は、復帰指示を受け付ける(S610)。このとき、図4に示すように、復帰指示の受け付けのために、CPU102(上位層)とコマンド入出力部152との間に、レジスタバス158が設けられてもよい。この場合、コマンド入出力部152は復帰レジスタ(不図示)を有し、CPU102は、レジスタバス158を介して、その復帰レジスタに復帰指示を書き込む。コマンド入出力部152は復帰レジスタの値を監視し、その値に応じて復帰指示の有無を判断することができる。また、CPU102は復帰指示を送信し、コマンド入出力部152がそれを受信して受け付ける別の仕組みが用意されてもよい。
コマンド入出力部152は、復帰指示を受け付けると、画像処理実行部153において実行される所定の処理を中止し、続いて、復帰処理に移る(S600)。まず、コマンド入出力部152は、DMA転送中であれば、DMAC(Read)194及びDMAC(Write)196に対して転送中断を要求する。各DMACは、システムバス190に要求済みのトランザクションについては実行を完了し、新規のトランザクションの発行をアボートする。その後、各DMACは、内部シーケンサを初期化する(S612)。
そして、コマンド入出力部152は、画像処理実行部153への画像処理コマンドの入力を停止する(S614)。これにより、画像処理実行部153は、画像処理実行部153のパイプラインに空きができても新たなコマンドを受け付ける必要がなくなる。そして、コマンド入出力部152は、画像処理実行部153から出力された出力コマンドを受け取りながら、そのコマンドを破棄する(S616)。これにより、画像処理実行部153のパイプラインに残留したコマンドが徐々に削減されることとなる。
ここで、所定の期間の間、画像処理実行部153から、コマンドが出力されなくなった場合、残留したコマンドはなくなったと想定できる。したがって、コマンド入出力部152に、この所定時間が経過したかを判別するためのタイマーを設け、タイマーの閾値レジスタに、予めその所定時間を設定しておいてもよい。このタイマーは、画像処理実行部153からのコマンド出力を検出するとタイマー値を0にクリアし、コマンド出力がなければ、クロックサイクル毎に1ずつタイマー値をインクリメントする。そして、コマンド入出力部152は、タイマー値が閾値レジスタの値を超えたときに、所定時間が経過したことを特定することができる。
コマンド入出力部152は、復帰確認のためにレジスタ制御コマンドを画像処理実行部153に入力する(S618)。そして、コマンド入出力部152は、画像処理実行部153へ入力したレジスタ制御コマンドが、画像処理実行部153から出力されるまで待機する(S620)。そして、画像処理実行部153からレジスタ制御コマンドが出力されると(S620のYES)、コマンド入出力部152は、復帰を確認して、復帰完了をCPU102(上位層)に通知する(S622)。このようにして、時間経過またはレジスタ制御コマンド等の入力と出力により、画像処理実行部にコマンドが残留していないことを確認する。
なお、復帰完了の通知のため、コマンド入出力部152からCPU102(上位層)への割り込みを用意し、コマンド入出力部152が割り込みをアサートすることにより、復帰完了を通知してもよい。またコマンド入出力部152に復帰完了レジスタ(不図示)を設け、コマンド入出力部152は、上述の復帰指示を受け付けたことにより、復帰完了レジスタを初期化する。そしてコマンド入出力部152は、復帰完了時に復帰完了レジスタに値を書き込む。そして、CPU102(上位層)はこの復帰完了レジスタの値を読み取ることにより、復帰完了を確認してもよい。
CPU102(上位層)は復帰完了を受信すると(S652)、例えば、レジスタ・リード・コマンドをRAM106に展開する。そして、コマンド入出力部152は、上述の設定と同様の手法で、レジスタ・リード・コマンドを画像処理実行部153に入出力し、種々の画像処理回路のステータスレジスタやレジスタの設定値を読み出す。CPU102(上位層)は、読み出された値に基づいて、設定の誤りを検証し、エラー状態の原因を調査することができる。
なお、上述の例では、復帰確認のためのレジスタ制御コマンドとエラー状態の原因調査のためのレジスタ制御コマンド(レジスタ・リード・コマンド)を2回に分けて入力するように説明した。しかしながら、画像処理装置は、エラー状態の原因調査のためのレジスタ・リード・コマンドを用いて、復帰確認を同時に評価するようにしてもよい。
以上のように、本実施形態によれば、画像処理回路のレジスタ値の誤設定によるエラー状態から、容易に、画像処理部を所定の処理が実行可能な状態へと復帰させることができる。また、復帰の過程で画像処理実行部のパイプラインに残留したコマンドを破棄することにより、画像処理実行部のパイプラインを初期化することができる。そして、レジスタ制御コマンドの入出力により、復帰の確認をすることができる。また、処理の状態(ステータスレジスタ)がクリアされずに維持されるため、エラー状態を特定するための画像処理回路のステータスレジスタ値の読み出しを行うことができる。したがって、本実施形態の画像処理装置は、エラー状態からの復帰とデバッグ(原因の特定)とを効率的に実行することができる。
<<実施形態2>>
本実施形態では、上述の復帰シーケンスを利用することで、ユーザが画像処理の実行中に動作をキャンセルしたときの、画像処理の中断についても対応することができる。すなわち、実施形態1では、エラー状態をトリガに画像処理実行部が実行する処理を中止して復帰処理を行ったが、本実施形態では、ユーザからの処理の中断の操作を受け付けたことをトリガとして、画像処理実行部が実行する処理を中断する。
(画像処理部の中断シーケンス)
本実施形態では、ユーザが画像処理装置に対して処理の中断の操作を行うため、画像処理部のエラー(ハングアップ)状態の検出は不要である。したがって、図8に示すように、本シーケンスにおいては、まず、CPU102(上位層)が、ユーザから中断指示を受け付けたかを判定する(S660)。そして、ユーザからの中断指示を受け付けた場合(S660でYES)、CPU102は、実施形態1と同様に、復帰指示を発行し、コマンド入出力部152に通知する。コマンド入出力部152が復帰指示を受け付け(S610)てから、復帰完了をCPU102に通知する(S622)までの処理(S600)は、実施形態1と同様であるため、説明を省略する。そして、CPU102は、復帰完了を受信したら(S652)、中断シーケンスを完了する。
以上のように、本実施形態によれば、ユーザによる画像処理の中断指示があった場合にも、画像処理装置を強制リセットすることによる初期化を行わず、画像処理実行部において所定の処理を実行可能な状態で、処理を中断することができる。すなわち、強制リセットにより、画像処理回路の非常に多くのレジスタ値やテーブル値が初期化されることがなくなる。この結果、画像処理装置は、処理を再度実行する又は再開する場合に、設定値を再ロードする手間を省くことができる。このようにすることで、画像処理装置は、確実な中断処理を行いつつ、ユーザ指示に応じた次の製品動作までの応答性を高めることができる。
<<実施形態3>>
実施形態1及び2では、メインメモリに記憶されているコマンドリストに、データ処理コマンド544が展開されていた。本実施形態では、メインメモリには画像データが記憶されており、データ処理コマンド544は、コマンドリストに展開されていない場合について説明する。コマンド入出力部152は、コマンドリストのデータ取得コマンド542によって設定から画像処理に移行する。そして、コマンド入出力部152は、画像データをメインメモリから読み出し、データ処理コマンド544に変換する。またコマンド入出力部152は、処理後のデータ処理コマンド544を画像データに変換し、メインメモリに、その画像データを画像処理の結果として書き戻す。
本実施形態では、画像データを部分画像(後述のページ、バンド領域、小領域)に分解して画像処理する。上述の復帰シーケンスは、これらの部分画像の処理単位ごとに実行するかどうかを選択することができる。
(領域分割手法の一例としてのバンド処理)
次に、本実施形態における画像データの領域分割について説明する。本実施形態では、領域分割手法の1つであるバンド処理を用いるものとする。以下、バンド処理について、図を用いて説明する。バンド処理では、図9(a)〜(d)に示されるように、1枚の画像データ300を帯状のバンド領域301〜304に分割し、この領域毎に逐次的に各種の画像処理を行う。なお、バンド領域は、画像データを主走査方向または副走査方向のいずれかにおいて分割したものであり、バンド領域と画像データとは、主走査方向または副走査方向のいずれかにおいて長さが一致する。例えば、図9(a)〜(d)では、画像データは副走査方向において分割され、画像データとバンド領域とでは、主走査方向について同一の長さを有し、副走査方向において異なる長さを有する。以下では、この分割された細長い領域をバンド領域と呼び、バンド領域が展開される記憶領域をバンドメモリと呼び、画像データを分割する処理をバンド分割と呼ぶ。バンドメモリは、RAM106内に記憶領域として確保されてもよく、また、システム上の適切な記憶領域に確保されてもよい。なお、ここでは説明を簡潔にするために、バンドメモリをRAM106に確保する場合を例に挙げて説明する。
また、以下では、図9(e)に示すように、画像データの座標系(主走査方向−副走査方向)を、長さ方向、高さ方向という新たな座標系(バンド領域座標系)によって定義し、バンド領域を長さ×高さで表現する。バンド領域の長さ、すなわちバンド領域の長さ方向の一辺の大きさは、画像データの主走査方向の長さ、または副走査方向の長さの何れかの値とする。また、バンド領域の高さ、すなわちバンド領域の高さ方向の一辺の大きさは任意の値となる。例えば、図9(a)〜(d)では、長さ方向は主走査方向であり、高さ方向は副走査方向である。
バンド処理では、まず、図9(a)に示す第1のバンド領域301を、RAM106上のバンドメモリに展開して画像処理を行う。次に、図9(b)に示す第2のバンド領域302を、第1のバンド領域301が展開されたRAM106上のバンドメモリに上書き展開して、画像処理を行なう。さらにその後、図9(c)に示す第3のバンド領域303を、第2のバンド領域302が展開されたRAM106上のバンドメモリに上書き展開し、画像処理を行なう。最後に、図9(d)に示す第4のバンド領域304を、第3のバンド領域303が展開されたRAM106上のバンドメモリに上書き展開して画像処理を行なう。図9(a)〜(d)で明らかなように、バンド領域301〜304の長さは同じであるが、高さは同じでなくてもよい。したがって、メインメモリに確保される記憶領域であるバンドメモリの高さは、高さ方向の一辺の大きさが最も大きいバンド領域(図9の場合、第1〜第3のバンド領域301〜303)によって決定される。
なお、バンド処理では、各バンド領域間で隙間なく空間フィルタ処理などの局所(近傍)画像処理を行なうため、図10示すように、各バンド領域が、それぞれ隣接する領域との境界で一部分が互いに重なり合うようにしてもよい。そして、各領域の高さと同一の方向に1画素ずつ画素を走査することで、局所(近傍)画像処理に必要な処理画素を保持する遅延メモリの容量を各領域の高さで規定する。このような工夫により、局所(近傍)画像処理で必要となる遅延メモリの省メモリ化を実現できる。
(画像データのデータ構造)
次に画像データのデータ構造の一例について詳細に説明する。本実施形態では、上述のように、画像データはRAM106に一時的に格納される。一般的にRAM106は安価なDRAMで構成されることが多い。したがって、前述のようにDMACを介して画像データを読み書きする場合、DRAMが性能を落とさずに読み書きできる単位で画像データを取り扱うことが望ましい。そこで、RAM106の画像データの格納方法の一例と、画像データのデータ構造の一例について、図11を用いて詳しく説明する。図11は、RAM106(DRAM)上にデータが格納された状態を示している。図11の例では、あるデータ領域(IMG_AREA_STR_ADDRからIMG_AREA_END_ADDRまでの領域)が確保され、ここに画像処理に必要な種々の画像データが格納される。
図11は、点順次形式の画像データの構造のRAM106への格納例であり、RAM106(DRAM)のデータ領域に画像データ(IMG425)が格納された例を示している。例では、DRAMの性能を落とさずに画像データを読み書きできるように、格納される画像データの容量の最小単位は、図11の408に示すように、32bit×8wordの32Byteとしている。すなわち、画像データの格納容量は32Byteの整数倍となる。なお、画像処理装置上でのRAM106の構成の仕方、RAM106を実現する記憶装置(DRAM等)の種類、または実行する画像処理の種類等に応じて、画像データの読み書き単位は32Byteではない大きさであってもよい。
次に、画像データのデータ構造を詳しく説明する。画像データ440は、点順次形式で、R(Red)、G(Green)、B(Blue)の画素値を有する。画像データ440に含まれる1つの領域442は32Byte単位のデータであり、1つの領域442の中には、領域444で示すように、複数個(8つ)の画素値がパッキングされている。そして、領域444に含まれる8つの画素値のそれぞれには、446で示すようにそれぞれ10bitのR、G、Bの値がパッキングされている。なお、図の例では、残りの2bitは、DRAMへのアクセスを簡単にするための無効データであり、データを格納しないものとする。図11において、太線で表される画像データ440は、8M×N画素のサイズを有する。
(データ取得コマンド)
データ取得コマンド542は、画像入力部1521と画像出力部1523の動作を制御するコマンドである。画像入力部1521は、データ取得コマンドを受け取り、上述のレジスタ制御コマンドにおいて予め設定されたレジスタ値に従い、DMAC(Read)194を起動してメインメモリから上述の画像データを取得する。そして、画像入力部1521は、このデータ取得コマンドを、画像処理回路(1)1531〜画像処理回路(P)1537、画像出力部1523へ内部バスを介して送る。このとき、画像処理回路(1)1531〜画像処理回路(P)1537は何も処理は行わず、後段の画像処理回路にこのデータ取得コマンドを送出する。最後に、画像出力部1523が、このデータ取得コマンドを受け取り、DMAC(Write)196を起動する。
そして、画像入力部1521は、取得した画像データを上述のデータ処理コマンド544の形式に変換して、順次画像処理回路(1)1531〜画像処理回路(P)1537、画像出力部1523へ内部バス1530を介して送る。画像出力部1523は、データ取得コマンドの後に続くデータ処理コマンドの画素値(RGB)領域から情報を抜き出して所定のパッキングを行い、32Byte単位の画像データに変換する。そして、画像出力部1523は、データ取得コマンドによって起動されたDMAC(Write)196によって、32Byte単位の処理後の画像データをRAM106へ書き出す。
(画像データとデータ処理コマンド変換)
読み出された画像データは、入力ポート151を介して、画像処理部150のコマンド入出力部152へ入力される。コマンド入出力部152において、画像入力部1521は、画像データを取得すると、中間バッファ制御部1522に含まれる記憶装置(中間バッファ)の記憶領域(後述)に、取得した画像データを一時的に記憶させる。そして、画像入力部1521は、中間バッファに一時的に記憶された画像データを読み出しながら画素値(前述のRGB)を生成し、入力データ処理コマンドとして内部バス155を介して画像処理実行部153へ入力する。
画像処理実行部153は、入力されたデータ処理コマンドに対して所定の画像処理を実行し、処理後のデータを含むデータ処理コマンドを生成する。画像処理実行部153は、処理後のデータを含むデータ処理コマンドを、内部バス156を介してコマンド入出力部152へ出力する。なお、ここでは、画像データの複数の画素値が複数のデータ処理コマンドに変換されて画像処理される。
コマンド入出力部152では、画像出力部1523は、処理後のデータを含むデータ処理コマンドから出力画像データを生成して中間バッファ制御部1522内の記憶装置(中間バッファ)に記憶する。画像出力部1523は、記憶装置(中間バッファ)に一時的に記憶された処理後の画像データを読み出し、出力画像データとして出力ポート154を介してDMAC196へ送出する。DMAC196は、上述の通り、既に起動されており、受け取った出力画像データをRAM106へ書き出す。
(画像データの入出力方法)
図12は、本実施形態の画像処理方法を用いた場合の、RAM106からコマンド入出力部152への、またはコマンド入出力部152からRAM106への、画像データの入出力方法についての説明図である。画像処理装置は、図12(a)及び(b)のように、1つの画像データ300からバンド領域301を抜き出し、入力画像データとしてRAM106に格納する。そして、このバンド領域の入力画像データは、先に図11を用いて説明したように、RAM106で取り扱いやすくなるように32Byteを単位としたデータ構造をもつ。そのため、バンド領域の入力画像データは図12(c)の210に示すようなデータ構造となる。
図12(d)において、DMAC194は、図1の共有バス190を介して、このバンド領域の入力画像データ210をRAM106から読み出し、画像処理部150へ入力する。入力画像データ210は、先のデータ構造にしたがって、32Byte×Bdh_inの処理単位で、領域(1)211から領域(M)219までのM個の小さい画素領域(小領域)に分けられる。そして、DMAC194は、このM個の小領域(処理単位)の入力画像データを、小領域(1)211から小領域(M)219まで1つずつ読み出し、画像処理部150に入力する。画像処理部150は、この小領域(処理単位)の入力画像データを受け取り、この単位で画像処理を実行する。
DMAC194は、例えば、「読み出し先の先頭アドレス」、「連続読み出し量(32Byte単位のデータを連続何回読み出すか)」、「インクリメント・アドレス」および「繰り返し回数」をもとに動作する。例えば、図11の点順次形式の画像データでは以下の通りとなる。
・「先頭アドレス」:S1_IMG_STR_ADDR
・「連続読み出し量」:1回(32Byte)
・「インクリメント・アドレス」:1ラインのデータ量=32Byte×M
・「繰り返し数」:バンド領域の高さ=Bdh_in回
このようにすることにより、先頭アドレスS1_IMG_STR_ADDRから、まず32Byteのデータが読みだされる。そして、次のデータを取得するため、アドレスを32Byte×Mだけ増加させることで、小領域(2)〜(M)の1行目のデータの読み出しが飛ばされて、小領域(1)211の第2行目の32Byteのデータを読み出すこととなる。そして、繰返し数Bdh_in回、すなわち、小領域(1)211のBdh_in行分のデータを読み出すことにより、小領域(1)211の全てのデータを読み出すことができる。小領域(2)〜小領域(M)の入力画像データの読み出しでは、順次「先頭アドレス」を順次32ByteずつずらしてDMAC194を動作させる。このように画像処理装置は、所望する小領域の入力画像データをRAM106からDMA転送で読み出す。
コマンド入出力部152の画像入力部1521は、DMAC194から画像データを受け取り、データを中間バッファ制御部1522へ転送する。中間バッファ制御部1522は、図12(e)のように中間バッファ調停回路230と中間バッファ232とで構成される。中間バッファ232は、DMAC194から入力された画像データを格納する領域である入力領域234と、DMAC196へ出力する画像データを格納する領域である出力領域236とを含む。中間バッファ232の入力領域の先頭アドレスは、入力領域先頭アドレスとして、出力領域の先頭アドレスは、出力領域先頭アドレスとして、それぞれ予め設定される。なお、画像入力部1521から入力された入力画像データは、まず中間バッファ調停回路230へ入力される。
中間バッファ調停回路230は、受け取った入力画像データを、中間バッファ232の入力領域234に一時的に格納する。通常、中間バッファ232(記憶装置)は1つ以上の記憶領域で構成できる。例えば、1つの記憶領域に対して1つのSRAM等の記憶装置で実現する場合、中間バッファ232(記憶装置)は、記憶領域の数に応じた数のSRAM等の記憶装置で構成されることとなる。例えば、この記憶装置の1ワードあたりのビット長が256ビット(32Byte)長の場合、入力領域234で記憶するべきワード数はバンド領域の高さに相当し、DMA転送の繰り返し数であるBdh_inワードとなる。また、この記憶装置の1ワードあたりのビット長が64ビット(8Byte)長の場合、32Byte長のデータを受けるのに4ワード必要となる。そのため、入力領域234で記憶すべきワード数は、バンド領域の高さ(DMA転送の繰り返し数)Bdh_inを4倍したワード数となる。つまり、入力領域の容量は、1回のDMA転送の単位である小領域(処理単位)の入力画像データが格納できる容量となる。なお、DMAC194は、DMA転送や1つのバンド領域の入力画像データの転送が完了すると、割り込み信号を用いて、その旨をCPU102へ通知してもよい。
その後、画像入力部1521は、中間バッファ調停回路230を介して、一時的に記憶された小領域の入力画像データを読み出し、1画素ずつのデータ処理コマンドを順次生成して、画像処理実行部153へ入力する。
画像出力部1523は、処理後の出力データ処理コマンドから画素値に変換し中間バッファ制御部1522へ転送し、外部記憶装置108に出力する画像データとして蓄える。このとき、出力画像データのデータ構造は上述の図11の点順次形式のままであるが、出力画像データの形状は、図12(f)の250のように、入力時から形状が変わっていてもよい。画像処理実行部153では、入力画素領域のサイズと出力画素領域のサイズとが異なる様々な画像処理が実行される。そのため、入力画像データ210と出力画像データ250との画素数が異なる場合があり、例えば、出力画像データ250の出力バンド領域の高さはBdh_outとなる。また、出力画像データ250のバンド領域の長さは、8×Nとなる。すなわち、入力画像データ210と出力画像データ250とでは、バンド領域の高さが異なるため、小領域(処理単位)の容量が異なる。また、バンド領域の長さも異なるため、小領域(処理単位)の数もM個からN個に変化する。しかしながら、入力と出力とではデータ構造が同一であるため、中間バッファ232の出力領域236の容量は入力領域234の容量と同じ考え方で設定できる。
画像出力部1523は、例えば、Bdh_out個の画素のデータが4列分入力され、小領域(1)251の出力画像データが中間バッファ232の出力領域236に揃った時点で、画像処理実行部153からの処理後の出力画素値の受け取りを停止する。そして、出力領域236の出力画像データを順次読み出し、DMAC196へ送出する。そしてDMAC196は、処理後の画像データをRAM106へ書き込む。そして、同様の処理が小領域(2)から小領域(N)まで順次実行されることにより、図12(g)に示す出力バンド領域の出力画像データが、すべてRAM106へ書き戻される。
(画像処理部のエラー(ハングアップ)状態の検出)
上述の通り、画像処理部150にはコマンド入出力部152(画像入力部1521、画像出力部1523、中間バッファ制御部1522)が含まれる。そして、画像入力部1521は、中間バッファ制御部1522を介してDMAC(Read)194から転送単位ごとの画像データを受け取り、DMAC(Read)194と同期している。また画像出力部1523は、中間バッファ制御部1522を介してDMAC(Write)196に転送単位ごとの画像データを送出しており、DMAC(Write)196と同期している。このため、両者を含むコマンド入出力部152は、DMA転送の同期状態を転送単位ごとに把握することができる。
具体的には、コマンド入出力部152は、例えば、中間バッファ制御部1522の記憶装置232の入力領域に画像データが所定時間以上受け取れないとき、エラー状態を検出する。また、コマンド入出力部152は、例えば、所定時間以上、記憶装置232の出力領域から画像データを送出できないとき、エラー状態を検出する。また、コマンド入出力部152は、例えば、DMA転送が完了しているにも関わらず、上述の記憶装置232に未転送の画像データが残っていてもエラー状態を検出する。
また所定時間の計測の仕方は、実施形態1と同様でよい。例えば、コマンド入出力部152は、記憶装置232の入力領域や出力領域の更新される時間をクロックサイクル単位でカウントすればよい。小領域(1回の転送単位)の画像データに格納される画素値の個数は、画像データの格納形式から算出できる。例えば、図11の点順次形式の一例では、小領域に8×N個の画素値が格納されており、この個数と同じだけのデータ処理コマンドが生成される。コマンドの個数と画像処理実行部153の処理速度をもとに、予め入力画像データの処理時間を算出する。またDMA転送の性能と小領域の転送量から予め入力画像データの転送時間も算出する。これらの算出値から記憶装置232の入力領域の更新間隔を算出し、タイマーの閾値とすればよい。また画像データの出力に関しても同様に考えれば対応できる。すなわち、例えば、記憶装置232の出力領域に記憶されるデータの量と、データの出力速度(例えばDMA転送の速度)とに応じて、所定時間を定めてもよい。
なお、この所定時間の算出を、バンド単位やページ単位に拡張しておけば、エラー状態の検出の単位を選択することが可能である。すなわち、バンド単位若しくはページ単位のデータを取得して、画像処理実行部153への入力が完了するまでに要する時間を所定時間としてもよい。また、これらの単位のデータが画像処理実行部153から出力されるまでの時間、またはこれらの単位のデータのDMA転送が完了するまでの時間を所定時間とすることもできる。すなわち、所定の量のデータが転送完了するのに要する時間に応じて、所定時間を算出することができる。なお、所定の量とは、1つのデータ処理コマンドに相当する料であってもよいし、上述のように、小領域単位、バンド単位、ページ単位の画素のデータであってもよい。
なお、エラー状態の検出後の復帰手法に関しては前述の通りである。
以上のように、DMA転送の設定と画像処理の設定が合致していないときにエラー状態になるケースがあるため、両者の間に介在する中間バッファに基づいて、両者を連動させてエラー状態の検出と画像処理部の復帰とを実行することが有効である。また本実施形態では、画像入力部1521及び画像出力部1523を備えるため、転送データの入力と出力の両方を連動させたエラー状態の検出と復帰についても実現できる。
以上のように、本実施形態によれば、画像データの取得とデータ処理コマンドによる画像処理の実行とを連動させることができる。そして、連動したエラー状態の検出と画像処理部の復帰処理とを用いることで、エラー状態に対する効果的な対策を実行することが可能となる。またエラー状態の検出と復帰の実行単位を、中間バッファへの1転送単位(小領域)からバンド領域、ページまで広く選択できるので、より効率的なデバッグが可能である。例えば、開発当初は、中間バッファへの1転送単位(小領域)ごとに検出と復帰を繰り返して、誤設定を早期に発見することができる。そして画像処理装置の制御のためのドライバ/ファームウェアの品質の向上に伴い、バンド単位に検出と復帰の間隔を広げてもよい。また製品においては、検出と復帰の間隔をページ単位まで広げてもよい。以上のように、エラー状態の検知から復帰までの単位の選択の幅を広げ、デバッグを効率的に実現することができる。
なお、実施形態1〜3では、画像処理を例に説明したが、他のあらゆるデータに対しても、同様の処理が実行されてもよい。すなわち、データを処理する処理実行部を有するデータ処理装置において、処理実行部でのエラー状態の検出又はユーザ操作による中断があった時に、データの処理実行部への供給を停止して、処理実行部から出力されたデータを破棄してもよい。これにより、同様のエラー状態からの復帰などを実行することができる。
また、実施形態1〜3では、エラー状態をCPUに通知するように説明したが、CPUを経由せずに処理が行われてもよい。すなわち、コマンド入出力部152においてエラー状態を検出した場合、そのエラー状態の検出からの復帰指示を内部的に生成して、エラー状態を検出したことを外部に通知することなく、復帰処理を開始するようにしてもよい。
<<実施形態4>>
ユーザ操作による中断指示のような外的要因により画像処理装置を緊急停止するときに、DMA転送を停止しつつ、画像処理実行部との画像処理は通常動作させてもよい。この場合、DMA転送が停止するため、中間バッファの1転送単位(少領域)のデータが新しく読み出されることはない。また、中間バッファ上の1転送単位(少領域)が次の1転送単位(少領域)に切り替わる(バッファチェンジする)こともない。そのため、中間バッファの1転送単位(少領域)のデータ(コマンド)は、時間の経過とともに、画像処理実行部に入力されて通常の動作により画像処理されることとなる。この結果、やがて画像処理実行部にあるデータ(コマンド)の残留は自然となくなる。このような状態に対し、コマンドを画像処理実行部に入力して、画像処理実行部から戻ってきたコマンドをもとに、データ(コマンド)の残留がないことを判定してもよい。
例えば、画像処理実行部の画像処理回路がパイプライン的に接続された回路ではなく、分散並列的に同時動作するように並列接続された回路のとき、これらの回路に並列にバリア同期コマンドを発行する。そして、すべてのバリア同期コマンドが戻ってくることにより、データ(コマンド)の残留がないことを判定することができる。
また、1転送単位(少領域)のデータ(コマンド)を画像処理実行部に入力し終わった後、画像処理実行部からデータ(コマンド)が戻ってこなくなった後の経過時間を測定し、画像処理実行部にあるデータ(コマンド)の残留がないことを判定してもよい。以上のような手法により、ユーザ操作による中断指示を受けて画像処理実行部のデータ(コマンド)の残留がないことを保証し、必要であれば、外部に通知して復帰処理を開始するようにしてもよい。経過時間を測定してデータ(コマンド)の残留がないことを確認する場合、特に外部に通知することはせず、外部システムが中断指示を発行後、時間を測定して復帰処理を行ってもよい。
<<その他の実施形態>>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (26)

  1. 入力されたデータ処理コマンドに応じてデータ処理する、パイプラインとして連なった実行手段に対して、コマンドの入力または出力を制御する制御手段を有する制御装置であって、
    前記制御手段は、所定の指示を受け付けた場合、前記実行手段に対する前記データ処理コマンドの入力を停止すると共に前記実行手段から出力された前記データ処理コマンドを破棄し、前記実行手段の処理を中断または中止する、
    ことを特徴とする制御装置。
  2. 前記制御手段は、ユーザからの処理の中断の操作を受け付けた場合に発行される前記所定の指示を受け付けた場合、前記実行手段の処理を中断する、
    ことを特徴とする請求項1に記載の制御装置。
  3. 前記実行手段におけるエラーを検出する検出手段をさらに有し、
    前記制御手段は、前記エラーが検出された場合に発行される前記所定の指示を受け付けた場合、前記実行手段の処理を中断または中止する、
    ことを特徴とする請求項1に記載の制御装置。
  4. 前記検出手段は、前記エラーを検出したことを前記所定の指示を発行する発行手段へ通知し、
    前記制御手段は、前記発行手段から前記所定の指示を受け付ける、
    ことを特徴とする請求項3に記載の制御装置。
  5. 前記検出手段は、前記実行手段に対して、所定時間の間に、所定の量のデータ処理コマンドの入力を完了できない場合に、前記エラーを検出する、
    ことを特徴とする請求項3又は4に記載の制御装置。
  6. 前記検出手段は、前記実行手段から、所定時間の間に、前記処理を実行した後のデータを含む所定の量のデータ処理コマンドが出力されなかった場合に、前記エラーを検出する、
    ことを特徴とする請求項3又は4に記載の制御装置。
  7. 前記所定の量のデータ処理コマンドは、画像データの所定の領域またはページに含まれる画素のデータに対するデータ処理コマンドである、
    ことを特徴とする請求項5又は6に記載の制御装置。
  8. 前記所定の量のデータ処理コマンドは、1つのデータ処理コマンドである、
    ことを特徴とする請求項5又は6に記載の制御装置。
  9. 前記実行手段から出力されたデータ処理コマンドに含まれる前記処理を実行した後のデータを出力する出力手段をさらに有し、
    前記検出手段は、前記出力手段から、所定時間の間、データが出力されていない場合に、前記エラーを検出する、
    ことを特徴とする請求項3又は4に記載の制御装置。
  10. 前記実行手段へ入力されるデータ処理コマンドに含まれるデータを記憶する記憶手段をさらに有し、
    前記検出手段は、前記データが前記記憶手段に記憶されてから所定時間が経過したときに、当該データの少なくとも一部が前記実行手段へ入力されずに前記記憶手段に残っている場合に、前記エラーを検出する、
    ことを特徴とする請求項3又は4に記載の制御装置。
  11. 前記所定時間は、前記記憶手段に記憶されたデータの量、前記実行手段におけるデータの処理の速度に基づいて定められる、
    ことを特徴とする請求項10に記載の制御装置。
  12. 前記記憶手段は、ダイレクト・メモリ・アクセスによってメモリから取得された、前記実行手段へ入力されるデータ処理コマンドに含まれるデータを記憶し、
    前記所定時間は、前記ダイレクト・メモリ・アクセスによる所定の単位のデータを取得するのに要する時間にさらに基づいて、定められる、
    ことを特徴とする請求項11に記載の制御装置。
  13. 前記実行手段から出力されたデータ処理コマンドに含まれる前記処理を実行した後のデータを記憶する記憶手段と、
    前記記憶手段に記憶されているデータを出力する出力手段と、
    をさらに有し、
    前記検出手段は、前記データの少なくとも一部が前記記憶手段に記憶されてから所定時間が経過したときに、当該データが前記出力手段によって出力されずに前記記憶手段に残っている場合に、前記エラーを検出する、
    ことを特徴とする請求項3又は4に記載の制御装置。
  14. 前記出力手段は、ダイレクト・メモリ・アクセスによって、前記記憶手段に記憶されているデータをメモリに出力し、
    前記所定時間は、前記記憶手段に記憶されているデータの量と、前記ダイレクト・メモリ・アクセスによる所定の単位のデータのメモリへの転送に要する時間とに基づいて定められる、
    ことを特徴とする請求項13に記載の制御装置。
  15. 前記制御手段は、さらに、前記実行手段に対して所定のコマンドを入力すると共に当該実行手段から出力された当該所定のコマンドを受け付けて、前記実行手段の処理を中断または中止する、
    ことを特徴とする請求項1から14のいずれか1項に記載の制御装置。
  16. 前記制御手段は、前記実行手段に対する前記データ処理コマンドの入力を停止した後に、所定の期間、前記実行手段から前記データ処理コマンドが出力されなかった場合に、前記所定のコマンドを前記実行手段に対して入力する、
    ことを特徴とする請求項15に記載の制御装置。
  17. 前記所定のコマンドは、前記実行手段に含まれる処理の状態を示す値を読み出すコマンドである、
    ことを特徴とする請求項15又は16に記載の制御装置。
  18. 前記所定のコマンドを前記実行手段から受け付けた後に、前記実行手段に含まれる処理の状態を示す値を読み出すコマンドを前記実行手段に入力する、
    ことを特徴とする請求項15又は16に記載の制御装置。
  19. 入力されたデータ処理コマンドに応じてデータ処理を実行する実行手段に対して、コマンドの入力または出力を制御する制御手段を有する制御装置であって、
    前記制御手段は、中断指示を受け付けた場合に前記実行手段に前記データ処理コマンドの残留がないことを判定する判定手段を備え、前記判定手段の判定に基づいて、前記実行手段の処理を中断または中止する、
    ことを特徴とする制御装置。
  20. 前記判定手段は、前記実行手段に対して所定のコマンドを入力すると共に当該実行手段から出力された当該所定のコマンドを受け付けることにより、前記データ処理コマンドの残留がないことを判定する、
    ことを特徴とする請求項1に記載の制御装置。
  21. 前記判定手段は、前記実行手段が並列接続された複数の回路であるときに、前記複数の回路にバリア同期コマンドを入力し、当該複数の回路から出力された当該バリア同期コマンドを受け付けて、前記データ処理コマンドの残留がないことを判定する、
    ことを特徴とする請求項1に記載の制御装置。
  22. 前記実行手段と、請求項1から2のいずれか1項に記載の制御装置とを有することを特徴とする処理装置。
  23. 入力されたデータ処理コマンドに応じてデータ処理を実行する、パイプラインとして連なった実行手段に対して、コマンドの入力または出力を制御する制御手段を有する制御装置の制御方法であって、
    前記制御手段が、所定の指示を受け付けた場合、前記実行手段に対する前記データ処理コマンドの入力を停止すると共に前記実行手段から出力された前記データ処理コマンドを破棄し、前記実行手段の処理を中断または中止する工程を有する、
    ことを特徴とする制御方法。
  24. 入力されたデータ処理コマンドに応じてデータ処理を実行する実行手段に対して、コマンドの入力または出力を制御する制御手段を有する制御装置の制御方法であって、
    前記制御手段が、中断指示を受け付けた場合に前記実行手段に前記データ処理コマンドの残留がないことを判定する工程と、
    前記制御手段が、当該判定に基づいて、前記実行手段の処理を中断または中止する、
    を有することを特徴とする制御方法。
  25. 入力されたデータ処理コマンドに応じてデータ処理を実行する実行手段に対して、コマンドの入力または出力を制御する制御手段を有する制御装置に備えられたコンピュータに、
    所定の指示を受け付けた場合、前記実行手段に対する前記データ処理コマンドの入力を停止すると共に前記実行手段から出力された前記データ処理コマンドを破棄し、前記実行手段の処理を中断または中止する工程を実行させるためのプログラム。
  26. 入力されたデータ処理コマンドに応じてデータ処理を実行する実行手段に対して、コマンドの入力または出力を制御する制御手段を有する制御装置に備えられたコンピュータに、
    中断指示を受け付けた場合に前記実行手段に前記データ処理コマンドの残留がないことを判定する工程と、
    当該判定に基づいて、前記実行手段の処理を中断または中止する工程と、
    を実行させるためのプログラム。
JP2013258699A 2013-12-13 2013-12-13 制御装置、処理装置、制御方法及びプログラム Active JP6263016B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013258699A JP6263016B2 (ja) 2013-12-13 2013-12-13 制御装置、処理装置、制御方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013258699A JP6263016B2 (ja) 2013-12-13 2013-12-13 制御装置、処理装置、制御方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2015115902A JP2015115902A (ja) 2015-06-22
JP6263016B2 true JP6263016B2 (ja) 2018-01-17

Family

ID=53529293

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013258699A Active JP6263016B2 (ja) 2013-12-13 2013-12-13 制御装置、処理装置、制御方法及びプログラム

Country Status (1)

Country Link
JP (1) JP6263016B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7419773B2 (ja) * 2019-12-02 2024-01-23 富士フイルムビジネスイノベーション株式会社 画像処理装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004094451A (ja) * 2002-08-30 2004-03-25 Mitsubishi Electric Corp オンチップjtagインタフェース回路およびシステムlsi

Also Published As

Publication number Publication date
JP2015115902A (ja) 2015-06-22

Similar Documents

Publication Publication Date Title
JP6732534B2 (ja) データ処理装置、データ処理方法
JP5886583B2 (ja) データ処理装置、処理方法、制御方法、及びプログラム
JP2010282429A (ja) 画像処理装置及びその制御方法
JP6403430B2 (ja) 画像処理装置および画像処理方法
US9786250B2 (en) Control apparatus, image processing apparatus, control method, and non-transitory computer-readable storage medium
JP6263016B2 (ja) 制御装置、処理装置、制御方法及びプログラム
JP5993267B2 (ja) 画像処理装置
US11256459B2 (en) Data processing apparatus that switches to execution of a different command list at a preset control point, method of controlling the same, and computer-readable storage medium
JP6238510B2 (ja) バッファ、バッファの制御方法、同期制御装置、同期制御方法、画像処理装置および画像処理方法
US8786891B2 (en) Apparatus, method, and storage medium for transferring data to a buffer
US8436915B2 (en) Image processing apparatus
JP5583563B2 (ja) データ処理装置
US8154556B1 (en) Multiple simultaneous unique outputs from a single display pipeline
JP2006113906A (ja) バス監視装置及びバス監視装置付きコントローラ
US7558424B2 (en) Scene change determination device/method and data transfer device/method
JP4748077B2 (ja) 画素データ転送制御装置及び画素データ転送制御方法
US11222401B2 (en) Apparatuses and computer-implemented methods for middle frame image processing
JP6779263B2 (ja) データ処理装置及び方法及びプログラム
US6775421B2 (en) Method and apparatus of image processing while inputting image data
JP2011180653A (ja) データ転送装置およびデータ転送方法
JP5671635B2 (ja) 画像処理装置及びその制御方法
JP2009090543A (ja) 情報処理装置、印刷装置及び情報処理方法
JP6015804B2 (ja) データ転送方法及び画像形成装置
JP2008310547A (ja) 画像形成装置
JP2007213512A (ja) 印刷装置、プリンタコントローラ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161201

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170904

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171106

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171117

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171215

R151 Written notification of patent or utility model registration

Ref document number: 6263016

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151