JP7278067B2 - データ処理装置及びその制御方法及びプログラム - Google Patents

データ処理装置及びその制御方法及びプログラム Download PDF

Info

Publication number
JP7278067B2
JP7278067B2 JP2018238647A JP2018238647A JP7278067B2 JP 7278067 B2 JP7278067 B2 JP 7278067B2 JP 2018238647 A JP2018238647 A JP 2018238647A JP 2018238647 A JP2018238647 A JP 2018238647A JP 7278067 B2 JP7278067 B2 JP 7278067B2
Authority
JP
Japan
Prior art keywords
processing
command
image
data processing
unit
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
JP2018238647A
Other languages
English (en)
Other versions
JP2020101921A (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 JP2018238647A priority Critical patent/JP7278067B2/ja
Priority to US16/715,050 priority patent/US11256459B2/en
Publication of JP2020101921A publication Critical patent/JP2020101921A/ja
Application granted granted Critical
Publication of JP7278067B2 publication Critical patent/JP7278067B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1275Print workflow management, e.g. defining or changing a workflow, cross publishing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1211Improving printing performance
    • G06F3/1212Improving printing performance achieving reduced delay between job submission and print start
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1296Printer job scheduling or printer resource handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00915Assigning priority to, or interrupting, a particular operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00931Synchronising different operations or sub-apparatus, e.g. controlling on-times taking into account different warm-up times
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00933Timing control or synchronising
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00938Software related arrangements, e.g. loading applications
    • H04N1/00941Interaction of different applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00938Software related arrangements, e.g. loading applications
    • H04N1/00949Combining applications, e.g. to create workflows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00954Scheduling operations or managing resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1211Improving printing performance
    • G06F3/1215Improving printing performance achieving increased printing speed, i.e. reducing the time between printing start and printing end
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch instructions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0094Multifunctional device, i.e. a device capable of all of reading, reproducing, copying, facsimile transception, file transception
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

本発明はデータ処理装置及びその制御方法及びプログラムに関する。
近年、さまざまな機器において処理性能の向上と、より一層のコスト削減の両立が求められている。これらの機器には、ある種のコンピュータ・システムが搭載されており、コンピュータ・システムの製造コストあたりの処理性能は、機器の良否を決定する要因の一つと言える。
例えば、ビジネス向け複写機では、ネットワーク上の複数ユーザから処理要求があり、ユーザへの快適な応答が求められている。一方、機器の低コスト化のため、多種多様な画像処理のハードウェア・リソースを共有化して回路規模を削減する必要があり、両立が課題となっている。例えば複写機の画像処理では、スキャナ画像処理と、汎用画像処理がハードウェア・リソース共有されており、2つの処理が同じハードウェア・リソース上で実行される場合がある。
例えば、あるユーザAがスキャナ/コピー処理を行っているとき、スキャナ画像処理のハードウェアは、スキャナ・ユニット(外部デバイス)と同期して動作する。スキャナ画像処理のハードウェアの処理性能がスキャナ・ユニットより高いとき、スキャナ画像処理のハードウェアは、スキャナ・ユニットからの外部同期が入力されるまで停止して待機する。一方、ユーザBが汎用画像処理の処理要求をしてスキャナ画像処理のハードウェアを使用するとき、ユーザAの処理要求と、ユーザBの処理要求のハードウェア・リソースが競合する。その結果、ユーザBはユーザAのスキャナ/コピー処理が完了するまで待たされることなる。このときユーザBは、処理要求した画像処理の内容とは関係がないユーザAのスキャナ/コピー、とりわけスキャナ・ユニットとの外部同期により待たされてしまう。
また近年、IoTデバイス機器として、多種多様な異種混合の多数のセンサ等の入力に対して、リアルタイム性を維持してデータ処理をしなければならない用途が広がりつつある。一方で、身の回りに多数のIoTデバイス機器を低コスト・低消費電力で配置するためには、積極的にハードウェア・リソース共有して製造コストを抑えていく必要がある。
特開2010-282429号公報
特許文献1は、コマンドリスト(ディスプレイリスト)を用いた画像処理/データ処理により、CPU制御負荷を軽減した処理方法を開示している。しかしながら、前述の処理の一例のように共有されたハードウェア・リソースに対して、同時に複数の要求先から処理を要求されることに対する対応については開示するものではない。またこの特許文献1は、ハードウェア・リソースが複数の処理要求において競合した際のリアルタイム性の改善についても開示していない。
本発明は、上記問題に鑑み成されたものであり、複数の処理要求が共有したリソースに対して競合した際に処理性能、リアルタイム性を改善する技術を提供しようとするものである。
この課題を解決するため、例えば本発明のデータ処理装置は以下の構成を備える。すなわち、
アプリケーションから要求された処理を実行するデータ処理装置であって、
処理の指示があったとき、当該指示で示されるコマンドリストに従って処理を実行する処理手段と、
アプリケーションから処理の要求を受信したとき、当該要求に応じたコマンドリストを生成し、前記処理手段に対して処理の指示を行う制御手段とを有し、
前記処理手段は、
前記制御手段からの第1の指示に対するコマンドリストを実行中に第2の指示を受けた場合であって、前記第1の指示に対するコマンドリストにおける予め設定された制御点となるコマンドの実行のタイミングにて、前記第2の指示に対するコマンドリストの実行に切り替える切り替え手段を含み、
前記処理手段は、画像を複数に分割した部分画像を単位として処理し、
前記制御手段は、実行すべきコマンドリストを切り替える際に、コマンドリストの優先順位により、処理すべき単位の部分画像の大きさを制御することを特徴とする。
本発明によれば、多種多様な画像処理のリソースを共有することにより、機器の製造コストを低減できる。またハードウェア・リソースの共有化により、外部同期の待ち時間に別のデータ処理を実行して機器全体のスループットを向上できる。また、様々なユーザからの処理要求や多種多様なセンサ等に対してリアルタイム性を向上したデータ処理装置、データ処理方法およびプログラムを提供することができる。
(a)は画像処理装置の全体構成例を示すブロック図、(b)はセンサ構成のユースケースを示す図。 画像処理部の構成の一例を示すブロック図。 バンド処理の動作の一例を説明する図。 コマンドリスト(ディスプレイリスト)のRAMへの格納例を説明する図。 データ処理装置のコマンドデコード動作の一例を説明する図。 タスク切り替えの動作の一例を説明する図。 タスク切り替え機構の処理フロー一例を説明する図。 (a)はコマンドリスト(ディスプレイリスト)の生成フロー、(b)はハードウェアによる処理負荷の制御のためのパラメータ変更の一例を説明する図。 多数の外部同期のある画像処理部の構成の一例を示すブロック図。 タスク切り替えなしの基本動作の一例を説明する図。
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。なお、以下に示す実施形態における構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
[第1実施形態]
●装置構成
図1(a)は、本実施形態に係る画像処理装置(コンピュータ)の全体構成例を示すブロック図である。同図に示すように本実施形態の画像処理装置は、CPU回路部100、画像読み取り部120、映像入力部130、画像処理部150、映像表示部160、画像印刷部170、等を備える。以下、これら構成による動作の概要について説明する。
画像読み取り部120は、レンズ124、CCDセンサ126、及びアナログデジタル変換器127等を有する。すなわち、レンズ124を介してCCDセンサ126に原稿110の画像情報が結像され、CCDセンサ126によりその画像情報がR(Red)、G(Green)、B(Blue)のアナログ電気信号に変換される。アナログ電気信号に変換された画像情報は、アナログ信号処理部127に入力され、R、G、Bの色毎に補正等が行われた後にアナログ/デジタル変換(A/D変換)されることで、デジタル化されたフルカラーのデジタル画像信号(画素値)が生成される。生成されたデジタル画像信号は映像入力部130へ入力され、その後、DMAC(Direct Memory Access Controller)192へ入力される。
DMAC192は、CPU102によって予め動作が設定されており、入力されたデジタル画像信号を、共有バス190を介してCPU回路部100のRAM106や外部記憶装置108に記憶させる。なお、複数の画素についてのデジタル画像信号を1枚の画像を形成するように集合させたデータを、以下では画像データと呼ぶ。本実施形態では、デジタル画像信号は画像データの形式でRAM106等に記憶されるものとする。画像処理を行う場合、CPU102もしくは後述の画像入出力部202は、DMAC194を起動してRAM106等に記憶された画像データを読み出させ、処理の対象となる画素に対応するデジタル画像信号を画像処理部150に入力させる。
画像処理部150は、例えば、入力されたデジタル画像信号に対して、スキャナなどのセンサ・デバイスの読み取り素子の個体差の補正や、入力ガンマ補正などの色補正等を行って画像データを作成する画像データ処理装置である。そしてDMAC196が、これらの画像処理が施された画像データをRAM106や外部記憶装置108に格納する。なお、DMAC196は以下のように制御される。例えばCPU102もしくは後述の画像入出力部202が予めDMAC196の動作を設定し、また、CPU102がDMAC196を起動する。なおDMAC196の動作としては、例えば処理後の画像データをRAM106へ書き込むように設定しておく。このように画像処理部150は、入力されたデジタル画像信号に対し、入力色補正処理、空間フィルタ処理、色空間変換、濃度補正処理、及び中間調処理等、画像を印刷するための画像処理を施す。そして、印刷可能な画像データを作成した後、その画像データをDMAC196によりRAM106等に格納させる。
DMAC198は、RAM106に格納された画像処理済みの画像データを読み出して、画像印刷部170へ出力する。画像印刷部170は例えばプリンタである。DMAC198の設定は例えばCPU102が行う。画像印刷部170は、インクジェットヘッド、サーマルヘッド等を使用した印刷出力部(不図示)を備え、入力された画像データのデジタル画像信号に基づいて記録紙上に画像を記録する。
なお、ここでは画像読み取り部120で読み取った原稿110の画像データを、画像印刷部170にて印刷出力する例を示したが、本実施形態はこの例に限らない。例えば、映像入力部130や映像表示部160等を用いることにより、入力された映像に対し所望の画像(映像)処理を施し、処理後の映像をディスプレイなどの映像表示装置(不図示)に表示してもよい。
CPU回路部100は、演算制御用のCPU102、固定データやプログラムを格納するROM104、データの一時保存やプログラムのロードに使用されるRAM106、及び外部記憶装置108等を備える。CPU回路部100は、画像読み取り部120、画像処理部150、及び画像印刷部170等を制御し、本実施形態の画像処理装置のシーケンスを統括的に制御する。外部記憶装置108は、本実施形態の画像処理装置が使用するパラメータやプログラム、補正データを記憶するディスク等の不揮発性の記憶媒体である。またRAM106のデータやプログラム等は、外部記憶装置108からロードされる構成としてもよい。また本実施形態では、DMAC194,196を介して画像処理部150とのデータ転送を行うが、この転送データの格納先はRAM106に限らず外部記憶装置108であってもよい。そしてRAM106や外部記憶装置108に確保した転送データの格納先などを、以下ではグローバルバッファ(外部記憶バッファ)と総称する。以下の説明では、RAM106の一例であるDRAM上にグローバルバッファを確保し、グローバルバッファに画像データを記憶している。
●画像処理部
次に、画像データに画像処理を施す画像処理部150の詳細構成およびその動作について、図2を参照して説明する。なお図2では理解を容易とするために、グローバルバッファからの画像データの読み出しを行うDMAC194と、同じく書き込みを行うDMAC196が、画像処理部150の画像入力部221、画像出力部223のそれぞれに含まれるように示している。
まずCPU102もしくは画像入力部221がDMAC194を起動し、DMAC194はグローバルバッファから画像データを読み出す。そして、DMAC194は、読み出された画像データを、入力ポート201を介して、画像処理部150の画像入出力部202へ供給する。画像入出力部202において画像入力部221は、入力された画像データを取得すると、中間バッファ制御部222に含まれる一時記憶部(中間バッファ232)に、該取得した画像データを記憶する。そして画像入力部221は、中間バッファに一時的に記憶された画像データを読み出しながら画素値を生成し、入力画素値205として画像処理実行部203へ供給する。なお、中間バッファ制御部222に含まれる一時記憶部(中間バッファ232)は、前述のグローバルバッファに対比してローカルバッファと総称することができる。
画像処理実行部203は、入力画素値205に対して所定の画像処理を実行し、その結果として得られた出力画素値206を画像入出力部202に出力する。なお、画像処理実行部203における処理の詳細については後述する。入力画素値205および出力画素値206は1つ以上の画素値であって、複数の画素値が入力画素値205として入力され、それに対して1つの画素値が出力画素値206として出力されてもよい。
画像入出力部202における画像出力部223は、処理後の出力画素値206から出力画像データを生成して、中間バッファ制御部222内の記憶部(中間バッファ232)に記憶する。画像出力部223は、中間バッファ232に一時的に記憶された処理後の画像データを読み出し、出力画像データとしてDMAC196を介して出力ポート204から送出する。DMAC196は上述したようにCPU102によって既に起動されており、受け取った出力画像データをRAM106へ書き込むことになる。
このように画像処理部150は、画像入出力部202がDMAC194を介して画像データを取得し、画像処理実行部203で該画像データに対するデータ処理を実行する。そして、データ処理後の画像データを、画像入出力部202がDMAC196を介して出力する。すなわち画像処理部150は、画像処理装置内に含まれる画像データにデータ処理を施し、処理後の画像データを画像処理装置へ戻す役割を担う。また画像入出力部202は、データの入出力の調節を行うデータ入出力制御装置としての役割を有する。また画像入出力部202は、画像処理実行部203との間でデータを送受信してデータ処理の実行を制御する制御装置としての役割を有する。
次に、画像処理部150の画像処理実行部203について、詳細に説明する。画像処理実行部203は、画像処理回路(1)1531~画像処理回路(P)1537のP個の画像処理回路と、インターコネクト1530とで構成される。P個の画像処理回路とインターコネクト1530とは、入力ポート1532,1535,…,1538、および出力ポート1533,1536,…,1539等のポートを介して互いに接続される。各画像処理回路は、それぞれが1つの画像処理を行う。画像処理の種類は問わないが、例えば、入力色補正処理、色空間変換、濃度補正処理、中間調処理、空間フィルタ処理、解像度変換、トリミング処理、端部拡張処理、IP変換、クロマ・アップサンプリング等である。各画像処理回路は、パイプライン回路等のハードウェアで実現されてもよいし、プロセッサとプログラム(ソフトウェア)等で実現されてもよい。
インターコネクト1530は、入力ポートから入力画素値205を受け取り、処理を施した後に、対応する出力ポートから処理後の出力画素値206として出力する。このインターコネクト1530は、クロスバーやリングバス等の接続手段で実現されており、入力ポートと出力ポートの接続先を任意に切り替えることができる。したがって、CPU102がこれらポートの接続先の指定を設定することで、インターコネクト1530は、例えばP個の画像処理回路の実行順序を変更し、または一部の処理をバイパスすることができる。このように画像処理実行部203は、アプリケーションに応じて、各種の処理を取捨選択して組み合せ、所望の画像処理を実現する。
●バンド処理
以下、本実施形態における画像データの領域分割手法として、画像データを1次元分割したバンド領域ごとに処理を行うバンド処理について説明する。
以下、本実施形態におけるバンド処理について、図3を参照して説明する。バンド処理では、図3(a)~(d)に示されるように、1枚の画像データ300を帯状のバンド領域301~304に分割し、この領域毎に逐次、画像処理を行う。なおバンド領域は、画像データを主走査方向または副走査方向のいずれかに分割したものであるから、バンド領域と画像データとは、主走査(又は水平)方向または副走査(または垂直)方向のいずれかにおいて長さが一致する。図3(a)の例では、画像データは副走査方向に対して分割される。よって、オリジナルの画像データとバンド領域とでは、主走査方向で同一の長さを有し、副走査方向では異なる長さを有する。以下、この分割された細長い領域をバンド領域と呼び、バンド領域が展開される記憶領域をバンドメモリ、画像データを分割する行為をバンド分割と呼ぶ。バンドメモリは、システム上の適切な記憶領域に確保されれば良いが、ここでは説明を簡潔にするために、バンドメモリをRAM106内の記憶領域(グローバルバッファ)として確保するとする。
また以下では、図3(e)に示すように、画像データの座標系(主走査方向-副走査方向)を、長さ方向と高さ方向という座標系(バンド領域座標系)によって定義し、バンド領域を長さ×高さで表現する。バンド領域の長さ、すなわちバンド領域の長さ方向の一辺の大きさは、画像データの主走査方向の長さ、または副走査方向の長さの何れかの値とする。また、バンド領域の高さ、すなわちバンド領域の高さ方向の一辺の大きさは任意の値となる。図3(a)の例では、長さ方向は主走査方向であり、高さ方向は副走査方向である。これに対し、図3(i)乃至(k)に示すように画像データを主走査方向において分割した場合、図3(l)に示すように、長さ方向が副走査方向となり、高さ方向が主走査方向となる。図3(i)のようなバンド分割は、例えば画像データの主走査方向の大きさが副走査方向の大きさより大きい場合に行うようにしてもよい。
図3(a)乃至(d)に示すバンドにおいて、まず第1のバンド領域301を、RAM106上のバンドメモリに展開して画像処理を行う。次に第2のバンド領域302を、第1のバンド領域301が展開されたRAM106上のバンドメモリに上書き展開して、画像処理を行なう。さらにその後、第3のバンド領域303を、第2のバンド領域302が展開されたRAM106上のバンドメモリに上書き展開し、画像処理を行なう。そして最後に第4のバンド領域304を、第3のバンド領域303が展開されたRAM106上のバンドメモリに上書き展開して画像処理を行なう。図3(a)乃至(d)からも分かるように、バンド領域301~304の長さは同じであるが、高さは同じでなくても良い。したがって、バンドメモリの高さは、高さ方向の一辺の大きさが最も大きいバンド領域(図3(a)乃至(d)ではバンド領304を除く、バンド領域301~303)に応じて決定される。
なお、各バンド領域間で隙間なく空間フィルタ処理等の局所(近傍)画像処理を行なう場合には、図3(f)~(h)に示すように、各バンド領域が、隣接する領域との境界で一部分が互いに重なり合うように設定される。
以上のように本実施形態では、画像データを領域分割して、部分画像を単位として画像処理/データ処理を実行する。
●画像データ構造
以下、本実施形態における画像データの構造について詳細に説明する。本実施形態では上述したように、画像データはRAM106内の記憶領域(グローバルバッファ)に一時的に格納される。一般的にメインメモリであるRAM106は安価なDRAMで構成されることが多い。したがって、本実施形態のようにDMACを介して画像データを読み書きする場合、DRAMが性能を落とさずに読み書きできる単位で画像データを取り扱うことが望ましい。
●コマンドリスト、コマンドのデータ構造
以下、図4を参照し、本実施形態におけるコマンドリスト、コマンドのデータ構成例について詳細に説明する。本実施形態では上述したように、コマンドリスト(ディスプレイリスト)、コマンドはメインメモリであるRAM106内の記憶領域(グローバルバッファ)に一時的に格納される。
本実施形態では、コマンドリストを構成するコマンドには、レジスタ設定コマンド410、レジスタ読み出しコマンド430、画像処理コマンド420、終了コマンド460の同期コマンド440、分岐コマンド450の6種が少なくとも存在する。これらのコマンドは図2の画像処理部150で機能する。以下、画像処理部150の構成例である図2を参照して各コマンドの動作について説明する。
まずコマンドリスト(ディスプレイリスト)を構成する各コマンドは、画像処理部150の各種画像処理回路(画像入力部221、画像処理回路(1)1531、画像処理回路(2)1534~画像処理回路(P)1537、画像出力部223)で機能する。各コマンドは、インターコネクト1530に対して設定された接続順に沿って各画像処理回路を順番に通過する。例えば、画像入力部221、画像処理回路(1)1531、画像処理回路(2)1534~画像処理回路(P)1537、画像出力部223の順に各コマンドが通過する。各コマンドは各画像処理回路により、内部情報を書き換えられることはあるが、コマンド自体が途中で削除されることはない。
レジスタ設定コマンド410は、画像処理部150の各種画像処理回路のレジスタに対して値を書き込むためのコマンドである。またレジスタ読み出しコマンド430は各種画像処理回路のレジスタ値を読み出すためのコマンドである。レジスタ読み出しコマンド430で読み出したレジスタ値はCPU102がアクセス可能なメモリ領域に出力(記憶)される。
画像処理コマンド420は、画像入力部221と画像出力部223の動作を制御するコマンドである。画像入力部221は、画像処理コマンド420を受け取り、前述のレジスタ設定コマンド410にて予め設定されたレジスタ値に従い、DMAC194を起動してメインメモリからデジタル画像データや補正データを取得する。ここで、DMACに予め設定されたレジスタ値とは、例えば、レジスタ設定コマンドにより設定された読出し開始アドレスと読出し回数である。次に、画像入力部221は、この画像処理コマンド420を画像処理回路(1)1531、画像処理回路(2)1534~画像処理回路(P)1537、画像出力部223へインターコネクト1530を介して送る。このように、画像処理コマンド420を下流へ送ることにより、例えば、レジスタ設定と後述のデータ処理を時分割で動作を切り換えるときに、切り替え制御を容易に実現することが可能となる。そして、画像入力部221は、DMAC194を用いて取得したデジタル画像データや補正データをデータ処理コマンド(不図示)の形式に変換する。そして、画像入力部221は、データ処理コマンドを画像処理回路(1)1531、画像処理回路(2)1534~画像処理回路(P)1537、画像出力部223へ送る。
また画像出力部223は、画像処理コマンド420を受け取り、その後に続くデータ処理コマンドのRGB領域から情報を抜き出し、所定のパッキングを行い、32Byte単位のデータに変換する。そして、画像出力部223は、レジスタ設定コマンドにて予め設定されたレジスタ値にしたがってDMAC196を起動して32Byte単位の処理後のデジタル画像データをRAM106へ書き出す。
データ処理コマンドは、画像処理回路(1)1531、画像処理回路(2)1534~画像処理回路(P)1537を用いて画像処理を実行するためのコマンドである。画像処理を実行する前に予め画像処理回路(1)1531、画像処理回路(2)1534~画像処理回路(P)1537には、前述のレジスタ設定コマンドにより所定のレジスタ値が設定されている。データ処理コマンドが通過する、各画像処理回路(1)1531、画像処理回路(2)1534~画像処理回路(P)1537が一連の画像処理を行うことで、パイプライン的に並列処理を行う。終了コマンド460は、コマンドリストの終了を示すコマンドであり、画像出力部223は、このコマンドを受け取った後、CPU102に対して終了割り込みを出力する。
また本実施形態の画像処理装置では、画像処理のデータフローに適切な位置で制御点(同期点)を設定できるように、分岐コマンド450をさらに備える。例えば、前述の図4のコマンドリスト(ディスプレイリスト)例では、分岐コマンド450が挿入されている。本実施形態の画像処理装置では、分岐機能を用いて分岐コマンド450の挿入位置から、所定の分岐先アドレス“0x2000”(レジスタ設定コマンド414)に、次に実行する処理先を変更できる(S452)。画像入出力部202内の同期部260の同期レジスタ262には、分岐先となるコマンドリストの読み出しアドレス(DPLアドレス)と繰り返し数を指定できる。例えば、画像処理のデータフローから予めCPU102がレジスタI/F159を介して直接設定しておいてもよい。またコマンドリスト内のレジスタ設定コマンドを用いて、分岐コマンド450の前に同期レジスタ262の値を書き換えてもよい。図4の一例では、DPLアドレスに0x2000、分岐回数1回が設定されている。そのため画像入出力部202は1回だけ処理先を変更(452)し、次に分岐コマンド450に処理が到達したら分岐せず、終了コマンド460に処理を進める。
●同期コマンド
また本実施形態のデータ処理装置では、画像処理のデータフローに適切な位置で制御点(同期点)を設定できるように、同期コマンド440をさらに備える。これらのコマンドは、前述のコマンドリストの中で、制御(同期)したいと考える任意の位置に挿入してよい。例えば、図4のコマンドリスト(ディスプレイリスト)例の同期コマンド440は、他のコマンドと同様に画像入力部221でデコードされた後、画像入力部221から画像処理実行部203に送信される。画像入力部221は同期コマンド440をデコードし、同期コマンド440であることを判別すると、コマンドリストの読み出しと送信を一時停止する。画像入力部221は一時停止(ストール)状態になり、図2の同期部260に同期コマンド440のデコードを通知する。画像入力部221は一時停止(ストール)状態のまま待機しており、コマンドリストの同期コマンド440の次に位置するコマンドの中間バッファ232からの読み出しと画像処理実行部203への送信は停止している。
同期コマンド440は、画像処理実行部203の画像処理回路を通過する過程で画像処理のパイプラインを初期化する。なお、画像処理回路を通過する過程で、初期化以外の特定の処理、例えば、特定のレジスタへの特殊値の設定やステータス値の読み出しなどを実行してもよい。その後、同期コマンド440は、画像処理実行部203から画像出力部223に受信される。以上のような動作により、画像処理実行部203のパイプラインで処理中のコマンドは、画像出力部223に到達しており、一連の画像処理は完了している。そして画像処理実行部203にはコマンドが存在せず、画像処理が実行されていない状態になっている。この動作を本発明の実施形態の画像処理実行部203の内部同期機能もしくはバリア同期機能と呼称する。画像処理実行部203は初期化状態のため、これ以後、画像処理部150の画像処理タスクが切り替わり、データフロー制御や動作が変更されても問題なく動作可能な状態である。そして画像出力部223は、同期コマンド440を受信してデコードし、同期コマンド440であることを判別すると、同期部260に同期コマンドが画像出力部223に到達したことを通知する。 上記の画像入力部221と同様に画像出力部223も一時停止(ストール)状態のまま待機する。
本実施形態の画像処理部の画像入出力部では、入力部と出力部が一体化した構成になっているので、バリア同期機能を高速に実現するのは容易である。
●外部同期機能
同期部260は、同期先である、CPU、映像入力部(カメラ)、画像読み出し部(スキャナ)、映像表示装置(ディスプレイ)や印刷装置(プリンタ)からの外部同期を受け付ける。例えば、同期先がCPU102の場合には、図2のレジスタI/F159を介して、画像処理部150の同期レジスタ262に所定の値を書き込むといった手法で、外部同期を通知する。また、その他の同期先では、外部同期信号1301や同期信号1201を用いて、画像処理部150の同期レジスタ262所定の値を書き込むことで外部同期を通知する。
同期部260は、同期レジスタ262が所定の値になり、外部同期が通知されたかを判別する。外部同期の通知がないときは、外部同期受付を継続する。
●デコード処理(コマンド処理)
以下、図5を参照し、読み出したコマンドリストをデコードするコマンド処理(S500)について詳細説明する。画像処理部150の画像入出力部202は、コマンドリスト(DPL)を読み出し(S550)、コマンドのデコード(S501)を実行する。まずレジスタ設定コマンドかどうかを判定(S502)し、レジスタ設定コマンドであれば所定のレジスタに設定値を書き込む(S510)。またレジスタ読み出しコマンドかどうかを判定(S503)し、レジスタ読み出しコマンドであれば所定のレジスタの値を読み出す(S512)。また画像処理コマンドかどうかを判定(S504)し、画像処理コマンドであれば、図3のバンド処理を実行する。同期コマンドかどうかを判定(S505)し、同期コマンドであれば、外部同期待ち(S516)を行い、必要ならタスク切り替え処理を行う(S540)。また分岐コマンドかどうかを判定(S506)し、分岐コマンドであればDPLアドレスの再設定を行い(S518)、必要ならタスク切り替え処理を行う(S542)。また終了コマンドかどうかを判定(S507)し、終了コマンドであればデータ処理を終了する(S522)。なお、それ以外のコマンドの場合、NOP(No Operation)コマンドとして何もしない(S520)。
●複数JOB動作
本実施形態の画像処理装置は、装置のユーザインターフェース(不図示)のボタン操作や、パソコンなどの他の外部機器からのネットワーク経由の操作など、様々な処理要求を同時に受信して、要求に応じたデータ処理を実行する必要がある。
まずは図10を用いて複数の処理要求を受けたときの複数JOBの基本動作について説明する。なお、同図において、デバイス650、655は、特にその種類は問わないが、画像読み取り部120、映像入力部130、画像印刷部170、映像表示160等の、画像処理部150にとって外部に存在するデバイスであり、画像処理を行うにあたって同期しなければならないデバイスである。
図10のようにアプリCPU上で動作するアプリケーション・ソフトウェア600は、処理要求Aを受信して制御CPU上で動作するJOB制御ソフトウェア605にJOB[A]を発行する(S601)。JOB制御ソフトウェア605はJOB[A]を受信して(S606)、JOB[A]に対するコマンドリスト(DPL)621を生成する(S607)。そしてDRAMなどの外部記憶装置の所定のアドレスに生成したコマンドリスト(DPL)621を格納する。JOB制御ソフトウェア605は、データ処理を行う画像処理部150のレジスタI/F159を介して、アドレス情報を含むJOB[A]に対するデータ処理を指示する(S608)。
一方、アプリケーション・ソフトウェア600は、別の外部機器からの処理要求Bを受信して、JOB制御ソフトウェア605にJOB[B]を発行する(S602)。JOB制御ソフトウェア605はJOB[B]を受信して(S609)、JOB[B]に対するコマンドリスト(DPL)622を生成する(S610)。そしてDRAMなどの外部記憶装置の所定のアドレスに生成したコマンドリスト(DPL)622を格納する。図10の複数JOB動作の一例では、先ほど指示したJOB[A]のデータ処理の完了を示す応答を受信していないため、JOB制御ソフトウェア605は、画像処理部150にJOB[B]に対するデータ処理はすぐには指示しない。
画像処理部150は、データ処理の指示(S608)を受けて、前述のようにコマンドリスト(DPL)621を読み出してコマンド処理を行いながら、データ処理を実行する(S631、S633)。図10の複数JOB動作の一例では、前述のように繰り返し数を1と設定されたコマンドリストのため、データ処理JOB[A]<0>(S631)、データ処理JOB[A]<1>(S633)のように2回のバンド処理を実行する。前述の図4のように分岐コマンド450の前には同期コマンド440があり、同期コマンド440を用いて他のデバイスの外部同期を受信して、他のデバイスと同期する。この動作の一例では、1回目のデータ処理JOB[A]<0>(S631)に対して、画像処理部150は完了を通知する(S652)。そして画像処理部150は、デバイス650の外部同期<0>ポートからのJOB[A]<0>応答を受信する(S651)まで同期待ち(S632)を行い、デバイス650と同期する。また2回目のデータ処理JOB[A]<1>(S633)に対して、画像処理部150は完了を通知する(S654)。そして画像処理部150は、デバイス655の外部同期<1>ポートからのJOB[A]<1>応答を受信する(S656)まで同期待ち(S638)を行い、デバイス655と同期する。
画像処理部150は、コマンドリスト(DPL)621の図4の終了コマンド460を処理することで、すべてのデータ処理を終え、JOB制御ソフトウェア605にJOB[A]の処理完了を通知する(S634)。JOB制御ソフトウェア605は、JOB[A]の処理完了を受信(S634)して、アプリケーション・ソフトウェア600にJOB[A]の完了を通知する(S611)。そして、アプリケーション・ソフトウェア600は処理要求した外部機器にJOB[A]の完了を応答する(S603)。
次に、JOB制御ソフトウェア605は、画像処理部150にJOB[B]に対するデータ処理を指示する(S612)。画像処理部150は、データ処理の指示(S612)を受けて、前述のようにコマンドリスト(DPL)622を読み出してコマンド処理を行いながら、データ処理を実行する(S640)。そして画像処理部150は、データ処理を完了すると、JOB制御ソフトウェア605にJOB[B]の処理完了を通知する(S641)。JOB制御ソフトウェア605は、JOB[B]の処理完了を受信(S641)して、アプリケーション・ソフトウェア600にJOB[B]の完了を通知する(S613)。そして、アプリケーション・ソフトウェア600は処理要求した外部機器にJOB[B]の完了を応答する(S604)。
以上のようにJOB制御ソフトウェア605が複数の処理要求に対して複数のコマンドリスト(DPL)を生成する。そしてハードウェア・リソースの競合状態に応じて、JOB制御ソフトウェア605が順番にデータ処理を指示することにより、複数の処理要求に対して1つのハードウェア・リソースを共有して製造コストを低減できる。
●複数JOBに対するタスク切り替え動作
上記の複数JOBの基本動作では、バンド処理の間に外部デバイスとの同期のため同期待ちを行う。このとき、同期待ち632のように外部デバイス650から短い時間で応答651がある場合には大きな問題はない。しかしながら、同期待ち638のように無視できない期間、外部デバイス655からの応答656がない場合には、その間のOB[A]の処理完了634も遅くなる。つまり、JOB制御ソフトウェア605は、画像処理部150にJOB[B]に対するデータ処理をなかなか指示できない。結果、処理要求Bは、無関係の処理要求Aの処理の遅れにより処理が待たされ、速度が低下することになってしまう。
そこで、かかる課題に対処するため、実施形態における画像処理部150は、或るジョブAを実行中に、制御CPUのJOB制御ソフトウェアからの他のジョブBの処理の指示を受信した場合には、そのジョブBを待ち行列に加えるため、その要求があったことを示す情報(コマンドリストのアドレスを含む)をJOBキュー272に格納する。そして、実行しているジョブAにおける予め設定されたコマンドを実行するタイミングになったとき、画像処理部150は実行中のジョブA以外のジョブBの指示を既に受け付けているか否かを判定し、ジョブBの存在の確認に応じてジョブBへの切り替えを行う。
以下、具体例を、図6を参照し、JOB[A]とJOB[B]のタスクを切り替え、JOB[A]の同期待ちの時間を隠蔽する手法について説明する。なお、前述の複数JOBの基本動作と同様の動作については説明を割愛する。
2回目のデータ処理JOB[A]<1>(S633)のあと、画像処理部150は、デバイス655の外部同期<1>ポートからのJOB[A]<1>応答を受信する(S656)まで同期待ち(S638)を行う。画像処理部150は、同期レジスタ262に複数のJOBのデータ処理の指示の有無を記憶することができ、図6のようにJOB[B]のデータ指示612を、同期待ち(S638)のより前に受信していることを判定できる。画像処理部150は、後述するJOB[B]タスク切り替え(S660)を行い、JOB[A]のデータ処理から、JOB[B]のデータ処理に実行対象を切り替える。そして画像処理部150は、データ処理JOB[B]<0>(S640)を実行する。そして画像処理部150は、JOB[A]<1>応答が未受信のため、データ処理JOB[B]<1>(S641)、データ処理JOB[B]<2>(S642)を順次、実行していく。そしてデータ処理JOB[B]<2>(S642)の途中で画像処理部150はJOB[A]<1>応答を受信したため、後述するJOB[A]のデータ処理へのタスク切り替え(S661)を行う。そして画像処理部150はJOB[A]<1>応答の受信のあと、すべての処理を終え、JOB制御ソフトウェア605にJOB[A]の処理完了を通知する(S634)。JOB制御ソフトウェア605は、JOB[A]の処理完了を受信(S634)して、アプリケーション・ソフトウェア600にJOB[A]の完了を通知する(S611)。そして、アプリケーション・ソフトウェア600は処理要求した外部機器にJOB[A]の完了を応答する(S603)。
一方、画像処理部150は、その間もJOB[B]のデータ処理を再開する。画像処理部150は、JOB[B]のデータ処理にタスクを切り替え(S662)、残りのデータ処理JOB[B]<3>を実行する(S643)。そして画像処理部150は、データ処理を完了すると、JOB制御ソフトウェア605にJOB[B]の処理完了を通知する(S641)。JOB制御ソフトウェア605は、JOB[B]の処理完了を受信(S641)して、アプリケーション・ソフトウェア600にJOB[B]の完了を通知する(S613)。そして、アプリケーション・ソフトウェア600は処理要求した外部機器にJOB[B]の完了を応答する(S604)。
●変形例
上述の説明では、同期コマンドによる外部デバイスとの同期待ちのときに別のJOBのタスク切り替え動作を行っていた。例えば、分岐コマンドでは、コマンドリスト(DPL)の読み先であるDPLアドレスを再設定するため、RAM106からコマンドリスト(DPL)を読み直す。そして、このコマンドリスト(DPL)の読み直しの際に、RAM106から再設定したDPLアドレスのコマンドリスト(DPL)が画像処理部150に届くまで画像処理実行部203は停止してしまう。そのため、分岐コマンドの位置は、処理の区切り(制御点)とすることができる。本実施形態の変形例として、図5のように、分岐コマンドのデコードでDPLアドレスを再設定してタスクを切り替え(S542)してもよい。そして、タスク切り替えして別JOBのタスクのデータ処理を実行しつつ、並行して切り替え前の再設定したDPLアドレスの指すコマンドリスト(DPL)を画像処理部150の中間バッファに読み直しておく。そしてデータ処理を再開したときに、コマンドリスト(DPL)の読み直しの停止時間をなくし、データ処理を高速化できる。以上のように同期コマンドと分岐コマンドは一連のデータ処理の同期点となるため、本発明では同期制御コマンドと呼称する。また本実施形態の更なる変更例として、同期と分岐の両方の動作を1コマンドで実行するコマンドを備え、コマンドリスト(DPL)のコマンド数の削減と、データ処理の高速化をしてもよい。
●本実施形態の効果
以上のように、複数JOBに対するタスク切り替え動作を行うことにより、外部同期の遅延により、外部同期に無関係の別のデータ処理への影響を低減できる。その結果、データ処理装置は、安定的に複数JOBに対するデータ処理を実行することができる。また外部との同期待ちの時間を隠蔽するように、別のJOBのデータ処理を実行できるため、複数JOBの処理要求が競合した際に、装置全体の処理時間を短縮できる。
[第2実施形態]
●タスク切り替えのためのソフトウェアによるデータ処理の分割動作
前述のようにタスクを切り替えることにより、複数JOBのデータ処理の処理時間を短くできる。しかしながら、仮にJOB[A]がJOB[B]より優先順位が高く、JOB[B]のデータ処理の時間がJOB[A]の同期待ち時間より長い場合、JOB[A]はJOB[B]のデータ処理により待たされてしまう。外部のデバイスと同期しているJOB[A]のリアルタイム性を維持するため、本実施形態の処理装置は、データ処理の分割機能を有する。
図8(a)を参照して、JOB制御ソフトウェア605のデータ処理の分割機能について説明する。S800にて、JOB制御ソフトウェア605は、アプリケーション・ソフトウェア600からJOBを受信すると処理をS805に進める。このS805にて、JOB制御ソフトウェア605は、既に実行中のJOBがあるか否かを判定する。
既に実行中のジョブが無いと場合(S805がNo)、JOB制御ソフトウェア605は、データ処理の分割は行わず、処理をS830に進める。そして、S830にて、JOB制御ソフトウェア605は、S800で受信したジョブのコマンドリスト(DPL)を生成する。
一方、既に実行中のJOBが存在する場合(S805がYes)、JOB制御ソフトウェア605はさらに判定を続ける。具体的には、JOB制御ソフトウェア605は実行JOBが外部同期有りか否かを判定する。外部同期無しの場合(S810がNo)、JOB制御ソフトウェア605は、受信JOBを実行JOBに挿入できないと判定し、データ処理の分割は行わず、S830にて、コマンドリスト(DPL)を生成する。一方、実行JOBに外部同期がある場合(S810のYES)、受信JOBを挿入できる。それ故、JOB制御ソフトウェア605は、S815にてさらなる判定を行う。
このS815にて、JOB制御ソフトウェア605は、これから実行する受信JOBが低優先順位であるか否かを判定する。受信JOBが低優先順位でない場合(S815のNO)、なるべく速く処理を完了する必要があり、データ処理の分割は行わず、コマンドリスト(DPL)を生成する(S830)。また、高優先順位の実行JOBのデータ処理を優先して実行JOBの同期待ちの間だけ、低優先順位の受信JOBのデータ処理をすることが望ましい。そのため、これから実行する受信JOBが低優先順位の場合(S815のYES)、JOB制御ソフトウェア605は、受信JOBのデータ処理を細かく分割する必要がある。本実施形態のデータ処理では、図4のコマンドリスト(DPL)例で処理内容を制御している。例えば、図4の画像処理コマンド420は、図3の1回のバンド処理の実行であり、分岐コマンド450の繰り返し数で、このバンド処理の実行回数を制御することができる。また1回のバンド処理のデータ処理量は、レジスタ設定コマンド412のバンド高さの設定で制御することができる。そのため、受信JOBのデータ処理を細かく分割するためには、JOB制御ソフトウェア605は1回のバンド処理のバンド高さを小さな値に変更して(S822)、その分だけバンド処理の実行回数を増やせばよい(S824)。例えば、A4サイズ(副走査方向6608画素)の紙面をバンド高さ16画素ずつ繰り返してデータ処理する場合、画像処理部150は413回のバンド処理を行っている。そこでJOB制御ソフトウェア605は、バンド高さの値を、16画素から4画素に減らして、バンド高さを削減し(S822)、その分だけバンド処理の繰り返し数を413回から1652回に増加する(S824)。JOB制御ソフトウェア605は、レジスタ設定コマンド412のバンド高さを4ラインの値とし、分岐コマンド450の繰り返し数を1650回の値としてコマンドリスト(DPL)を生成する(S830)。
最後にJOB制御ソフトウェア605は、連続JOBテーブルに受信JOBを登録(S835)して、実行JOBの完了応答を受信する前に、画像処理部150に受信JOBのデータ処理を指示する(S612)。
例えば、本実施形態の用途の一例では、スキャナ・ユニットとの外部同期待ちによる、汎用画像処理の遅延を課題にしていた。複写機に取り付けられるスキャナ・ユニットの性能は、製品仕様や工場出荷時の測定の統計量により、予め算出できており、スキャナ・ユニットとの外部同期の待ち時間は判明している。そのため、同期待ち時間に合わせたバンド領域の分割後のバンド高さの値も当然、算出できている。JOB制御ソフトウェア605が製品ごとに決められたパラメータにより、データ処理の分割動作によるデータ処理長の調整をすることができる。
また上記の一例ではスキャナ・ユニットとの外部同期待ちの課題で説明したが、インクジェット・プリンタのヘッド駆動の待ち時間についても同様である。また上記の一例は、バンド間の待ち時間について説明したが、繰り返し数を大きな値にすれば、ADF複数ページ連続スキャンや複数ページ連続プリントにも応用できる。例えば、電子露光デバイスを用いた複写機の場合、露光デバイスの安定化やキャリブレーションのために、連続ページ印刷の間に長時間の同期待ちが起こる。本発明の手法を用いれば、このようなページ間の長時間の同期待ちについても、ハードウェア・リソースを別の画像処理に割り当てることができる。
●本実施形態の効果
以上のように、タスク切り替えのためのソフトウェアによるデータ処理の分割動作を行うことにより、実行中の高優先JOBのデータ処理を優先できる。そしてデータ処理の分割動作により、高優先JOBの同期待ちの間だけ、低優先JOBのデータ処理を行い、タスク切り替えによる高優先JOBの速度低下を抑制することができる。このように高優先JOBのために、低優先JOBのデータ処理量を調整できるのである。
[第3実施形態]
●タスク切り替えのためのハードウェアによるデータ処理の分割動作
上記の第2実施形態では、JOB制御ソフトウェア605が、コマンドリスト(DPL)生成時にパラメータ変更を行い、データ処理の分割動作を実現していた。しかしながら、処理要求に応じた同一のデータ処理内容を実行時の状態により動的に異なるコマンドリスト(DPL)で表現するのは、ソフトウェアのテスト工数を増加させてしまう。またJOB制御ソフトウェア605は、処理要求ごとのJOBの指示と完了だけの管理ではなく、複数JOBの同時実行の状態まで監視し続けなければならない。そのため、ソフトウェアの処理負荷は増加してしまう。
本第3の実施形態では、JOB制御ソフトウェア605が生成するコマンドリスト(DPL)は、複数JOBの基本動作のときと同一のままとし、ハードウェア(画像処理部150)でDPLパラメータの変更を実現する。以降、図2と図8(b)を参照して詳細に説明する。
画像処理部150はあるJOBのデータ処理の指示(S612)を受け、そのJOBのコマンドリスト(DPL)の読み出しアドレス(DPLアドレス)以外に、優先度、外部同期の有無も受信する。
画像処理部150のタスク切り替え部270は複数JOBを管理するJOBキュー272と、タスク切り替えからの復帰時に必要となるコンテキスト・パラメータの退避レジスタ274を備える。タスク切り替え部270は、JOBキュー272にデータ処理の指示から、DPLアドレス、優先度、外部同期の有無を登録する。JOBキュー272には複数JOBの情報を登録できる。またタスク切り替え部270は、データ処理自動分割部276を備え、自動分割係数レジスタ(不図示)を備える。例えば、JOB制御ソフトウェア605は予め自動分割係数レジスタに、細分化の値を設定しておく(S850)。前述の第2実施形態と同じデータ処理の分割を行う場合には、この自動分割係数レジスタに“4”を設定しておく。実行中のデータ処理の同期待ちを受けて、実行中のデータ処理のコマンドリスト(DPL)の同期コマンド440のアドレスもしくは内部バッファのポインタ位置を退避レジスタ274に記憶する。そして、JOBキュー272の次に実行するJOB情報を取り出し、このJOBのコマンドリスト(DPL)を読み出してデータ処理を開始する。コマンドリスト(DPL)のデコード処理で、バンド高さの設定を行うレジスタ設定コマンド412を処理する際に、バンド高さの値を自動分割係数レジスタの値で除算してバンド高さとする(S852)。また繰り返し回数を示す分岐コマンド450を処理する際に、繰り返し回数を自動分割係数レジスタの値で乗算して繰り返し回数とする(S854)。
以上のように、データ処理の処理粒度に影響を与えるパラメータを変更して、タスク切り替え部270は実行中のデータ処理を細分化し、画像処理部150は細切れでデータ処理を実行する。やがて、切り替え前のタスクに対する外部同期の受信により、切り替え前のタスクの同期待ちが完了する。実行中のデータ処理のコマンドリスト(DPL)の同期コマンド440のデコードのときに、DPLアドレスもしくは内部バッファのポインタ位置を退避レジスタ274に記憶する。そして、退避レジスタ274から切り替え前のタスクのDPLアドレスもしくは内部バッファのポインタ位置を読み出し、切り替え前のタスクのデータ処理を再開する。
さらに、タスク切り替え部270は、JOB情報である優先度、外部同期を用いてデータ処理の処理粒度を制御してもよい。例えば、優先度の示す優先順位の高さに応じて細分化の値を小さくし、優先順位の高いデータ処理は、自動分割係数レジスタの値を“4”ではなく“2”とし、優先順位の低いデータ処理は自動分割係数レジスタの値を“4”ではなく“8”とすればよい。また実行中のタスクの外部同期の有無により、タスク切り替え機能の実施、非実施を切り替えればよい。
●本実施形態の効果
以上のように、タスク切り替えのためのハードウェアによるデータ処理の分割動作を行うことにより、ソフトウェアの制御負荷を増加することなく、タスク切り替えによる高優先JOBの速度低下を抑制することができる。
[第4実施形態]
●IoTセンサアレイを用いた構成例
図1(b)は、複数のセンサを設けたデータ処理装置の構成を示す。IoTデバイス機器として、多種多様な異種混合の多数のセンサアレイからの入力がある。そして、それらの多数のセンサからの入力をデータ処理部150でデータ処理する。センサアレイ180の、センサの各々は入力ポート182を介して取得したデータをDRAM106の所定の記憶領域にリアルタイムに記憶していく。センサアレイ180とデータ処理部150は、外部同期ポート184で互いに結合され、互いの処理完了を通知し合うことで互いに同期を取ることができる。本実施形態の構成では、複数センサの複数の外部同期ポート184が1つのデータ処理部150と接続されており、複数センサから1つのデータ処理部150(ハードウェア・リソース)を共有した構成となっている。そのため、本実施形態の構成は、複数センサに対して個別のデータ処理部を備えるわけではなく、低コスト・低消費電力で多数のセンサに対応できる構成と言える。しかしながら、複数センサの各々と同期してセンサの入力データをリアルタイムにデータ処理しなければならない。
前述までのタスク切り替えの一例では、複数JOBの一方は外部デバイスとの同期待ちがない動作を説明していた。本第4実施形態では、図7と図9を用いて、複数JOBが複数の外部デバイスとの同期待ちの動作とタスク切り替えの動作について説明する。
●画像処理部の拡充例
本第4実施形態では、多数の外部デバイスとの同期と、多数のJOBのタスク切り替えに柔軟に対応するため、図9のように画像処理部150を拡充する。具体的には、センサアレイの数に応じて同期部260の数を増やし、同期レジスタ262を必要な外部同期の数に合わせる。また前述の構成ではタスク切り替え部270の備えていたコンテキスト退避レジスタ274を、本実施形態では同期部260に備え、タスク切り替えできる数を増やすとともに同期先に合わせて管理できるように構成を変える。またデータ処理を実行する画像処理実行部203の数を増やして並列化し、複数のJOBのデータ処理を並行処理できる構成とする。
例えば、画像処理実行部921は、第1実施形態で説明した図2の画像処理実行部203の回路である。また画像処理実行部の他の実現形態(922、923)として、画像入出力部202と共有メモリ1540を介したコプロセッサI/F1545で接続されてもよい。画像入出力部は共有メモリ1540に複数の入力画素値を書き出し、入力データを有効化する。画像処理実行部203は入力データを受信に応じて、制御シーケンサ1541が起動し、演算器アレイ1542を制御してデータ処理をして、共有メモリ1540に出力データを書き戻す。そして制御シーケンサ1541は出力データを有効化して画像入出力部202にデータ処理の完了を通知する。このとき制御シーケンサ1541と演算器アレイ1542は、プロセッサ1543そのものでもよい。また共有メモリ1540を介したコプロセッサI/F1545が入力FIFOと出力FIFOであっても同様のことを実現することができる。なお、画像処理実行部203は、画像処理装置内に含まれる画像データ対してデータ処理を施す役割を担うため、データ処理実行部と呼称しても何ら問題はない。
以上のように画像処理実行部203は複数JOBの多種多様なデータ処理にコスト最適なヘテロジニアス(非対称)の構成でよく、画像処理実行部(1)921、実行部(2)922から実行部(Z)923まで同期部260の数とは別に多数を備えてもよい。
また本実施形態では、あるJOBのデータ処理がタスク切り替えにより、同期待ちの間、別のJOBのデータ処理に切り替わる。そして次にあるJOBのデータ処理がタスク切り替えにより再開するとき、タスク切り替え前にデータ処理した画像処理実行部に割り当たるとは限らない。そのため、コンテキスト退避レジスタ274をJOBに紐づけて管理することが望ましい。本実施形態の一例では、図9のようにセンサごとにJOBがある想定のため、同期部260に備える構成としている。例えば画像処理部150は、JOB数の増減に合わせてコンテキスト退避レジスタ274の数を柔軟に変更できることが望ましい。そのために、画像入出力部202内にコンテキスト退避用のバッファ(SRAM)等を別途設け、JOB数に合わせてコンテキストをスタックする構成の方がより効果的と言える。
また第1実施形態では、図2のように中間バッファ制御部222は、画像入力部221と画像出力部223との間で共有されていた。しかしながら、本実施形態では、あるJOBのデータ処理が割り当たる画像処理実行部が動的に切り替わる。そのため、複数の画像処理実行部203と、それに紐づく複数の画像入力部221、画像出力部223に対して、本実施形態では、DMAC194、DMAC196や中間バッファ制御部222を共有した方が効率的である。そのため、本実施形態では、画像処理部150内に転送部900として、共有DMAC部910と共有メモリ部905を備え、複数の画像入力部221、複数の画像出力部223、複数の画像処理実行部203から共有される構成とする。
そして、各部は、内部に複数の回路を備えている。例えば、図9の例では、共有DMAC部910には、前述のDMAC(Read)194やDMAC(Write)196が各々2基ずつ搭載されている。また共有メモリ部905は、メモリ(1)~メモリ(N)のような複数個の記憶手段で構成されている。そして、各々のメモリは、一般的には1つもしくは複数のSRAMなどで実現されており、ローカルバッファと総称する。
また同様に画像入出力部202には、複数の画像入出力部(1)~(Z)を備え、画像処理実行部203には同様に複数の画像処理実行部(1)~(Z)を備える。
また共有DMAC部910と共有メモリ部905は連結されており、一対の共有DMAC部910と共有メモリ部905を画像処理の転送部900と総称する。
また画像入出力部932と画像処理実行部921のように、画像入出力部の1つと画像処理実行部の1つが一対で連結されており、画像処理の処理部930と総称する。また画像処理実行部は、画像データを扱う画像処理以外の用途でも構わないため、単にデータ処理実行部という呼称でも構わない。
上記のように画像処理部150には、画像処理の処理部(一対の画像入出力部と画像処理実行部)が(1)~(Z)として記載した通り複数備えられている。そして、複数の処理部に対して画像処理の転送部(一対の共有DMAC部と共有メモリ部)が1個搭載されており、処理部(1)~(Z)から転送部は共有されている。そして処理部(1)~(Z)と転送部は、処理部の読み込み部、書き出し部、送信部、受信部を介して接続されている。
●外部同期のある、複数のタスク切り替え動作
本実施形態の、多数の外部デバイスとの同期と、多数のJOBのタスク切り替えの動作について、図7を用いて説明する。なお、前述の実施形態と同様の場合は、ここでの説明を割愛する。また説明の簡略化のため、図7では2つの外部同期と2のJOBのデータ処理の切り替えについて説明している。図7では、2つの処理要求(センサAとB)に対応する2つのDPL[A]621とDPL[B]622をタスク切り替えにより、1つの処理部930でデータ処理する一例である。データ処理の指示608,612を受け、2つの同期部260の外部同期の受付710、715が起動する。
まず、画像処理部150は、データ処理の指示が早かったDPL[A]621のデータ処理を行い、コマンド処理(S500)の中で同期制御コマンドの判定(S505/S506)が実行される。同期制御コマンドの場合(S505/S506のYES)、同期待ちと、タスク切り替えを判定する(S720)。例えば、センサAはセンサBより優先順位が高い。そして、センサAからの応答(S750_1)がすぐに戻り、同期待ち(S752_1)が短いとき、タスク切り替えは行わず(S720のNO)、DPL[A]621のデータ処理の待機を解除(S771)して、DPL[A]621のデータ処理を継続する。
一方、センサAがセンサBより優先順位が低いときは、センサAからの応答(S750_1)がすぐに戻り、同期待ち(S752_1)が短くても、タスク切り替えを行う(S720のYES)。またセンサAからの応答(S750_2)がすぐに戻らず、同期待ち(S752_2)が長い場合、当然ながら、タスク切り替えを行う(S720のYES)。
タスク切り替え部270は、DPL[A]の情報(DPLのプログラム・カウンタやDPLアドレスなど)を、前述の同期部のコンテキスト退避レジスタ274に一時記憶する(S722)。本実施形態では、このDPL情報の退避をリストアと呼称する。そして、タスク切り替え部270は、DPL[B]のデータ処理を開始する。もしデータ処理の再開なら、タスク切り替え部270は、同期部のコンテキスト退避レジスタ274に一時記憶していたDPL[B]の情報を読み出し、DPL[B]のデータ処理を再開する。本実施形態では、このDPL情報の再装填をリロードと呼称する。
そして、画像処理部150はDPL[B]のコマンド処理の中で同期制御コマンドの判定を行い、同期制御コマンドのとき、同期待ちを行い(S762)、センサBからの応答(S760)を待つ。
タスク切り替え部270は、既にセンサAからの応答があれば(S750_2)、DPL[A]のデータ処理へのタスク切り替えを行う(S730のYES)。もしセンサAからの応答(S750_3)より、先にセンサBの応答(S760)があれば、タスク切り替え部270は、DPL[A]のデータ処理へのタスク切り替えを行わない(S730のNO)。そして、タスク切り替え部270は、DPL[B]のデータ処理の待機を解除(S776)して処理を継続する。
DPL[A]のデータ処理へのタスク切り替え(S730のYES)のとき、タスク切り替え部270は、DPL[B]の情報をリストア(S732)する。そして、タスク切り替え部270は、DPL[A]のリロードを行い、DPL[A]のデータ処理の待機を解除(S772)して、データ処理を再開する。
●変形例
上述の説明では、同期待ちの長さや、JOBの優先順位により、タスク切り替えの判定を行った。もしセンサアレイを構成する各々のセンサに対して予め必要な処理時間がわかっているなら、上述のような動的なタスク切り替えの判定を行わず、単位時間ごとに細かくタイムスロットを切り、時間でセンサごとのデータ処理を割り振ってもよい。
●本実施形態の効果
以上のように本実施形態では、多種多様なデータ処理にコスト最適なヘテロジニアス(非対称)の回路構成と、複数のJOBに対するタスク切り替えを実現できた。その結果、多数の外部デバイスとの同期と、多数のJOBのタスク切り替えに柔軟に対応でき、ハードウェア・リソースを最適に活用することができた。
<本発明の着眼点>
以上のように第1から第4実施形態まで共通する特徴として、1つの処理要求に1つのコマンドリスト(ディスプレイリスト)を作成することがあげられる。その作用として、アプリケーション・ソフトウェア、制御ソフトウェアは、処理要求に応じてコマンドリストを作成して、データ処理を指示し、処理の完了を待てばよい。そのため、アプリケーション・ソフトウェア、制御ソフトウェアは、必要な処理の状態管理が非常に容易となる。そして、1つのコマンドリストで複数回の画像処理/データ処理を実行する機能を有するため、多種多様な画像処理を1つのコマンドリストで実現できる。そして、本発明の機能では、複数回の画像処理/データ処理の間の任意のコマンド位置に制御点としての同期制御コマンドを設定して画像処理/データ処理を区切ることができる。そして、本発明の機能では、複数の処理要求に応じたコマンドリストを複数取得し、この制御点を同期点として、あるコマンドリストから別のコマンドリストにハードウェア・リソースの割り当てを変更できる。その結果、本発明の機能では、複数の処理要求のデータ処理の一部分(タスク)を自在に切り替えることができる。つまり、本発明の同期制御コマンドとは、ある処理の一連のデータ処理の動作の制御点であるだけでなく、別の処理要求のデータ処理に切り替わるための同期点(分岐点)の意味を併せ持つのである。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
100…CPU回路部、120…画像読み取り部、130…映像入力部、150…画像処理部、160…映像表示部、170…画像印刷部、159…レジスタ、202…画像入出力部、203…画像処理実行部
260…同期部、270…タスク切り替え部、

Claims (14)

  1. アプリケーションから要求された処理を実行するデータ処理装置であって、
    処理の指示があったとき、当該指示で示されるコマンドリストに従って処理を実行する処理手段と、
    アプリケーションから処理の要求を受信したとき、当該要求に応じたコマンドリストを生成し、前記処理手段に対して処理の指示を行う制御手段とを有し、
    前記処理手段は、
    前記制御手段からの第1の指示に対するコマンドリストを実行中に第2の指示を受けた場合であって、前記第1の指示に対するコマンドリストにおける予め設定された制御点となるコマンドの実行のタイミングにて、前記第2の指示に対するコマンドリストの実行に切り替える切り替え手段を含み、
    前記処理手段は、画像を複数に分割した部分画像を単位として処理し、
    前記制御手段は、実行すべきコマンドリストを切り替える際に、コマンドリストの優先順位により、処理すべき単位の部分画像の大きさを制御する
    ことを特徴とするデータ処理装置。
  2. 前記制御点となるコマンドは、外部デバイスと同期するための同期コマンドであることを特徴とする請求項1記載のデータ処理装置。
  3. 前記制御点となるコマンドは、実行するコマンド位置を分岐するための分岐コマンドであることを特徴とする請求項1記載のデータ処理装置。
  4. 前記部分画像は処理の対象の画像を、水平、又は垂直の方向に分割したバンド領域であり、前記制御手段は、バンド領域の高さを制御して処理するデータの量を調整することを特徴とする請求項に記載のデータ処理装置。
  5. 前記制御点となるコマンドは、外部デバイスと同期するための同期コマンドであって、
    前記制御手段は、前記外部デバイスとの同期の長さにより、前記部分画像の大きさを制御することを特徴とする請求項に記載のデータ処理装置。
  6. 前記制御手段は、切り替え先のコマンドリストの生成のときパラメータを変更することにより、前記部分画像の大きさを制御することを特徴とする請求項に記載のデータ処理装置。
  7. 前記処理手段は、切り替え先のコマンドリストのパラメータの値を演算して前記部分画像の大きさを制御する手段を含むことを特徴とする請求項に記載のデータ処理装置。
  8. 前記コマンドリストのパラメータは、バンド高さと、バンド処理の繰り返し数を含むことを特徴とする請求項6乃至7のいずれか1項に記載のデータ処理装置。
  9. 前記処理手段は、複数の同期部を備え、処理要求に応じて取得した複数のコマンドリストの情報を退避することを特徴とする請求項1に記載のデータ処理装置。
  10. 前記複数の同期部の各々にセンサが接続されることを特徴とする請求項に記載のデータ処理装置。
  11. 前記処理手段は、複数のデータ処理手段を有し、
    前記切り替え手段により、複数の処理要求に対するコマンドリストの何れかを複数のデータ処理手段の何れかに割り振ることを特徴とする請求項1記載のデータ処理装置。
  12. 前記複数のデータ処理手段の各々は、互いに異なる回路を用いたヘテロジニアスな構成であることを特徴とする請求項11に記載のデータ処理装置。
  13. アプリケーションから要求された処理を実行するデータ処理装置の制御方法であって、
    処理の指示があったとき、当該指示で示されるコマンドリストに従って処理を実行する処理工程と、
    アプリケーションから処理の要求を受信したとき、当該要求に応じたコマンドリストを生成し、前記処理工程に対して処理の指示を行う制御工程とを有し、
    前記処理工程は、
    前記制御工程からの第1の指示に対するコマンドリストを実行中に第2の指示を受けた場合であって、前記第1の指示に対するコマンドリストにおける予め設定された制御点となるコマンドの実行のタイミングにて、前記第2の指示に対するコマンドリストの実行に切り替える切り替え工程を含み、
    前記処理工程は、画像を複数に分割した部分画像を単位として処理し、
    前記制御工程は、実行すべきコマンドリストを切り替える際に、コマンドリストの優先順位により、処理すべき単位の部分画像の大きさを制御する
    ことを特徴とするデータ処理装置の制御方法。
  14. コンピュータが読み込み実行することで、前記コンピュータに、請求項13に記載の制御方法の各工程を実行させるためのプログラム。
JP2018238647A 2018-12-20 2018-12-20 データ処理装置及びその制御方法及びプログラム Active JP7278067B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018238647A JP7278067B2 (ja) 2018-12-20 2018-12-20 データ処理装置及びその制御方法及びプログラム
US16/715,050 US11256459B2 (en) 2018-12-20 2019-12-16 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

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018238647A JP7278067B2 (ja) 2018-12-20 2018-12-20 データ処理装置及びその制御方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2020101921A JP2020101921A (ja) 2020-07-02
JP7278067B2 true JP7278067B2 (ja) 2023-05-19

Family

ID=71097611

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018238647A Active JP7278067B2 (ja) 2018-12-20 2018-12-20 データ処理装置及びその制御方法及びプログラム

Country Status (2)

Country Link
US (1) US11256459B2 (ja)
JP (1) JP7278067B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023009354A (ja) 2021-07-07 2023-01-20 富士通株式会社 演算処理装置および演算処理方法
US11687750B1 (en) * 2022-04-25 2023-06-27 Kyocera Document Solutions Inc. Image processing apparatus, image forming apparatus, and image processing method for efficiently performing image processing of image forming apparatus in time divisional manner

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070101330A1 (en) 2005-10-27 2007-05-03 Canon Kabushiki Kaisha Data processing apparatus and method
JP2011210282A (ja) 2011-07-25 2011-10-20 Toshiba Corp 情報処理装置およびプログラム実行制御方法
US20160352952A1 (en) 2015-05-29 2016-12-01 Canon Kabushiki Kaisha Data processing apparatus, data processing method, and storage medium

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8041852B1 (en) * 2008-12-09 2011-10-18 Calos Fund Limited Liability Company System and method for using a shared buffer construct in performance of concurrent data-driven tasks
US8452944B2 (en) 2009-05-22 2013-05-28 Canon Kabushiki Kaisha Information processing apparatus and information processing method
JP2010282429A (ja) 2009-06-04 2010-12-16 Canon Inc 画像処理装置及びその制御方法
JP5650441B2 (ja) 2010-06-07 2015-01-07 キヤノン株式会社 演算装置、キャッシュ装置、その制御方法及びコンピュータプログラム
JP5627330B2 (ja) 2010-08-02 2014-11-19 キヤノン株式会社 情報処理装置、キャッシュ装置およびデータ処理方法
GB2545508B (en) * 2015-12-18 2019-04-10 Imagination Tech Ltd Controlling operation of a GPU
US10373287B2 (en) * 2017-08-18 2019-08-06 Apple Inc. Fast GPU context switch
US10748323B2 (en) * 2018-12-04 2020-08-18 Intel Corporation GPU based shader constant folding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070101330A1 (en) 2005-10-27 2007-05-03 Canon Kabushiki Kaisha Data processing apparatus and method
JP2007122369A (ja) 2005-10-27 2007-05-17 Canon Inc データ処理装置及びデータ処理方法
JP2011210282A (ja) 2011-07-25 2011-10-20 Toshiba Corp 情報処理装置およびプログラム実行制御方法
US20160352952A1 (en) 2015-05-29 2016-12-01 Canon Kabushiki Kaisha Data processing apparatus, data processing method, and storage medium
JP2016225978A (ja) 2015-05-29 2016-12-28 キヤノン株式会社 データ処理装置、データ処理方法

Also Published As

Publication number Publication date
US20200201635A1 (en) 2020-06-25
US11256459B2 (en) 2022-02-22
JP2020101921A (ja) 2020-07-02

Similar Documents

Publication Publication Date Title
US10313547B2 (en) Data processing apparatus, data processing method, and storage medium
US9531911B2 (en) Data processing apparatus, data processing method and storage medium for storing image data
US8661209B2 (en) Data processing apparatus, data processing method, and computer-readable recording medium for writing and reading data to and from a storage
JP4862910B2 (ja) 画像処理装置および画像処理制御プログラム
JP7278067B2 (ja) データ処理装置及びその制御方法及びプログラム
US9569703B2 (en) Data transfer apparatus and method thereof
US8773713B2 (en) Image processing apparatus, image forming system and non-transitory computer readable medium
JP3682443B2 (ja) 画像形成装置
JP5441487B2 (ja) 画像処理装置及びその制御方法
JP6904697B2 (ja) 情報処理装置及び通信制御方法
JP2001126057A (ja) 画像処理装置
JP6463437B2 (ja) 画像処理装置及びその制御方法、並びに、プログラム
JP7194009B2 (ja) データ処理装置および方法
JP2016189177A (ja) 画像処理装置、その制御方法およびプログラム
JP2018118477A (ja) 画像処理装置とその制御方法、及びプログラム
JP2002314763A (ja) カラー複写機制御装置
JP6808712B2 (ja) 画像処理装置及びその制御方法、並びに、プログラム
JPH11168610A (ja) 画像処理装置
JP2002359739A (ja) 画像処理装置、画像処理方法およびその方法をコンピュータに実行させるプログラム、並びにそのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP3785295B2 (ja) 画像処理装置
JP2006014378A (ja) 画像処理装置、画像処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JP5885780B2 (ja) 画像処理装置及びその制御方法、並びに、プログラム
JP6287516B2 (ja) 印刷制御装置及びプログラム
JP2007221520A (ja) 画像処理装置、画像処理方法および画像処理プログラム
JP2010062984A (ja) 画像形成装置

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211215

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221012

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221216

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: 20230410

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230509

R151 Written notification of patent or utility model registration

Ref document number: 7278067

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151