JP2006133839A - Image processing device, print device and image processing method - Google Patents
Image processing device, print device and image processing method Download PDFInfo
- Publication number
- JP2006133839A JP2006133839A JP2004318868A JP2004318868A JP2006133839A JP 2006133839 A JP2006133839 A JP 2006133839A JP 2004318868 A JP2004318868 A JP 2004318868A JP 2004318868 A JP2004318868 A JP 2004318868A JP 2006133839 A JP2006133839 A JP 2006133839A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- cpu
- image processing
- image
- executed
- 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.)
- Withdrawn
Links
Images
Landscapes
- Image Processing (AREA)
- Facsimile Image Signal Circuits (AREA)
- Color Image Communication Systems (AREA)
Abstract
Description
本発明は、同一領域の画像データに対して複数種別の画像処理を順番に施す画像処理装
置、印刷装置および画像処理方法に関するものである。
The present invention relates to an image processing apparatus, a printing apparatus, and an image processing method that sequentially perform a plurality of types of image processing on image data in the same region.
従来から、2つのCPUを有する印刷装置が提案されている(例えば、特許文献1参照
)。例えば特許文献1の印刷装置では、第1のCPUを有する第1の制御区画が、印刷デ
ータを中間段階のデータに変換する処理を制御し、第2のCPUを有する第2の制御区画
が、中間段階のデータを印刷機構に出力可能なビットマップデータに変換する処理を制御
する。そして、この印刷装置では、第1の制御区画および第2の制御区画が、互いに第2
の制御区画および第1の制御区画が実行すべき処理を実行し得る機能を有している。
Conventionally, a printing apparatus having two CPUs has been proposed (see, for example, Patent Document 1). For example, in the printing apparatus of
The control section and the first control section have a function capable of executing processing to be executed.
一連の複数の処理を実行する場合、各処理を実行する処理部は、その制御区画が実行す
べき処理に対して高速化が図られる。
When a series of a plurality of processes are executed, the processing unit that executes each process can be speeded up with respect to the process to be executed by the control partition.
しかしながら、上述の従来の印刷装置では、2つの各制御区画は、それぞれ、その制御
区画が実行すべき第1の処理と別の制御区画が実行すべき第2の処理の両方を実行可能と
しており、各処理がいずれの制御区画でも実行可能なように各制御区画のアーキテクチャ
を構成する必要があるため、各制御区画が実行すべき処理のみを実行する場合に比べ、各
制御区画のアーキテクチャを最適化し難い、という問題がある。
However, in the above-described conventional printing apparatus, each of the two control sections can execute both the first process to be executed by the control section and the second process to be executed by another control section. The architecture of each control partition needs to be configured so that each process can be executed in any control partition, so the architecture of each control partition is optimal compared to the case where only the processing that each control partition should execute There is a problem that it is difficult to convert.
本発明は、複数の処理部により同一領域の画像データに対して一連の複数種別の画像処
理を順番に施す場合において1つの処理部が自己が主に実行する画像処理とは別の種別の
画像処理を実行するときでも、自己が主に実行する画像処理に対するアーキテクチャを最
適化し易く一連の画像処理を高速に実行可能な画像処理装置、印刷装置および画像処理方
法を得ることを目的とする。
In the present invention, when a plurality of types of image processing are sequentially performed on image data in the same region by a plurality of processing units, an image of a type different from the image processing that one processing unit mainly executes An object of the present invention is to obtain an image processing apparatus, a printing apparatus, and an image processing method capable of easily optimizing an architecture for image processing that is mainly executed by itself and capable of executing a series of image processing at high speed.
上記の課題を解決するために、本発明では以下のようにした。 In order to solve the above problems, the present invention is configured as follows.
本発明に係る画像処理装置の1つは、汎用命令を実行する汎用命令演算部、および複数
種別の画像処理のうちの一部における所定の演算を専用命令として汎用演算部より高速に
実行する専用命令演算部をそれぞれ有し、専用命令演算部により汎用命令演算部に比べ高
速実行可能な種別の画像処理の一部または全部をそれぞれ専用命令演算部を使用して実行
し、同一領域の画像データに対して複数種別の画像処理を順番に施す複数の処理部と、汎
用命令と専用命令で画像処理を記述した第1のプログラム、および汎用命令で画像処理を
記述した第2のプログラムを記憶するメモリとを備える。そして、複数の処理部のうちの
1または複数の処理部は、負荷バランスに応じて、それぞれ、複数の処理部のうちの別の
処理部に関して専用命令演算部で汎用命令演算部より高速実行可能な種別の画像処理の一
部を実行する。さらに、処理部は、2以上の種別の画像処理を実行する場合、専用命令演
算部で専用命令を実行可能な種別については第1のプログラムを実行し、それ以外の種別
については第2のプログラムを実行する。
One of the image processing apparatuses according to the present invention includes a general-purpose instruction calculation unit that executes a general-purpose instruction and a dedicated execution that performs a predetermined calculation in a part of a plurality of types of image processing as a dedicated instruction at a higher speed than the general-purpose calculation unit. Each has a command calculation unit, and the dedicated command calculation unit executes part or all of image processing of a type that can be executed at a higher speed than the general-purpose command calculation unit, using the dedicated command calculation unit, respectively, and image data in the same area A plurality of processing units for sequentially performing a plurality of types of image processing, a first program describing image processing using a general-purpose instruction and a dedicated instruction, and a second program describing image processing using a general-purpose instruction And a memory. Then, one or more of the plurality of processing units can be executed at higher speed than the general-purpose instruction computing unit by a dedicated instruction computing unit with respect to another processing unit of the plurality of processing units, respectively, according to the load balance. Some types of image processing. Further, when executing two or more types of image processing, the processing unit executes the first program for the types that can execute the dedicated instructions in the dedicated instruction calculation unit, and the second program for the other types. Execute.
これにより、各処理部に専用命令演算部を設け、自己の主に実行する画像処理か否かに
応じて異なるプログラムを使用するようにしたので、複数の処理部により同一領域の画像
データに対して一連の複数種別の画像処理を順番に施す場合において1つの処理部が自己
の主に実行する画像処理とは別の種別の画像処理を実行するときでも、自己が主に実行す
る画像処理に対するアーキテクチャを最適化し易く一連の画像処理を高速に実行すること
ができる。
As a result, each processing unit is provided with a dedicated instruction calculation unit, and a different program is used depending on whether or not the image processing is mainly executed by itself. When performing a series of image processing of a plurality of types in order, even when one processing unit executes another type of image processing different from the image processing mainly executed by itself, It is easy to optimize the architecture, and a series of image processing can be executed at high speed.
また、本発明に係る画像処理装置の1つは、汎用命令を実行する汎用命令演算部、およ
び複数種別の画像処理のいずれかにおける所定の演算を専用命令として汎用命令演算部よ
り高速に実行する専用命令演算部をそれぞれ有する複数の処理部により、各種別の画像処
理の一部または全部を専用命令演算部を使用して実行してパイプライン処理を行うパイプ
ライン処理部と、汎用命令と専用命令で画像処理を記述した第1のプログラム、および汎
用命令で画像処理を記述した第2のプログラムとを記憶するメモリを備える。そして、パ
イプライン処理を構成する複数の処理部のうちの少なくとも1つの処理部は、パイプライ
ン処理においてボトルネックとなる種別の画像処理を汎用命令演算部のみで実行する。さ
らに、処理部は、2以上の種別の画像処理を実行する場合、専用命令演算部で専用命令を
実行可能な種別については第1のプログラムを実行し、それ以外の種別については第2の
プログラムを実行する。
Also, one of the image processing apparatuses according to the present invention executes a predetermined operation in any one of a general-purpose instruction calculation unit that executes a general-purpose instruction and a plurality of types of image processing as a dedicated instruction at a higher speed than the general-purpose instruction calculation unit. A pipeline processing unit that performs pipeline processing by executing a part or all of various types of image processing using a dedicated instruction calculation unit by a plurality of processing units each having a dedicated instruction calculation unit, and a general-purpose instruction and dedicated A memory is provided for storing a first program describing image processing using instructions and a second program describing image processing using general-purpose instructions. Then, at least one of the plurality of processing units constituting the pipeline processing executes the type of image processing that becomes a bottleneck in the pipeline processing only by the general-purpose instruction calculation unit. Further, when executing two or more types of image processing, the processing unit executes the first program for the types that can execute the dedicated instructions in the dedicated instruction calculation unit, and the second program for the other types. Execute.
これにより、パイプライン処理部内の各処理部に専用命令演算部を設け、自己の主に実
行する画像処理か否かに応じて異なるプログラムを使用するようにしたので、複数の処理
部により同一領域の画像データに対して一連の複数種別の画像処理を順番に施す場合にお
いて1つの処理部が自己の主に実行する画像処理とは別の種別の画像処理を実行するとき
でも、自己が主に実行する画像処理に対するアーキテクチャを最適化し易く一連の画像処
理を高速に実行することができる。
As a result, a dedicated instruction calculation unit is provided in each processing unit in the pipeline processing unit, and different programs are used depending on whether or not the image processing is mainly executed by itself. In the case where a series of multiple types of image processing are sequentially performed on the image data, even if one processing unit executes another type of image processing different from the main image processing performed by itself, It is easy to optimize the architecture for the image processing to be executed, and a series of image processing can be executed at high speed.
また、本発明に係る画像処理装置は、上記の画像処理装置のいずれかに加え、次のよう
にしてもよい。つまり、その場合、画像処理装置は、複数の処理部にバスを介して接続さ
れた外部メモリと、複数の処理部が形成される1チッププロセッサ内に形成され複数の処
理部をリード/ライト可能なスタティックRAMを有するプロセッサ内部メモリと、複数
の処理部とプロセッサ内部メモリとを接続する上記バスとは別のローカルバスとを備える
。そして、バスおよび外部メモリは、画像処理間のデータ転送の第1の経路に使用され、
ローカルバスおよびプロセッサ内部メモリは、第1の経路とは別の第2の経路に使用され
る。
The image processing apparatus according to the present invention may be as follows in addition to any of the image processing apparatuses described above. In other words, in this case, the image processing apparatus can read / write a plurality of processing units formed in an external memory connected to a plurality of processing units via a bus and a one-chip processor in which the plurality of processing units are formed. A processor internal memory having a static RAM, and a local bus different from the bus connecting the plurality of processing units and the processor internal memory. The bus and external memory are used for the first path of data transfer between image processing,
The local bus and the processor internal memory are used for a second path different from the first path.
これにより、複数の処理部間でのデータ転送に2以上の経路を使用でき、3種別以上の
画像処理を実行する場合に、複数の処理部間でのデータ転送の衝突による遅延を低減する
ことができ、一連の画像処理を高速に実行することができる。
As a result, two or more paths can be used for data transfer between a plurality of processing units, and when performing three or more types of image processing, a delay due to a data transfer collision between the plurality of processing units is reduced. And a series of image processing can be executed at high speed.
また、本発明に係る画像処理装置は、上記の画像処理装置のいずれかに加え、次のよう
にしてもよい。つまり、その場合、画像処理装置は、プロセッサ内に形成され複数の処理
部からリード/ライト可能なスタティックRAMを有し、そのスタティックRAMに画像
処理の処理条件を指定するパラメータを格納するプロセッサ内部メモリと、複数の処理部
とプロセッサ内部メモリとを接続するローカルバスとを備える。そして、複数の処理部は
、プロセッサ内部メモリに格納されたパラメータを読み出し、そのパラメータで指定され
る処理条件で前記画像処理を実行する。
The image processing apparatus according to the present invention may be as follows in addition to any of the image processing apparatuses described above. That is, in this case, the image processing apparatus has a static RAM that is formed in the processor and is readable / writable from a plurality of processing units, and stores parameters that specify processing conditions for image processing in the static RAM. And a local bus that connects the plurality of processing units and the processor internal memory. The plurality of processing units read parameters stored in the processor internal memory and execute the image processing under processing conditions specified by the parameters.
これにより、画像処理の処理条件を指定するパラメータに対して高速にアクセス可能と
なり、プロセッサ内部メモリを有効活用して一連の画像処理を高速に実行することができ
る。
As a result, it is possible to access the parameter for specifying the processing condition of the image processing at high speed, and a series of image processing can be executed at high speed by effectively utilizing the internal memory of the processor.
また、本発明に係る画像処理装置は、上記の画像処理装置のいずれかに加え、次のよう
にしてもよい。つまり、複数の処理部のうちの1または複数の処理部は、負荷バランスに
応じて、それぞれ、自己の内蔵する専用命令演算部で汎用命令演算部より高速実行可能な
種別の画像処理の一部または全部と、複数の処理部のうちの別の処理部に関して専用命令
演算部で汎用命令演算部より高速実行可能な種別の画像処理の一部をマルチタスク並列処
理で実行する。
The image processing apparatus according to the present invention may be as follows in addition to any of the image processing apparatuses described above. In other words, one or more of the plurality of processing units is a part of the type of image processing that can be executed at higher speed than the general-purpose instruction arithmetic unit by the dedicated instruction arithmetic unit built therein according to the load balance. Alternatively, a part of the image processing of a type that can be executed at higher speed than the general-purpose instruction calculation unit by the dedicated instruction calculation unit with respect to all and another processing unit among the plurality of processing units is executed by multitask parallel processing.
これにより、1つの処理部により2以上の種別の画像処理が実行される場合に、それら
の画像処理が並列に実行されるため、分散される処理の割り当て時に、分散先の処理部が
別の処理を実行中でもその処理の割り当てを行い分散処理の割り当てに伴うオーバヘッド
を軽減することができ、一連の画像処理を高速に実行することができる。
As a result, when two or more types of image processing are executed by one processing unit, the image processing is executed in parallel. Even during processing, the processing can be assigned to reduce the overhead associated with the distributed processing, and a series of image processing can be executed at high speed.
また、本発明に係る画像処理装置は、上記の画像処理装置のいずれかに加え、次のよう
にしてもよい。つまり、その場合、画像処理装置は、複数の処理部の負荷バランスを監視
し画像処理の分散割合を周期的に決定する分散割合決定手段と、画像処理の開始時点にお
ける分散割合でその画像処理を2以上の処理部に分散してそれぞれ実行させる開始処理手
段とを備える。
The image processing apparatus according to the present invention may be as follows in addition to any of the image processing apparatuses described above. In other words, in this case, the image processing apparatus monitors the load balance of a plurality of processing units and periodically determines the distribution ratio of the image processing, and performs the image processing with the distribution ratio at the start time of the image processing. And a start processing unit that is distributed and executed by two or more processing units.
これにより、画像処理の場合、画像データの内容に応じて、各処理部の負荷が動的に変
化するため、各時点において最適な分散割合で、1または複数種別の画像処理が2以上の
処理部に分散され、一連の画像処理を高速に実行することができる。
As a result, in the case of image processing, the load on each processing unit changes dynamically according to the content of the image data. Therefore, one or a plurality of types of image processing is performed at two or more processes at an optimal distribution ratio at each time point. It is distributed to the unit, and a series of image processing can be executed at high speed.
本発明に係る印刷装置は、複数の処理として少なくとも色変換およびハーフトーンを実
行する上記のいずれかの画像処理装置と、その画像処理装置による処理後の画像データに
基づいて画像を印刷する印刷手段とを備える。
A printing apparatus according to the present invention includes any one of the image processing apparatuses that execute at least color conversion and halftone as a plurality of processes, and a printing unit that prints an image based on image data processed by the image processing apparatus. With.
これにより、複数の処理部により同一領域の画像データに対して一連の複数種別の画像
処理を順番に施す場合において1つの処理部が自己の主に実行する画像処理とは別の種別
の画像処理を実行するときでも、自己が主に実行する画像処理に対するアーキテクチャを
最適化し易く一連の画像処理、ひいては印刷処理を高速に実行することができる。
Thereby, when a plurality of types of image processing are sequentially performed on the image data of the same region by a plurality of processing units, the image processing of a type different from the image processing mainly performed by one processing unit itself Even when executing the above, it is easy to optimize the architecture for the image processing that is mainly executed by itself, and it is possible to execute a series of image processing, and thus printing processing at high speed.
本発明に係る画像処理方法は、汎用命令を実行する汎用命令演算部、および複数種別の
画像処理のうちの一部における所定の演算を専用命令として汎用演算部より高速に実行す
る専用命令演算部をそれぞれ有する複数の処理部を使用して、専用命令演算部により汎用
命令演算部に比べ高速実行可能な種別の画像処理の一部または全部をそれぞれ専用命令演
算部を使用して実行し、同一領域の画像データに対して複数種別の画像処理を順番に施す
る。そして、負荷バランスに応じて、複数の処理部のうちの1または複数の処理部により
、それぞれ、複数の処理部のうちの別の処理部に関して専用命令演算部で汎用命令演算部
より高速実行可能な種別の画像処理の一部を実行する。さらに、処理部は、2以上の種別
の画像処理を実行する場合、専用命令演算部で専用命令を実行可能な種別については第1
のプログラムを実行し、それ以外の種別については第2のプログラムを実行する。
An image processing method according to the present invention includes a general-purpose instruction calculation unit that executes a general-purpose instruction, and a dedicated instruction calculation unit that executes a predetermined calculation in a part of a plurality of types of image processing as a dedicated instruction at a higher speed than the general-purpose calculation unit Using a plurality of processing units each having a dedicated instruction calculation unit, a part or all of image processing of a type that can be executed at a higher speed than the general-purpose instruction calculation unit is executed using the dedicated instruction calculation unit. Multiple types of image processing are sequentially performed on the image data of the region. And according to the load balance, one or more processing units of the plurality of processing units can execute each of the other processing units of the plurality of processing units at a higher speed than the general-purpose instruction calculation unit with the dedicated instruction calculation unit. Some types of image processing. In addition, when executing two or more types of image processing, the processing unit first sets the types that can execute the dedicated instruction in the dedicated instruction calculation unit.
The other program is executed, and the second program is executed for other types.
これにより、自己の主に実行する画像処理か否かに応じて2種類のプログラムを使用し
、自己の主に実行する画像処理の場合には各処理部内の専用命令演算部を使用するように
したので、複数の処理部により同一領域の画像データに対して一連の複数種別の画像処理
を順番に施す場合において1つの処理部が自己の主に実行する画像処理とは別の種別の画
像処理を実行するときでも、自己が主に実行する画像処理に対するアーキテクチャを最適
化し易く一連の画像処理を高速に実行することができる。
As a result, two types of programs are used depending on whether or not the image processing is to be executed mainly by the user, and in the case of the image processing to be executed mainly by the user, a dedicated instruction calculation unit in each processing unit is used. Therefore, when a plurality of types of image processing are sequentially performed on image data in the same region by a plurality of processing units, image processing of a type different from the image processing that one processing unit mainly executes itself Even when executing the above, it is easy to optimize the architecture for the image processing mainly executed by itself, and a series of image processing can be executed at high speed.
以下、図に基づいて本発明の実施の形態を説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
実施の形態1.
図1は、本発明の実施の形態1に係る画像処理装置の構成を示すブロック図である。本
発明の実施の形態1に係る画像処理装置は、印刷装置に内蔵され、JPEG(Joint Phot
ographic Experts Group )画像データなどといった画像データに対して印刷前に一連の
画像処理を施す装置である。
FIG. 1 is a block diagram showing a configuration of an image processing apparatus according to
ographic Experts Group) A device that performs a series of image processing on image data such as image data before printing.
図1において、ASIC1は、1つのチップで構成されたマルチCPU(Central Proc
essing Unit)のプロセッサである。ASIC1は、8個のCPU11〜18を内蔵し、
CPU11でプリンタ駆動部4の制御を行い、7個のCPU12〜18でJPEGデコー
ド、画像補正、色変換およびハーフトーンからなる複数の一連の画像処理を実行するプロ
セッサである。この実施の形態1では、JPEGデコード、画像補正、色変換およびハー
フトーンといった複数の互いに異なる処理が画像データに順番に施され、JPEGデコー
ド、画像補正、色変換、ハーフトーンの順番でパイプライン処理が実行される。
In FIG. 1, an
essing Unit) processor. The
The
また、JPEGデコード、画像補正、色変換およびハーフトーンのうちの1または複数
の処理は、CPU12〜18の負荷バランスに応じて、CPU12〜18のうちの複数の
CPUで分散処理される。
In addition, one or more processes among JPEG decoding, image correction, color conversion, and halftone are distributed by a plurality of CPUs of the
また、外部RAM(Random Access Memory)2は、バス20を介してASIC1の各C
PU11〜18に接続された半導体メモリである。この実施の形態1では、外部RAM2
は、DDR−SDRAMとされ、1ワードのリード/ライトに20〜30クロックが必要
となる。
An external RAM (Random Access Memory) 2 is connected to each C of the
This is a semiconductor memory connected to the
Is a DDR-SDRAM, and 20 to 30 clocks are required to read / write one word.
また、メモリカード3は、装置に対して着脱可能であって、JPEGでエンコードされ
た画像データを含むJPEGファイルを記憶する不揮発性の半導体メモリを有する記憶媒
体である。なお、メモリカード3は、図示せぬインタフェース回路を介してバス20に接
続される。
The
また、プリンタ駆動部4は、プリンタヘッドや各種モータなどの、紙などの媒体への印
刷に必要な電気的および機械的構成部分である。なお、プリンタ駆動部4は、図示せぬイ
ンタフェース回路を介してバス20に接続される。プリンタ駆動部4は、画像処理装置に
よる処理後の画像データに基づいて画像を印刷する印刷手段として機能する。
The
図1に示すASIC1において、CPU11は、駆動制御プログラム45(図3参照)
に従って、一連の画像処理後の画像データに基づいて、プリンタ駆動部4を制御するCP
Uである。
In the
CP for controlling the
U.
また、CPU12は、CPU12〜CPU18に共通な汎用命令を実行可能な汎用命令
演算部12aの他に、JPEGデコード用の専用命令を実行可能なJPEGデコード専用
命令演算部12bを有し、主に、JPEGデコードを実行するCPUである。
The
JPEGデコード用の専用命令は、JPEGデコード時に多用される一連の演算を1つ
の命令に集約したものであり、JPEGデコード専用命令演算部12bは、その専用命令
に対応して、その一連の演算を、汎用命令演算部12aより少ないクロック数で実行可能
な演算器構成を有する。なお、そのような専用命令は、1つに限定されず、必要に応じて
設計時に定義される。つまり、JPEGデコード専用命令演算部12bは、1または複数
の専用命令に対応して動作する、JPEGデコード高速化のための専用ハードウェアとい
える。
The dedicated instruction for JPEG decoding is a collection of a series of operations frequently used during JPEG decoding into one instruction. The JPEG decoding dedicated
また、CPU13は、CPU12〜CPU18に共通な汎用命令を実行可能な汎用命令
演算部13aの他に、画像補正用の専用命令を実行可能な画像補正専用命令演算部13b
を有し、主に、画像補正を実行するCPUである。なお、画像補正としては、トーン調整
および彩度強調を行う第1処理、シャープネス(先鋭度の調整)を行う第2処理、および
ノイズ除去を行う第3処理のうちの1または複数が必要に応じて行われる。なお、各処理
は、例えば出願人が提供するAPF(Auto Photo Fine )と同様に行えばよい。
In addition to the general-purpose
And a CPU that mainly performs image correction. As image correction, one or more of a first process for tone adjustment and saturation emphasis, a second process for sharpness (adjustment of sharpness), and a third process for noise removal are necessary. Done. Each process may be performed in the same way as APF (Auto Photo Fine) provided by the applicant, for example.
画像補正用の専用命令は、画像補正処理時に多用される一連の演算を1つの命令に集約
したものであり、画像補正専用命令演算部13bは、その専用命令に対応して、その一連
の演算を、汎用命令演算部13aより少ないクロック数で実行可能な演算器構成を有する
。なお、そのような専用命令は、1つに限定されず、必要に応じて設計時に定義される。
つまり、画像補正専用命令演算部13bは、1または複数の専用命令に対応して動作する
、画像補正高速化のための専用ハードウェアといえる。
The dedicated instruction for image correction is a series of operations frequently used during image correction processing, and is integrated into one instruction. The image correction dedicated
That is, the image correction dedicated
また、CPU14は、CPU12〜CPU18に共通な汎用命令を実行可能な汎用命令
演算部14aの他に、色変換用の専用命令を実行可能な色変換専用命令演算部14bを有
し、主に、色変換を実行するCPUである。なお、この実施の形態1では、色変換として
、RGBデータからCYMKデータへの変換が行われる。
Further, the
色変換用の専用命令は、色変換処理時に多用される一連の演算を1つの命令に集約した
ものであり、色変換専用命令演算部14bは、その専用命令に対応して、その一連の演算
を、汎用命令演算部14aより少ないクロック数で実行可能な演算器構成を有する。なお
、そのような専用命令は、1つに限定されず、必要に応じて設計時に定義される。つまり
、色変換専用命令演算部14bは、1または複数の専用命令に対応して動作する、色変換
高速化のための専用ハードウェアといえる。
The dedicated instruction for color conversion is a series of operations frequently used during color conversion processing, and is integrated into one instruction, and the dedicated instruction for color
また、CPU15は、CPU12〜CPU18に共通な汎用命令を実行可能な汎用命令
演算部15aの他に、ハーフトーン用の専用命令を実行可能なハーフトーン専用命令演算
部15bを有し、主に、ハーフトーンを実行するCPUである。CPU16〜CPU18
は、それぞれ、CPU15と同様の構成を有し、汎用命令演算部16a,17a,18a
とハーフトーン専用命令演算部16b,17b,18bを有する。
Further, the
Respectively have the same configuration as the
And halftone dedicated instruction calculation units 16b, 17b, and 18b.
4個のCPU15〜18は、ハーフトーンを並列に実行するCPU群である。また、ハ
ーフトーンの分散処理時には、他のCPU(CPU12〜14)が、CPU15〜18と
ともに使用される。
The four
ハーフトーン用の専用命令は、ハーフトーン時に多用される一連の演算を1つの命令に
集約したものであり、ハーフトーン専用命令演算部15b〜18bは、その専用命令に対
応して、その一連の演算を、汎用命令演算部15a〜18aより少ないクロック数で実行
可能な演算器構成を有する。なお、そのような専用命令は、1つに限定されず、必要に応
じて設計時に定義される。つまり、ハーフトーン専用命令演算部15b〜18bは、1ま
たは複数の専用命令に対応して動作する、ハーフトーン高速化のための専用ハードウェア
といえる。
The dedicated instruction for halftone is a series of operations that are frequently used during halftoning, and is integrated into one instruction. The dedicated instruction calculation units 15b to 18b for halftone correspond to the dedicated instruction and the series of operations. It has a computing unit configuration that can perform computations with a smaller number of clocks than the general-purpose
この実施の形態1では、ハーフトーン専用命令演算部15b〜18bを有するCPU1
5〜18が4個設けられているが、ハーフトーン専用命令演算部15b〜18bを有する
CPUの数は、別の数でもよい。その数は、色変換後の色数に応じて決定してもよい。
In the first embodiment, the
Although four of 5 to 18 are provided, the number of CPUs having the halftone dedicated instruction calculation units 15b to 18b may be different. The number may be determined according to the number of colors after color conversion.
また、ローカルバス19は、ASIC1内で、CPU11〜18とデュアルポートRA
M21,22とを接続するバスであって、これらの間のデータ伝送路である。また、バス
20は、CPU11〜18と外部RAM2、プリンタ駆動部4およびメモリカード3とを
接続するバスであって、これらの間のデータ伝送路である。なお、ローカルバス19aお
よびバス20は、例えば128ビットのデータバスである。
The
A bus connecting M21 and M22, and a data transmission path between them. A
また、デュアルポートRAM21,22は、ASIC1に内蔵され、入出力ポートを2
つ有し、一方のポートと他方のポートへのリード/ライトを独立に実行可能なRAMであ
る。デュアルポートRAM21,22は、スタティックRAM(SRAM)で構成され、
外部RAM2より高速にデータのリード/ライトをすることが可能である。デュアルポー
トRAM21,22の記憶容量は、数〜数十キロバイトとされ、外部RAM2の記憶領域
より小さい。
The dual port RAMs 21 and 22 are built in the
The RAM is capable of independently executing read / write to one port and the other port. The dual port RAMs 21 and 22 are composed of static RAM (SRAM).
It is possible to read / write data faster than the
デュアルポートRAM21,22の一方のポートはローカルバス19に接続され、他方
のポートは、CPU12とCPU14にそれぞれ直接に接続される。
One port of the dual port RAMs 21 and 22 is connected to the
図2は、図1におけるCPU12の詳細な構成を示すブロック図である。図2において
、命令管理部31は、プログラム実行時における命令の入出力を管理する。また、命令キ
ャッシュ32は、フェッチされた命令や実行後の命令を一時的に格納するSRAMなどの
高速なRAMである。また、命令RAM33は、CPU12に内蔵された命令格納用の内
部RAMである。命令RAM33は、SRAMで構成された高速なメモリであり、他のC
PUからアクセスできないメモリである。
FIG. 2 is a block diagram showing a detailed configuration of the
This memory cannot be accessed from the PU.
また、データ管理部34は、プログラム実行時におけるデータの入出力を管理する。ま
た、データキャッシュ35は、ロードされたデータや演算結果を一時的に格納するSRA
Mなどの高速なRAMである。また、データRAM36は、CPU12に内蔵されたデー
タ格納用の内部RAMである。データRAM36は、SRAMで構成された高速なメモリ
であり、他のCPUからアクセスできないメモリである
The
It is a high-speed RAM such as M. The
また、メモリインタフェース37は、CPU12に併設されたメモリとの間でデータの
入出力を実行するインタフェースである。メモリインタフェース37は、直接にデュアル
ポートRAM21に接続されるとともに、ローカルバス19を介してデュアルポートRA
M22に接続される。また、外部インタフェース38は、バス20やその他の外部デバイ
スに接続され、バス20を介して、ASIC1外部の周辺デバイス(外部RAM2など)
との間でデータの入出力を実行するインタフェースである。
The
Connected to M22. The
It is an interface that executes data input / output with.
なお、ここでは、一例としてCPU12について説明したが、CPU13〜18につい
ても、図1に示すように専用命令演算部が異なるだけで、他の構成は、図2のものと同様
である。ただし、メモリインタフェース37は、CPU14では、ローカルバス19およ
びデュアルポートRAM22に接続されるが、その他のCPU13,15〜18では、ロ
ーカルバス19に接続される。
Although the
データ管理部34は、ローカルバス19を介してメモリインタフェース37に接続され
たデュアルポートRAM21,22に対してリード/ライトをすることが可能である。こ
の場合のデュアルポートRAM21,22へのリード/ライトは、外部RAM2へのリー
ド/ライトより速く実行可能である。CPU11〜18がデュアルポートRAM21に対
してリード/ライトを行う場合、CPU12は、ローカルバス19を介さずに一方のポー
トに対してリード/ライトを行い、その他のCPU11,13〜18は、ローカルバス1
9を介して他方のポートに対してリード/ライトを行う。同様に、CPU11〜18がデ
ュアルポートRAM22に対してリード/ライトを行う場合、CPU14は、ローカルバ
ス19を介さずに一方のポートに対してリード/ライトを行い、その他のCPU11〜1
3,15〜18は、ローカルバス19を介して他方のポートに対してリード/ライトを行
う。
The
The other port is read / written via 9. Similarly, when the
3 and 15 to 18 read / write to the other port via the
図3は、図1におけるCPU11〜18により実行されるプログラムを示すブロック図
である。図3に示すプログラム41s〜44s,41g〜44g,45は、例えばバス2
0に接続された図示せぬ不揮発性メモリから外部メモリ2にロードされる。
FIG. 3 is a block diagram showing a program executed by the
The
図3において、JPEGデコードプログラム41sは、CPU12がJPEG画像デー
タをデコードするためのプログラムである。JPEGデコードプログラム41sは、JP
EGデコード用の専用命令を使用して記述されたプログラムである。したがって、JPE
Gデコードプログラム41sのうち、専用命令は、専用命令演算部12bで実行され、そ
の他の汎用命令は、汎用命令演算部12aで実行される。このため、ASIC1内のCP
U12以外のCPUでは、実行されない。
In FIG. 3, a
This is a program described using a dedicated instruction for EG decoding. Therefore, JPE
In the
It is not executed by a CPU other than U12.
一方、JPEGデコードプログラム41gは、CPU13〜18がJPEG画像データ
をデコードするためのプログラムである。JPEGデコードプログラム41gは、汎用命
令のみで記述されたプログラムである。したがって、JPEGデコードプログラム41g
は、汎用命令演算部13a〜18aで実行される。
On the other hand, the
Are executed by the general-purpose
なお、JPEGデコードプログラム41sとJPEGデコードプログラム41gとでは
、一部に異なる命令が使用されるが、同一データに対して、JPEGデコードプログラム
41sによる演算結果とJPEGデコードプログラム41gによる演算結果は、同一とな
る。
The
また、画像補正プログラム42sは、CPU13が画像補正を実行するためのプログラ
ムである。画像補正プログラム42sは、画像補正用の専用命令を使用して記述されたプ
ログラムである。したがって、画像補正プログラム42sのうち、専用命令は、専用命令
演算部13bで実行され、その他の汎用命令は、汎用命令演算部13aで実行される。こ
のため、ASIC1内のCPU13以外のCPUでは、このプログラム42sは実行され
ない。
The
一方、画像補正プログラム42gは、CPU12,14〜18が画像補正を実行するた
めのプログラムである。画像補正プログラム42gは、汎用命令のみで記述されたプログ
ラムである。したがって、画像補正プログラム42gは、汎用命令演算部12a,14a
〜18aで実行される。
On the other hand, the
Executed at ~ 18a.
なお、画像補正プログラム42sと画像補正プログラム42gとでは、一部に異なる命
令が使用されるが、同一データに対して、画像補正プログラム42sによる演算結果と画
像補正プログラム42gによる演算結果は、同一となる。
The
また、色変換プログラム43sは、CPU14が色変換を実行するためのプログラムで
ある。色変換プログラム43sは、色変換用の専用命令を使用して記述されたプログラム
である。したがって、色変換プログラム43sのうち、専用命令は、専用命令演算部14
bで実行され、その他の汎用命令は、汎用命令演算部14aで実行される。このため、A
SIC1内のCPU14以外のCPUでは、このプログラム43sは実行されない。
The
The other general-purpose instructions executed by b are executed by the general-purpose
The
一方、色変換プログラム43gは、CPU12,13,15〜18が色変換を実行する
ためのプログラムである。色変換プログラム43gは、汎用命令のみで記述されたプログ
ラムである。したがって、色変換プログラム43gは、汎用命令演算部12a,13a,
15a〜18aで実行される。
On the other hand, the
It is executed at 15a to 18a.
なお、色変換プログラム43sと色変換プログラム43gとでは、一部に異なる命令が
使用されるが、同一データに対して、色変換プログラム43sによる演算結果と色変換プ
ログラム43gによる演算結果は、同一となる。
The
また、ハーフトーンプログラム44sは、CPU15〜18がハーフトーンを実行する
ためのプログラムである。ハーフトーンプログラム44sは、ハーフトーン用の専用命令
を使用して記述されたプログラムである。したがって、ハーフトーンプログラム44sの
うち、専用命令は、専用命令演算部15b〜18bで実行され、その他の汎用命令は、汎
用命令演算部15a〜18aで実行される。このため、ASIC1内のCPU15〜18
以外のCPUでは、このプログラム44sは実行されない。
The halftone program 44s is a program for the
In other CPUs, the program 44s is not executed.
一方、ハーフトーンプログラム44gは、CPU12〜14がハーフトーンを実行する
ためのプログラムである。ハーフトーンプログラム44gは、汎用命令のみで記述された
プログラムである。したがって、ハーフトーンプログラム44gは、汎用命令演算部12
a〜14aで実行される。
On the other hand, the halftone program 44g is a program for the
a to 14a.
なお、ハーフトーンプログラム44sとハーフトーンプログラム44gとでは、一部に
異なる命令が使用されるが、同一データに対して、ハーフトーンプログラム44sによる
演算結果とハーフトーンプログラム44gによる演算結果は、同一となる。
The halftone program 44s and the halftone program 44g use partially different instructions, but the calculation result by the halftone program 44s and the calculation result by the halftone program 44g are the same for the same data. Become.
また、駆動制御プログラム45は、CPU11がプリンタ駆動部4を制御するためのプ
ログラムである。
The
上述のプログラムのうち、専用命令を含むプログラム41s〜44sは、専用命令を使
用するとともに、CPU内蔵の命令RAM33およびデータRAM36を可能な限り使用
するようにして、CPU毎に最適化されてコーディングされている。一方、汎用命令のみ
のプログラム41g〜44gは、CPU内蔵の命令キャッシュ32およびデータキャッシ
ュ35並びに命令RAM33およびデータRAM36の容量を意識して、バス20を介し
ての外部RAM2に対するリード/ライトの回数が少なくなるようにコーディングされて
いる。例えば、あるループ処理内で使用するデータ量をデータキャッシュ35の容量以下
としたりする。
Of the above-mentioned programs, the
なお、上述のASIC1は、例えばTensilica社のXtensa技術により設
計可能である。Xtensa技術を使用する場合、上述の各専用命令は、Xtensa技
術で提供される命令拡張TIE(Tensilica Instruction Extension )を使用することで
定義可能であり、各専用命令演算部12b〜18bのハードウェア構成も、Xtensa
技術で実現可能である。TIEを使用して設定された専用命令を使用することで、通常、
同一の演算が2〜5倍に高速化されるが、場合によっては数十倍に高速化される。
Note that the
It is feasible with technology. By using dedicated instructions set using TIE,
The same operation is speeded up 2 to 5 times, but in some cases it is speeded up to several tens of times.
次に、上記装置により実行される一連の画像処理について説明する。図4は、実施の形
態1に係る装置により実行される一連の画像処理について説明するフローチャートである
。
Next, a series of image processing executed by the apparatus will be described. FIG. 4 is a flowchart for describing a series of image processing executed by the apparatus according to the first embodiment.
この装置では、まず、JPEG画像ファイルに含まれるJPEGデータがデコードされ
る(ステップS1)。デコード後の画像データは、RGB画像データである。
In this apparatus, first, JPEG data included in a JPEG image file is decoded (step S1). The decoded image data is RGB image data.
次に、必要に応じて、デコード後の画像データに対して、画像補正が施される(ステッ
プS2)。画像補正としては、トーン調整および彩度強調を行う第1処理、シャープネス
を行う第2処理、およびノイズ除去を行う第3処理のうちの1または複数が、必要に応じ
て行われる。
Next, image correction is performed on the decoded image data as necessary (step S2). As the image correction, one or more of a first process that performs tone adjustment and saturation enhancement, a second process that performs sharpness, and a third process that performs noise removal are performed as necessary.
そして、画像補正後の画像データに対して、リサイズとレイアウトの処理が実行される
(ステップS3)。リサイズ処理では、印刷解像度、印刷用紙サイズ、一枚の用紙に印刷
する画像の数に応じた拡大・縮小率で、画像データのサイズ(縦横の画素数)が変更され
る。また、レイアウト処理では、印刷イメージに一致する画像データ(RGBデータ)が
生成される。
Then, resizing and layout processing is performed on the image data after image correction (step S3). In the resizing process, the size of image data (the number of vertical and horizontal pixels) is changed at an enlargement / reduction ratio corresponding to the print resolution, print paper size, and number of images to be printed on one sheet. In the layout process, image data (RGB data) that matches the print image is generated.
次に、色座標系の変更が実行される。この実施の形態1では、リサイズとレイアウトの
処理後のRGB画像データが、CYMK画像データに変換される(ステップS4)。なお
、この実施の形態1では、RGB画像データが、7色のCYMK画像データ(シアンC,
イエローY,マゼンタM,ブラックK,レッドR,ブルーB,クリア(つやだし)CL)
に変換される。
Next, the color coordinate system is changed. In the first embodiment, the RGB image data after the resizing and layout processing is converted into CYMK image data (step S4). In the first embodiment, the RGB image data is CYMK image data of 7 colors (cyan C,
Yellow Y, Magenta M, Black K, Red R, Blue B, Clear (Glossy) CL)
Is converted to
色変換後のCYMK画像データにおける各色の画像データに対してハーフトーンが実行
される(ステップS5)。ハーフトーンでは、ディザ法または誤差分散法により各色の画
像データが二値化される。
Halftone is performed on the image data of each color in the CYMK image data after color conversion (step S5). In the halftone, the image data of each color is binarized by a dither method or an error dispersion method.
そして、二値化後の各色の画像データに基づいて、CPU11によりプリンタ駆動部4
が制御され、媒体上に画像が印刷される(ステップS6)。その際、例えばマイクロウィ
ーブ処理などが適宜施される。
Then, based on the image data of each color after binarization, the
Is controlled, and an image is printed on the medium (step S6). At that time, for example, a microweave process is appropriately performed.
このようにして、JPEGデータといった汎用の画像データが、プリンタ固有の、プリ
ンタ駆動部4の駆動制御に適したデータ形式に変換される。
In this way, general-purpose image data such as JPEG data is converted into a data format suitable for the drive control of the
ここで、実施の形態1に係る画像処理装置において、上述の処理を実行する場合のデー
タの流れについて説明する。なお、ここでは、説明を簡単にするために、ある処理の一部
を、それとは別の種別の処理を実行するCPUに実行させる分散処理は行われないものと
仮定して説明する。ただし、CPU15〜18は、ハーフトーンを分散処理する。図5は
、実施の形態1に係る画像処理装置において一連の画像処理を実行する場合のデータの流
れについて説明するブロック図である。
Here, the flow of data when the above-described processing is executed in the image processing apparatus according to
まず、メモリカード3内のJPEGファイル3aに含まれるJPEGデータがCPU1
2に転送される(フローF1)。
First, JPEG data contained in the
2 (flow F1).
そして、JPEGファイル3a、印刷用紙のサイズ、印刷解像度、ユーザ指定の条件に
基づいて、画像補正の種類、度合いなどを指定するパラメータ、色変換時のLUT(ルッ
クアップテーブル)を指定するパラメータ、ハーフトーンの設定パラメータ(二値化方法
の選択、二値化時の誤差分散の係数パターンなどを設定するためのパラメータ)が生成さ
れ、CPU12からデュアルポートRAM21に転送され格納される。
Based on the
CPU12によるJPEGデコード後、デコードされた画像データは、所定のブロック
あるいはバンドごとにCPU12からデュアルポートRAM21に転送され格納された後
、CPU13により読み出される(フローF2)。
After JPEG decoding by the
さらに、画像補正に関するパラメータがデュアルポートRAM21からCPU13によ
り読み出され、そのパラメータに応じた画像補正が、デュアルポートRAM21から読み
出した画像データに対してCPU13により実行される。画像補正後、処理後の画像デー
タは、CPU13から外部RAM2に転送され格納された後、CPU12により読み出さ
れる(フローF3)。
Further, a parameter relating to image correction is read from the
そして、CPU12によるリサイズ・レイアウト処理後、処理後の画像データは、CP
U12から外部RAM2に転送され格納された後、CPU14により読み出される(フロ
ーF4)。
After the resizing / layout processing by the
After being transferred from U12 to the
次に、色変換に関するパラメータがデュアルポートRAM21からCPU14により読
み出され、そのパラメータに応じた色変換がCPU14により実行される。色変換後、処
理後の画像データは、所定サイズのブロックごとにCPU14からデュアルポートRAM
22に転送され格納された後、CPU15〜18に順次読み出される(フローF5)。
Next, a parameter relating to color conversion is read from the
After being transferred to 22 and stored, it is sequentially read out by the
次に、ハーフトーンに関するパラメータがデュアルポートRAM21からCPU15〜
18により読み出され、そのパラメータに応じたハーフトーンがCPU15〜18により
実行される。ハーフトーン後、処理後の画像データは、CPU15〜18から外部RAM
2に転送され格納された後、CPU11により読み出される(フローF6)。
Next, the parameters relating to the halftone are changed from the
18 and halftones corresponding to the parameters are executed by the CPUs 15-18. After halftone processing, the processed image data is transferred from the CPU 15-18 to the external RAM.
After being transferred to 2 and stored, it is read by the CPU 11 (flow F6).
このように、CPU11〜CPU18の間での画像データの転送には、デュアルポート
RAM21,22の経路と外部RAM2の経路が使用される。
As described above, the path of the dual port RAMs 21 and 22 and the path of the
なお、ここでは、上述のように分散処理は行われないものとして説明したが、専用命令
演算部を有するCPUとその他のCPUで分散処理が実行される場合も同様に、CPU1
1〜CPU18の間での画像データの転送には、デュアルポートRAM21,22および
外部RAM2が使用され、各種別の処理に関するパラメータ、JPEGデコード後の画像
データおよび色変換後の画像データの転送は、デュアルポートRAM21,22が使用さ
れる。
Here, the description has been made assuming that the distributed processing is not performed as described above. However, when the distributed processing is executed by the CPU having the dedicated instruction calculation unit and other CPUs, the
The dual port RAMs 21 and 22 and the
図6は、専用命令演算部を有するCPUとその他のCPUで分散処理を行わない場合の
データ処理の流れおよびタイムシーケンスの一例を示す図である。なお、図6では、各処
理の期間が画像データの処理単位となるブロックごとに示されている。また、図中の番号
は、そのブロックの番号を示している。すなわち、「(1)」が付されたブロックは、画
像中の同一箇所についての一連の処理を示している。
FIG. 6 is a diagram illustrating an example of a data processing flow and a time sequence when distributed processing is not performed by a CPU having a dedicated instruction calculation unit and other CPUs. In FIG. 6, the period of each process is shown for each block that is a unit of image data processing. The numbers in the figure indicate the block numbers. That is, the block with “(1)” indicates a series of processes for the same part in the image.
図6に示すように、例えば、ブロック(1)については、T0〜T1の期間においてC
PU12によりJPEGデコードが実行され、T1〜T2の期間においてCPU13によ
り画像補正が実行され、T2〜T3の期間においてCPU12によりリサイズとレイアウ
トが実行され、T3〜T4の期間においてCPU14により色変換が実行されCPU15
によりハーフトーンが実行され、その後に、CPU11によるプリンタ駆動部4の制御が
実行される。
As shown in FIG. 6, for example, for the block (1), in the period from T0 to T1, C
The JPEG decoding is executed by the
Thus, halftone is executed, and then the control of the
なお、図6では、データの転送時間は図示していない。また、色変換が完了したデータ
に対して順次ハーフトーンが実行されるため、同一ブロックについての色変換とハーフト
ーンについては、ほぼ並行して実行される。
In FIG. 6, the data transfer time is not shown. In addition, since halftone is sequentially executed on data for which color conversion has been completed, color conversion and halftone for the same block are executed substantially in parallel.
また、プロック(1)以降のブロック(2),・・・についても、同様の順番で処理が
実行される。また、CPU11〜CPU18の利用効率を挙げるために、JPEGデコー
ド、画像補正、色変換、ハーフトーンおよび駆動部制御については、図6に示すように、
パイプライン処理が実行される。
Also, the processing is executed in the same order for the blocks (2),... After the block (1). Further, in order to increase the utilization efficiency of the
Pipeline processing is executed.
なお、ここでは、CPU15〜18によるハーフトーンの分散処理以外には同一の処理
を複数のCPUで実行する分散処理は行われないものとして説明したが、この実施の形態
1では、実際には、同一の処理が複数のCPU(その処理の専用命令演算部を有するCP
Uとその他のCPU)で分散して実行される場合がある。
Here, it has been described that the distributed processing in which the same processing is executed by a plurality of CPUs other than the halftone distributed processing by the
U and other CPUs) may be executed in a distributed manner.
ここまででは、この実施の形態1に係る画像処理装置により実行される一連の画像処理
およびその画像処理装置の基本的な動作について簡単に説明するため、CPU15〜18
によるハーフトーンの分散処理以外には同一の処理を複数のCPUで実行する分散処理は
行われないものとして説明した。次に、この実施の形態1に係る画像処理装置により実行
される分散処理について説明する。
Up to this point, in order to briefly describe a series of image processing executed by the image processing apparatus according to the first embodiment and the basic operation of the image processing apparatus, the
In the above description, it is assumed that the distributed processing in which the same processing is executed by a plurality of CPUs is not performed other than the halftone distributed processing according to the above. Next, distributed processing executed by the image processing apparatus according to the first embodiment will be described.
この実施の形態1に係る画像処理装置により実行される分散処理では、(1)各処理種
別について各処理部(CPU12,CPU13,CPU14,CPU15〜18)での処
理割合を決定する分散割合決定処理、(2)各処理種別について分散割合決定処理で処理
を割り当てられた処理部へ分散割合決定処理で決定された処理割合分の処理を開始させる
開始処理、(3)各処理種別について割り当てられた処理割合分の処理を実行する個別処
理が実行される。
In the distributed processing executed by the image processing apparatus according to the first embodiment, (1) distributed ratio determination processing for determining the processing ratio in each processing unit (
図7は、本発明の実施の形態1に係る画像処理装置により実行される分散処理を説明す
るブロック図である。
FIG. 7 is a block diagram illustrating distributed processing executed by the image processing apparatus according to
図7に示すように、分散割合決定処理61は、CPU12により実行される。分散割合
決定処理61は、CPU12が、分散割合決定処理61を記述した図示せぬプログラムを
実行することで実現される。そのプログラムは、例えば外部RAM2に記憶される。分散
割合決定処理61では、CPU12は、処理能力テーブル52に格納されている各処理種
別に対する各処理部(CPU12、CPU13、CPU14、およびCPU15〜18の
4つのそれぞれ)の処理能力を示すデータ(所定の画素数分データの処理時間、単位時間
あたりの処理画素数など)を読み出し、各処理部へ割り当てられた1または複数の個別処
理に要する計算時間が可能な限り均等になるように、各処理種別についての各処理部への
処理割合を決定する。この負荷分散テーブル51および処理能力テーブル52は、デュア
ルポートRAM21,22に格納されるのが好ましいが、外部RAM2に格納されてもよ
い。
As shown in FIG. 7, the distribution
図8は、本発明の実施の形態1における処理能力テーブル52の一例を示す図である。
処理能力テーブル52は、予め設定されたデフォルトの処理能力テーブル52a(図8(
A))と、画像データに対する実際の各個別処理63の際に収集された処理能力情報を含
む処理能力テーブル52b(図8(B))を有する。
FIG. 8 is a diagram showing an example of the processing capability table 52 according to
The processing capacity table 52 is a preset default processing capacity table 52a (FIG. 8 (
A)) and a processing capability table 52b (FIG. 8B) including processing capability information collected during each actual
処理能力テーブル52aは、各処理部と処理種別との組合せに対するデフォルトの処理
能力情報(図8では処理速度)を有する。処理能力テーブル52aは、処理種別が、JP
EGデコード、画像補正の第1処理(トーン調整および彩度強調)、画像補正の第2処理
(シャープネス)、画像補正の第3処理(ノイズ除去)、色変換、ディザ法によるハーフ
トーン、および誤差拡散法によるハーフトーンのいずれかであり、かつ、処理部が、CP
U12、CPU13、CPU14、およびCPU15〜18のいずれかであるすべての組
合せについての処理能力情報のデフォルト値を有する。例えば、JPEGデコードについ
てのCPU12の処理能力情報のデフォルト値は、800×1000画素/秒となってい
る。
The processing capability table 52a has default processing capability information (processing speed in FIG. 8) for combinations of processing units and processing types. In the processing capacity table 52a, the processing type is JP.
EG decoding, first image correction process (tone adjustment and saturation enhancement), second image correction process (sharpness), third image correction process (noise removal), color conversion, dither halftone, and error One of the halftones by the diffusion method, and the processing unit is CP
It has a default value of processing capability information for all combinations of any of U12, CPU13, CPU14, and CPU15-15. For example, the default value of the processing capability information of the
処理能力テーブル52bは、ある画像データを処理する際に画像データの1バンドまた
は1ライン分ずつ測定された実測値としての、各処理部と各処理種別との組合せに対する
処理能力情報(図8では処理速度)を有する。図8(b)に示す状態では、処理能力テー
ブル52bに、JPEGデコードについてのCPU12の処理能力情報(760×100
0画素/秒)、JPEGデコードおよび3つの画像補正についてのCPU13の処理能力
情報(300×1000画素/秒、2,300×1000画素/秒,1,190×100
0画素/秒,350×1000画素/秒)、色変換についてのCPU14の処理能力情報
(1,600×1000画素/秒)、並びに、画像補正の第1処理およびハーフトーンに
ついてのCPU15〜18の処理能力情報(543×1000画素/秒,980×100
0画素/秒)のみが登録されている。すなわち、その他の組合せについては、1バンドま
たは1ライン分の個別処理が実行されていないため、処理能力情報が登録されていない。
The processing capability table 52b includes processing capability information for combinations of processing units and processing types as measured values measured for each band or line of image data when processing certain image data (in FIG. 8, Processing speed). In the state shown in FIG. 8B, the processing capability information 52 (760 × 100) of the
0 pixel / second), JPEG decoding and three image correction processing information of the CPU 13 (300 × 1000 pixels / second, 2,300 × 1000 pixels / second, 1,190 × 100)
0 pixel / second, 350 × 1000 pixel / second), processing capacity information of the
Only 0 pixel / second) is registered. That is, for the other combinations, the individual processing for one band or one line is not executed, so that the processing capability information is not registered.
CPU12は、分散割合決定処理の際、処理能力テーブル52内の処理能力情報を参照
するが、処理能力テーブル52bの値を優先的に使用する。つまり、あるCPUと処理種
別との組合せについて処理能力情報が収集されている場合には、処理能力テーブル52b
の値が使用され、未だ収集されていない場合には、処理能力テーブル52aのデフォルト
値が使用される。
The
Is used and the default value of the processing capacity table 52a is used.
なお、CPU15〜18の処理能力情報には、4つのCPU15〜18の処理能力情報
の代表値(CPU15〜18のうちの所定のCPUの値、平均値、最大値、最小値など)
が使用される。また、CPU15〜18が構成する処理部については、CPU15〜18
のうちのいずれか1つのCPUが、その代表値で処理能力テーブル52の処理能力情報を
更新するようにすればよい。
The processing capacity information of the
Is used. Moreover, about the process part which CPU15-18 comprises, CPU15-18
Any one of the CPUs may update the processing capability information in the processing capability table 52 with the representative value.
図9は、本発明の実施の形態1における負荷分散テーブル51の一例を示す図である。
なお、図9に示す負荷分散テーブル51は、2592×1944画素の画像データを4つ
、8×11インチの印刷用紙に、1440×720dpiで印刷する場合の一例である。
負荷分散テーブル51は、各処理種別について、出力画像データの画素数、並びに、CP
U12、CPU13、CPU14およびCPU15〜18のそれぞれの処理能力値(処理
能力テーブル52の処理能力情報と同値)、処理割合および処理時間(予想される時間)
を有する。
FIG. 9 is a diagram showing an example of the load distribution table 51 according to
The load distribution table 51 shown in FIG. 9 is an example in the case where four pieces of image data of 2592 × 1944 pixels are printed at 1440 × 720 dpi on 8 × 11 inch printing paper.
The load distribution table 51 includes the number of pixels of the output image data and the CP for each processing type.
Each of the processing capacity values of U12,
Have
さらに、負荷分散テーブル51は、CPU12、CPU13、CPU14およびCPU
15〜18のそれぞれの合計処理時間(6つの処理種別に関する処理時間の合計)Tcp
u、CPU12、CPU13、CPU14およびCPU15〜18の合計処理時間の平均
値および最大値、並びに、CPU12、CPU13、CPU14およびCPU15〜18
のそれぞれの合計処理時間と上記平均値との差を有する。
Further, the load distribution table 51 includes
Total processing time of 15 to 18 (total processing time for six processing types) Tcp
u, the average value and the maximum value of the total processing time of CPU12, CPU13, CPU14 and CPU15-18, and CPU12, CPU13, CPU14 and CPU15-18
The difference between the total processing time and the above average value.
分散割合決定処理では、各処理種別について出力画像データの画素数と、各処理種別に
ついてのCPU12,13,14およびCPU15〜18の処理能力値とに基づいて、処
理割合が計算される。なお、各処理種別について出力画像データの画素数は、JPEGデ
ータの画素数、印刷条件などから計算される。また、各処理種別についてのCPU12,
13,14およびCPU15〜18の処理能力値には、処理能力テーブル52の処理能力
情報の値がそのまま使用される。
In the distribution ratio determination process, the processing ratio is calculated based on the number of pixels of the output image data for each processing type and the processing capability values of the
The processing capability information values in the processing capability table 52 are used as they are as the processing capability values of the 13, 14 and CPUs 15-18.
次に、開始処理62は、JPEGデコードを1または複数の処理部に開始させるJPE
Gデコード開始処理62a、画像補正を1または複数の処理部に開始させる画像補正開始
処理62b、色変換を1または複数の処理部に開始させる色変換開始処理62c、および
ハーフトーンを1または複数の処理部に開始させるハーフトーン開始処理62dからなる
。各開始処理62a〜62dを実行するCPUは、自己以外のCPUに個別処理を依頼す
る場合には、そのCPUに対して処理要求を発行する。
Next, the
G
JPEGデコード開始処理62aは、CPU12により実行され、画像補正開始処理6
2bは、CPU13により実行され、色変換開始処理62cおよびハーフトーン開始処理
62dは、CPU14により実行される。各開始処理62a,62b,62c,62dは
、各開始処理62a,62b,62c,62dを記述した図示せぬプログラムを各CPU
12,13,14が実行することで実現される。それらのプログラムは、例えば外部RA
M2に記憶される。
The JPEG
2b is executed by the
This is realized by executing
Stored in M2.
なお、分散割合決定処理61および開始処理62は、予め割り当てられたCPUにより
固定的に実行される。また、分散割合決定処理61および開始処理62は、互いに非同期
に繰り返し実行される。
The distribution
分散割合決定処理61は、すべての種別の処理について処理能力情報が更新される毎に
実行される。また、各開始処理62a〜62dは、JPEGデコード、画像補正、色変換
またはハーフトーンが所定量のデータ分完了するごとに繰り返し実行され、その所定量の
データの処理が1または複数の処理部に個別処理63として割り当てられる。
The distribution
そして、各処理種別について、開始処理62により割り当てられた量の個別処理63が
、割り当てられた処理部により実行される。
Then, for each processing type, the
この実施の形態1では、JPEGデコードについて、JPEGデコード専用命令演算部
12bを有するCPU12、またはCPU12と画像処理用のその他のCPU13〜18
のうちの1個のCPU(CPU_X)との2個のCPUに、個別処理63が割り当てられ
る。
In the first embodiment, for JPEG decoding, the
なお、以下、各処理種別について、その処理種別に関する専用命令演算部を有するCP
U以外の画像処理用CPUのうちの、個別処理を割り当てられる1個のCPUのことをC
PU_Xという。
In the following, for each processing type, a CP having a dedicated instruction calculation unit for that processing type.
Of the CPUs for image processing other than U, one CPU to which individual processing is assigned is C
It is called PU_X.
CPU12が単体でJPEGデコードを実行する場合には、CPU12のみにより、J
PEGデコード個別処理63aが実行される。CPU12およびCPU_XがJPEGデ
コードを実行する場合には、CPU12によりJPEGデコード個別処理63aが実行さ
れ、CPU13〜18のいずれか1つによりJPEGデコード個別処理63eが実行され
る。その際、JPEGデコード個別処理63aは、CPU12がJPEGデコードプログ
ラム41sを実行することにより実現される。また、JPEGデコード個別処理63eは
、CPU_XがJPEGデコードプログラム41gを実行することにより実現される。
When the
PEG decoding
なお、この実施の形態1では、2つのCPUでJPEGデコードを実行する場合、JP
EGデコード個別処理63aとJPEGデコード個別処理63eとの処理データ量の比(
分散割合)は、3:1、1:1、および1:3のいずれかとされる。したがって、個別処
理63a,63eを実行する処理部についての処理割合は、0、0.25、0.5、0.
75および1のいずれかとなる。
In the first embodiment, when JPEG decoding is executed by two CPUs, JP
Ratio of processing data amount between EG decoding
The dispersion ratio) is any one of 3: 1, 1: 1, and 1: 3. Therefore, the processing ratios for the processing units that execute the
One of 75 and 1.
また、この実施の形態1では、画像補正について、画像補正専用命令演算部13bを有
するCPU13、または、CPU13とCPU_Xとの2個のCPUに、個別処理63が
割り当てられる。CPU13が単体で画像補正を実行する場合には、CPU13のみによ
り画像補正個別処理63bが実行される。CPU13およびCPU_Xが画像補正を実行
する場合には、CPU13により画像補正個別処理63bが実行され、CPU12,14
〜18のいずれか1つにより画像補正個別処理63fが実行される。その際、画像補正個
別処理63bは、CPU13が画像補正プログラム42sを実行することにより実現され
る。また、画像補正個別処理63fは、CPU_Xが画像補正プログラム42gを実行す
ることにより実現される。
In the first embodiment, for image correction, the
Image correction
なお、この実施の形態1では、2つのCPUで画像補正を実行する場合、画像補正個別
処理63bと画像補正個別処理63fとの処理データ量の比(分散割合)は、3:1、1
:1、および1:3のいずれかとされる。したがって、個別処理63b,63fを実行す
る処理部についての処理割合は、0、0.25、0.5、0.75および1のいずれかと
なる。
In the first embodiment, when image correction is executed by two CPUs, the ratio (dispersion ratio) of the processing data amount between the image correction
1: and 1: 3. Accordingly, the processing ratio for the processing units that execute the
また、この実施の形態1では、色変換について、色変換専用命令演算部14bを有する
CPU14、または、CPU14とCPU_Xとの2個のCPUに、個別処理63が割り
当てられる。CPU14が単体で色変換を実行する場合には、CPU14のみにより色変
換個別処理63cが実行される。CPU14およびCPU_Xが色変換を実行する場合に
は、CPU14により色変換個別処理63cが実行され、CPU12,13,15〜18
のいずれか1つにより色変換個別処理63gが実行される。その際、色変換個別処理63
cは、CPU14が色変換プログラム43sを実行することにより実現される。また、色
変換個別処理63gは、CPU_Xが色変換プログラム43gを実行することにより実現
される。
In the first embodiment, for color conversion, the
The color conversion
c is realized by the
なお、この実施の形態1では、2つのCPUで色変換を実行する場合、色変換個別処理
63cと色変換個別処理63gとの処理データ量の比(分散割合)は、3:1、1:1、
および1:3のいずれかとされる。したがって、個別処理63c,63gを実行する処理
部についての処理割合は、0、0.25、0.5、0.75および1のいずれかとなる。
In the first embodiment, when color conversion is executed by two CPUs, the ratio (dispersion ratio) of the processing data amount between the color conversion
And 1: 3. Accordingly, the processing ratio for the processing units that execute the
また、この実施の形態1では、ハーフトーンについて、ハーフトーン専用命令演算部1
5b〜18bを有するCPU15〜18、または、CPU15〜18とCPU_Xとの5
個のCPUに、個別処理63が割り当てられる。CPU15〜18が色変換を実行する場
合には、CPU15〜18のみによりハーフトーン個別処理63dが実行される。CPU
15〜18およびCPU_Xがハーフトーン個別処理を実行する場合には、CPU15〜
18によりハーフトーン個別処理63dが実行され、CPU12〜14のいずれか1つに
よりハーフトーン個別処理63hが実行される。その際、ハーフトーン個別処理63dは
、CPU15〜18がハーフトーンプログラム44sを実行することにより実現される。
また、ハーフトーン個別処理63hは、CPU_Xがハーフトーンプログラム43hを実
行することにより実現される。
In the first embodiment, halftone dedicated
CPU15-18 which has 5b-18b, or 5 of CPU15-18 and CPU_X
When 15 to 18 and CPU_X execute the halftone individual processing, the
18, the halftone
Further, the halftone
なお、この実施の形態1では、色変換により7色のCMYK画像データが生成され、7
色のCMYK画像データのうちの2色に対してディザ法による二値化処理が実行され、5
色に対して誤差拡散法による二値化処理が実行される。ディザ法による二値化処理の計算
量は、誤差拡散法による二値化処理の計算量より非常に小さいため、4個のCPU15〜
18でハーフトーンを行う場合には、CPU15により2色分の誤差拡散法による二値化
処理が実行され、CPU16により1色分の誤差拡散法による二値化処理と1色分のディ
ザ法による二値化処理が実行され、CPU17により1色分の誤差拡散法による二値化処
理と1色分のディザ法による二値化処理が実行され、CPU18により1色分の誤差拡散
法による二値化処理が実行される。
In the first embodiment, seven colors of CMYK image data are generated by color conversion.
A binarization process by a dither method is executed for two colors of the CMYK image data of
A binarization process using an error diffusion method is performed on the color. Since the calculation amount of the binarization processing by the dither method is much smaller than the calculation amount of the binarization processing by the error diffusion method, the four
When halftone is performed at 18, the
一方、CPU15〜18およびCPU_Xでハーフトーンを行う場合には、CPU15
により1色分の誤差拡散法による二値化処理が実行され、CPU16により1色分の誤差
拡散法による二値化処理と1色分のディザ法による二値化処理が実行され、CPU17に
より1色分の誤差拡散法による二値化処理と1色分のディザ法による二値化処理が実行さ
れ、CPU18により1色分の誤差拡散法による二値化処理が実行され、CPU_Xによ
り1色分の誤差拡散法による二値化処理が実行される。
On the other hand, when halftone is performed by the
The binarization processing by the error diffusion method for one color is executed by the
このため、5つのCPUでハーフトーンを実行する場合、ハーフトーン個別処理63d
とハーフトーン個別処理63hとの処理データ量の比(分散割合)は、略4:1とされる
。
Therefore, when halftone is executed by five CPUs,
The ratio (dispersion ratio) of the processing data amount between the
各個別処理63a〜63gでは、割り当てられた画像処理(画像データの1バンドまた
は1ライン分)が完了すると、割り当てられた画像処理に要した時間および処理データ量
などのデータが、処理能力データとして、処理能力テーブル52に格納される。そして、
この処理能力データは、その後の分散割合決定処理61に反映される。
In each of the
This processing capacity data is reflected in the subsequent distribution
なお、この実施の形態1では、CPU12では、それぞれマルチタスクOSが稼動して
いる。CPU12では、分散割合決定処理61a、JPEGデコード開始処理62aとJ
PEGデコード個別処理63bの2つ、およびその他の各個別処理63f,63g,63
hは、それぞれ別々のタスク(プロセス)として実行される。また、CPU13〜18に
おいてもマルチタスクOSを稼動させるようにしてもよい。その場合、例えば、CPU1
3では、画像補正開始処理62bと画像補正個別処理63bの2つ、およびその他の各個
別処理63e,63g,63hは、それぞれ別々のタスク(プロセス)として実行される
。また、CPU14では、色変換開始処理62cと色変換個別処理63cとハーフトーン
開始処理62dの3つ、およびその他の各個別処理63e,63f,63hは、それぞれ
別々のタスク(プロセス)として実行される。また、CPU15〜18の各CPUでは、
ハーフトーン個別処理63d、およびその他の各個別処理63e,63f,63gは、そ
れぞれ別々のタスク(プロセス)として実行される。
In the first embodiment, each
Two of the individual PEG decoding processes 63b and the other
Each h is executed as a separate task (process). Further, the multitask OS may be operated in the CPUs 13-18. In that case, for example,
3, the image
The halftone
ここで、分散割合決定処理61の詳細について説明する。図10は、本発明の実施の形
態1における分散割合決定処理61を説明するフローチャートである。
Here, details of the distribution
まず、CPU12は、処理対象となる画像データ(JPEGデータ)、印刷条件(印刷
用紙、印刷解像度)、デフォルトの処理能力テーブル52aなどに基づいて、最初の負荷
分散テーブル51を生成する(ステップS11)。なお、最初の負荷分散テーブル51で
は、JPEGデコードについては、CPU12の処理割合は1であり、その他のCPU1
3〜18の処理割合は0である。また、画像補正の第1処理〜第3処理については、CP
U13の処理割合は1であり、その他のCPU12,14〜18の処理割合は0である。
また、色変換については、CPU14の処理割合は1であり、その他のCPU12,13
,15〜18の処理割合は0である。また、ハーフトーンについては、CPU15〜CP
U18の処理割合は1であり、その他のCPU12〜14の処理割合は0である。
First, the
The processing ratio of 3-18 is 0. Also, for the first to third processes of image correction, CP
The processing rate of U13 is 1, and the processing rates of the
For color conversion, the processing ratio of the
, 15 to 18 is 0. For halftone, CPU15 to CP
The processing ratio of U18 is 1, and the processing ratios of the
次に、CPU12は、画像横方向(縦方向および横方向のうち、隣接する画像領域の画
像データが連続している方向)の始端から終端までの画像データの1バンド分または1ラ
イン分の処理が、すべての処理種別(JPEGデコード、画像補正の3処理、色変換およ
びハーフトーン)について少なくとも1回終了するまで待機する(ステップS12)。
Next, the
なお、JPEGデコードにおける画像横方向の始端から終端までの1回の処理は、縦方
向がMCU(Minimum Coded Unit)の縦方向分の画素で横方向が画像横幅分の画素で構成
される1バンドに対するJPEGデコードとなる。なお、MCUは、縦8画素、横8画素
のブロックである。
Note that one process from the beginning to the end of the image horizontal direction in JPEG decoding is one band composed of pixels corresponding to the vertical direction of the MCU (Minimum Coded Unit) in the vertical direction and pixels corresponding to the horizontal width of the image. JPEG decoding for. Note that the MCU is a block of 8 vertical pixels and 8 horizontal pixels.
また、画像補正における画像横方向の始端から終端までの1回の処理は、画像データの
1ライン(つまり、縦方向が1画素で、横方向が画像横幅分の画素の領域)に対する第1
処理〜第3処理となる。
In addition, the one-time processing from the start edge to the end edge in the image horizontal direction in the image correction is performed for the first process for one line of image data (that is, the vertical region is one pixel and the horizontal direction is a pixel area corresponding to the horizontal width of the image).
Processing to third processing.
また、色変換における画像横方向の始端から終端までの1回の処理は、画像データの2
ラインに対する色座標変換処理となる。
In addition, one processing from the start edge to the end edge in the horizontal direction of the image in the color conversion is performed with 2 of the image data.
Color coordinate conversion processing for the line is performed.
また、ハーフトーンにおける画像横方向の始端から終端までの1回の処理は、画像デー
タの2ラインに対する二値化処理となる。
Further, a single process from the start edge to the end edge in the horizontal direction of the image in the halftone is a binarization process for two lines of image data.
なお、このように、処理種別によって、画像横方向の始端から終端までの1回の処理に
係る画素領域が異なることや、処理種別によって計算量が異なることに起因して、同一領
域に対するすべての処理種別における個別処理は、同時には終了しない。しかしながら、
すべての処理種別における個別処理では、バリア同期はせず、各処理種別において、1バ
ンド分または1ライン分の処理が完了すると、開始処理後に、次の1バンドまたは1ライ
ンについての個別処理が直ちに開始される。
As described above, the pixel area related to one process from the start edge to the end edge in the horizontal direction of the image differs depending on the processing type, and the calculation amount differs depending on the processing type. Individual processing in the processing type does not end at the same time. However,
In individual processing for all processing types, barrier synchronization is not performed. When processing for one band or one line is completed in each processing type, individual processing for the next one band or one line is immediately performed after the start processing. Be started.
また、1バンド分または1ライン分の処理がすべての処理種別について少なくとも1回
終了したか否かの判定については、処理種別分のフラグを例えば処理能力テーブル52b
内に設け、各個別処理63を実行する処理部が、1バンド分または1ライン分の個別処理
63が終了したときにその個別処理63の処理種別のフラグを立て、CPU12が、その
フラグがすべて立っているか否かで、1バンド分または1ライン分の処理がすべての処理
種別について少なくとも1回終了したか否かを判定すればよい。なお、その場合、CPU
12は、1バンド分または1ライン分の処理がすべての処理種別について少なくとも1回
終了したと判定した際に、すべてのフラグを下ろす。
For determining whether or not processing for one band or one line has been completed at least once for all processing types, a flag for the processing type is set, for example, in the processing capability table 52b.
The processing unit that executes each
No. 12 lowers all the flags when it is determined that the processing for one band or one line has been completed at least once for all processing types.
そして、CPU12は、1バンド分または1ライン分の処理がすべての処理種別につい
て少なくとも1回終了したと判定すると、処理能力テーブルに基づき、各処理種別につい
て各処理部の処理割合を決定し、負荷分散テーブル51を更新する(ステップS13)。
この実施の形態1では、各処理種別について、1バンド分または1ライン分の個別処理6
3が終了するごとに、その個別処理63を実行する処理部が、その処理種別と自己との組
合せについての処理能力情報を更新するので、1バンド分または1ライン分の処理がすべ
ての処理種別について少なくとも1回終了した後に負荷分散テーブル51を更新すること
で、すべての処理部の動的に変化する処理能力値を考慮して、各処理部への処理割合が決
定される。
If the
In the first embodiment, for each processing type, individual processing for one band or one
3 is completed, the processing unit that executes the
そして、上述のステップS12およびステップS13の処理が、画像データが終わるま
で繰り返され、いずれかの処理種別で、処理すべき画像データがなくなると、分散割合決
定処理61は終了する(ステップS14)。
Then, the processes in step S12 and step S13 described above are repeated until the image data is finished, and when there is no image data to be processed in any of the processing types, the distribution
ここで、図11は、図10における負荷分散テーブル更新処理(ステップS13)の詳
細を説明するフローチャートである。
Here, FIG. 11 is a flowchart for explaining the details of the load distribution table update process (step S13) in FIG.
負荷分散テーブル更新処理(ステップS13)では、まず、CPU12は、処理能力テ
ーブル52の各処理能力情報で、それに対応する負荷分散テーブル51の処理能力値を更
新する(ステップS13a)。また、CPU12は、JPEGファイル3aの画像データ
(入力画像データ)のサイズ、印刷画像数、印刷用紙サイズ、印刷解像度などに基づいて
、各処理種別の出力画像の画素数(つまり、処理対象の画素数)を計算し、負荷分散テー
ブル51に登録する。
In the load distribution table update process (step S13), first, the
そして、CPU12は、各処理種別についての処理割合をデフォルトの値にする(ステ
ップS13b)。デフォルトでは、各処理種別について、その処理種別に対応する専用命
令演算部を有するCPUの処理割合が1であり、その他のCPUの処理割合が0である。
したがって、例えば、JPEGデコードについては、CPU12の処理割合は1であり、
CPU13,14,15〜18の処理割合は0である。
Then, the
Therefore, for example, for JPEG decoding, the processing ratio of the
The processing ratio of the
次に、CPU12は、処理部毎の処理時間Tcpu、平均処理時間Tav、および平均
処理時間Tavからの処理部毎の処理時間Tcpuの偏差dTcpuを計算する(ステッ
プS13c)。
Next, the
その際、CPU12は、負荷分散テーブル51を参照し、各処理種別について、処理す
べき画素数Npと、各処理部の処理能力値Pと、各処理部の処理割合αに基づいて、その
処理種別の処理時間T(T=Np×α×P)を計算する。また、CPU12は、ある処理
部についての、JPEGデコードの処理時間T1、画像補正の第1処理の処理時間T2、
画像補正の第2処理の処理時間T3、画像補正の第3処理の処理時間T4、色変換の処理
時間T5、およびハーフトーンの処理時間T6の和をその処理部の処理時間Tcpu(T
cpu=T1+T2+T3+T4+T5+T6)とする。
At that time, the
The sum of the processing time T3 of the second processing of image correction, the processing time T4 of the third processing of image correction, the processing time T5 of color conversion, and the processing time T6 of halftone is the processing time Tcpu (T
cpu = T1 + T2 + T3 + T4 + T5 + T6).
また、CPU12は、CPU12の処理時間Tcpu12、CPU13の処理時間Tc
pu13、CPU14の処理時間Tcpu14、および、CPU15〜18の処理時間T
cpu15〜18の平均値を平均処理時間Tavとして計算する(Tav=(Tcpu1
2+Tcpu13+Tcpu14+Tcpu15〜18)/4)。
In addition, the
pu13, processing time Tcpu14 of
The average value of cpu15 to 18 is calculated as the average processing time Tav (Tav = (Tcpu1
2 + Tcpu13 + Tcpu14 + Tcpu15-18) / 4).
また、CPU12は、処理時間Tcpuと平均処理時間Tavとから、各処理部につい
ての処理時間の偏差dTcpuを計算する。例えば、CPU12についての処理時間の偏
差dTcpu12は、(Tav−Tcpu12)となる。
Further, the
次に、CPU12は、ステップS13cでの計算結果に基づいて、処理時間Tcpuが
最大である処理部(CPU_A)、CPU_Aの処理のうち処理時間Tが最大である処理
種別(PROC_A)、CPU_A以外の処理部のうちの、デフォルトで割り当てられる
処理種別のみを実行し他の処理種別の分散処理を実行しない1または複数の処理部(CP
U_X)を特定する(ステップS13d)。
Next, based on the calculation result in step S13c, the
U_X) is specified (step S13d).
例えば図9に示す負荷分散テーブル51の場合では、CPU_Aは、CPU13と特定
され、PROC_Aは、画像補正の第3処理(ノイズ除去)と特定され、CPU_Xは、
CPU12、CPU14、およびCPU15〜18と特定される。
For example, in the case of the load distribution table 51 shown in FIG. 9, CPU_A is identified as
It is specified as
次に、CPU12は、所定の分散割合(1:0,3:1,1:1,1:3など)および
CPU_Xの各組合せについて、CPU_AとCPU_Xの処理割合を計算し、その処理
割合でのCPU_AとCPU_Xの処理時間Tcpuを計算する(ステップS13e)。
Next, the
例えば、CPU_AとCPU_Xの分散割合が3:1である場合には、CPU_Aの処
理割合は、0.75となり、CPU_Xの処理割合は、0.25となる。
For example, when the distribution ratio of CPU_A and CPU_X is 3: 1, the processing ratio of CPU_A is 0.75, and the processing ratio of CPU_X is 0.25.
次に、CPU12は、CPU_Aの処理時間TcpuとCPU_Xの処理時間Tcpu
の大きい方の処理時間が最小となるCPU_Xおよび分散割合を特定し、その分散割合に
基づいて、CPU_AとCPU_Xの処理割合を計算する(ステップS13f)。
Next, the
CPU_X and the distribution ratio that minimize the processing time of which is larger are specified, and the processing ratio of CPU_A and CPU_X is calculated based on the distribution ratio (step S13f).
さらに、CPU12は、ステップS13fで計算したCPU_AとCPU_Xの処理割
合に基づいて、処理部毎の処理時間Tcpu、平均処理時間Tav、処理部毎の処理時間
の偏差dTcpuを計算する(ステップS13g)。
Further, the
そして、CPU12は、ステップS13gで計算した処理時間Tcpuの最大値が、負
荷分散テーブル51に記録されている処理時間Tcpuの最大値より小さいか否かを判定
する(ステップS13h)。
Then, the
ステップS13gで計算した処理時間Tcpuの最大値が、負荷分散テーブル51に記
録されている処理時間Tcpuの最大値より小さい場合、CPU12は、ステップS13
f,S13gで計算した処理割合、処理時間Tcpu、平均処理時間Tav、および処理
時間の偏差dTcpuの値で負荷分散テーブル51内の対応する値を更新する(ステップ
S13i)。
When the maximum value of the processing time Tcpu calculated in step S13g is smaller than the maximum value of the processing time Tcpu recorded in the load distribution table 51, the
The corresponding values in the load distribution table 51 are updated with the values of the processing ratio, processing time Tcpu, average processing time Tav, and processing time deviation dTcpu calculated in f and S13g (step S13i).
一方、ステップS13gで計算した処理時間Tcpuの最大値が、負荷分散テーブル5
1に記録されている処理時間Tcpuの最大値以上ではない場合、CPU12は、負荷分
散テーブル更新処理(ステップS13)を終了する。
On the other hand, the maximum value of the processing time Tcpu calculated in step S13g is the load distribution table 5
If it is not equal to or greater than the maximum value of the processing time Tcpu recorded in 1, the
このように、処理部毎の処理時間Tcpuの最大値が減少する間は、ステップS13d
〜ステップS13iの処理が繰り返し実行され負荷分散テーブル51が更新されていく。
この負荷分散テーブル更新処理では、負荷の最も重いCPUに割り当てられた処理のうち
、最も重い処理が分散されていくので、処理部に掛かる負荷が均一化されていく。
In this way, while the maximum value of the processing time Tcpu for each processing unit decreases, step S13d.
Step S13i is repeatedly executed, and the load distribution table 51 is updated.
In this load distribution table update process, the heaviest process among the processes assigned to the CPU with the heaviest load is distributed, so that the load on the processing unit is made uniform.
ここで、一例として、図9に示す負荷分散テーブル51の更新について説明する。図1
2は、図9の負荷分散テーブル51の更新途中の負荷分散テーブル51を示す図である。
図13は、図9の負荷分散テーブル51を更新した負荷分散テーブル51を示す図である
。
Here, as an example, the update of the load distribution table 51 shown in FIG. 9 will be described. FIG.
2 is a diagram showing the load distribution table 51 in the middle of updating the load distribution table 51 of FIG.
FIG. 13 is a diagram showing a load distribution table 51 obtained by updating the load distribution table 51 of FIG.
まず、図9に示す負荷分散テーブル51では、CPU_Aは、CPU13と特定され、
CPU_Xは、CPU12、CPU14およびCPU15〜18と特定され、PROC_
Aは、画像補正の第3処理(ノイズ除去)と特定される(ステップS13d)。
First, in the load distribution table 51 shown in FIG. 9, CPU_A is identified as
CPU_X is identified as CPU12, CPU14 and CPU15-18, and PROC_
A is identified as the third image correction process (noise removal) (step S13d).
次に、CPU13の処理割合とCPU_Xの処理割合が、1と0、0.75と0.25
、0.5と0.5、0.25と0.75、および0と1のそれぞれとした場合の、CPU
13の処理時間とCPU_Xの処理時間が計算され(ステップS13e)、計算されたC
PU13の処理時間TcpuとCPU_Xの処理時間Tcpuの大きい方の処理時間が最
小となる分散割合が選択される(ステップS13f)。
Next, the processing ratio of the
, 0.5 and 0.5, 0.25 and 0.75, and 0 and 1 respectively.
The processing time of 13 and the processing time of CPU_X are calculated (step S13e), and the calculated C
A dispersion ratio is selected that minimizes the processing time that is larger between the processing time Tcpu of the
図9に示す負荷分散テーブル51の場合、画像補正の第3処理(ノイズ除去)について
、
(a)処理割合が1.00の場合のCPU13の処理時間Tcpuは75.97となり、
(b)処理割合が0.75の場合のCPU13の処理時間Tcpuは63.37となり、
(c)処理割合が0.50の場合のCPU13の処理時間Tcpuは50.78となり、
(d)処理割合が0.25の場合のCPU13の処理時間Tcpuは38.18となる。
In the case of the load distribution table 51 shown in FIG. 9, with respect to the third process of image correction (noise removal),
(A) The processing time Tcpu of the
(B) The processing time Tcpu of the
(C) The processing time Tcpu of the
(D) The processing time Tcpu of the
また、画像補正の第3処理(ノイズ除去)をCPU12へ分散させる場合、
(a)処理割合が1.00のときの処理時間Tcpu12は176.73となり、
(b)処理割合が0.75のときの処理時間Tcpu12は138.85となり、
(c)処理割合が0.50のときの処理時間Tcpu12は100.96となり、
(d)処理割合が0.25のときの処理時間Tcpu12は63.08となる。
Also, when distributing the third image correction process (noise removal) to the
(A) The processing time Tcpu12 when the processing ratio is 1.00 is 176.73,
(B) The processing time Tcpu12 when the processing ratio is 0.75 is 138.85,
(C) The processing time Tcpu12 when the processing ratio is 0.50 is 100.96,
(D) The processing time Tcpu12 when the processing rate is 0.25 is 63.08.
また、画像補正の第3処理(ノイズ除去)をCPU14へ分散させる場合、
(a)処理割合が1.00のときの処理時間Tcpu14は237.22となり、
(b)処理割合が0.75のときの処理時間Tcpu14は183.62となり、
(c)処理割合が0.50のときの処理時間Tcpu14は130.02となり、
(d)処理割合が0.25のときの処理時間Tcpu14は76.41となる。
Further, when distributing the third process of image correction (noise removal) to the
(A) The processing time Tcpu14 when the processing rate is 1.00 is 237.22.
(B) The processing time Tcpu14 when the processing ratio is 0.75 is 183.62.
(C) The processing time Tcpu14 when the processing rate is 0.50 is 130.02,
(D) The processing time Tcpu14 when the processing ratio is 0.25 is 76.41.
また、画像補正の第3処理(ノイズ除去)をCPU15〜18へ分散させる場合、
(a)処理割合が1.00のときの処理時間Tcpu15〜18は76.41となり、
(b)処理割合が0.75のときの処理時間Tcpu15〜18は63.01となり、
(c)処理割合が0.50のときの処理時間Tcpu15〜18は49.61となり、
(d)処理割合が0.25のときの処理時間Tcpu15〜18は36.21となる。
なお、4つのCPU15〜18の処理時間は、CPU15〜18における1個のCPU
による処理時間の4分の1と計算される。
Further, when distributing the third process of image correction (noise removal) to the
(A) The processing time Tcpu15 to 18 when the processing ratio is 1.00 is 76.41,
(B) The processing time Tcpu15 to 18 when the processing ratio is 0.75 is 63.01,
(C) The processing time Tcpu15 to 18 when the processing ratio is 0.50 is 49.61,
(D) The processing time Tcpu15 to 18 when the processing ratio is 0.25 is 36.21.
The processing time of the four
Is calculated as one-fourth of the processing time.
したがって、CPU13の処理時間TcpuとCPU_Xの処理時間Tcpuの大きい
方の処理時間が最小となるCPU_Xおよび処理割合として、CPU15〜18、0.5
(CPU13の処理割合)および0.5(CPU15〜18の処理割合)が選択される。
そして、画像処理の第3処理についてのCPU12,14の処理割合は0とされる。
Therefore, the CPU_X and the processing ratio at which the processing time of the larger processing time Tcpu of the
(The processing ratio of the CPU 13) and 0.5 (the processing ratio of the
The processing ratio of the
そして、計算された処理割合で、処理時間Tcpu、平均処理時間Tav、およびCP
U毎の処理時間の偏差dTcpuが計算される(ステップS13g)。このとき、CPU
12〜14の処理時間Tcpuは、それぞれ、25.19、50.78、22.81とな
り、CPU15〜18の処理時間Tcpuは49.61となる。そして、平均処理時間T
avは37.10となり、処理時間Tcpuの最大値は50.78となる。また、CPU
12〜14の処理時間の偏差dTcpuは、それぞれ、−11.90、13.68、−1
4.29となり、CPU15〜18の処理時間の偏差dTcpuは12.51となる。
Then, at the calculated processing rate, the processing time Tcpu, the average processing time Tav, and CP
The deviation dTcpu of the processing time for each U is calculated (step S13g). At this time, CPU
The processing times Tcpu of 12 to 14 are 25.19, 50.78, and 22.81, respectively, and the processing times Tcpu of the
Av is 37.10, and the maximum value of the processing time Tcpu is 50.78. CPU
The deviations dTcpu of the processing times of 12 to 14 are -11.90, 13.68, -1 respectively.
4.29, and the processing time deviation dTcpu of the
そして、このときの処理時間Tcpuの最大値(=50.78)が、この時点の負荷分
散テーブル51(図9)の処理時間Tcpuの最大値(=75.97)より小さいため、
負荷分散テーブル51の更新処理は継続される(ステップS13h)。
Since the maximum value (= 50.78) of the processing time Tcpu at this time is smaller than the maximum value (= 75.97) of the processing time Tcpu of the load distribution table 51 (FIG. 9) at this time,
The update process of the load distribution table 51 is continued (step S13h).
そして、計算された処理割合、各処理部についての各処理種別の処理時間T、処理部毎
の処理時間Tcpu、その平均値Tavと最大値、および処理時間の偏差dTcpuで、
対応する負荷分散テーブル51の値が更新される(ステップS13i)。
The calculated processing ratio, processing time T for each processing type for each processing unit, processing time Tcpu for each processing unit, average value Tav and maximum value thereof, and processing time deviation dTcpu,
The value of the corresponding load distribution table 51 is updated (step S13i).
図9に示す負荷分散テーブル51に対して、ステップS13d,S13e,S13f,
S13g,S13iの処理を施したものが、図12に示す負荷分散テーブル51となる。
For the load distribution table 51 shown in FIG. 9, steps S13d, S13e, S13f,
What performed the process of S13g and S13i becomes the load distribution table 51 shown in FIG.
次に、ステップS13dに戻り、図12に示す負荷分散テーブル51については、CP
U_Aは、CPU13と特定され、CPU_Xは、CPU12、CPU14およびCPU
15〜18と特定され、PROC_Aは、画像補正の第2処理(シャープネス)と特定さ
れる。
Next, returning to step S13d, for the load distribution table 51 shown in FIG.
U_A is specified as
15 to 18 are specified, and PROC_A is specified as the second image correction process (sharpness).
そして、同様にしてステップS13e,S13f,S13gの処理が実行され、その結
果として、処理時間Tcpuの最大値が49.49となる。
Similarly, the processes of steps S13e, S13f, and S13g are executed. As a result, the maximum value of the processing time Tcpu is 49.49.
そして、このときの処理時間Tcpuの最大値(=49.49)が、この時点の負荷分
散テーブル51(図12)の処理時間Tcpuの最大値(=50.78)より小さいため
、負荷分散テーブル51の更新処理は継続される(ステップS13h)。
Since the maximum value (= 49.49) of the processing time Tcpu at this time is smaller than the maximum value (= 50.78) of the processing time Tcpu of the load distribution table 51 (FIG. 12) at this time, the load distribution table The
そして、計算された処理割合、各処理種別の処理時間T、処理部毎の処理時間Tcpu
、その平均値Tavと最大値、および処理時間の偏差dTcpuで、対応する負荷分散テ
ーブル51の値が更新される(ステップS13i)。
Then, the calculated processing ratio, processing time T for each processing type, processing time Tcpu for each processing unit
Then, the corresponding value of the load distribution table 51 is updated with the average value Tav, the maximum value, and the processing time deviation dTcpu (step S13i).
図12に示す負荷分散テーブル51に対して、ステップS13d,S13e,S13f
,S13g,S13iの処理を施したものが、図13に示す負荷分散テーブル51となる
。
Steps S13d, S13e, and S13f are applied to the load distribution table 51 shown in FIG.
, S13g, and S13i are processed as a load distribution table 51 shown in FIG.
そして、図13に示す負荷分散テーブル51に対して、ステップS13d,S13e,
S13f,S13gの処理が実行され、その結果としての処理時間Tcpuの最大値が、
この時点の負荷分散テーブル51(図13)の処理時間Tcpuの最大値(=49.49
)より小さくならないため、負荷分散テーブル51の更新処理が終了される(ステップS
13h)。
And with respect to the load distribution table 51 shown in FIG. 13, steps S13d, S13e,
The processes of S13f and S13g are executed, and the maximum value of the resulting processing time Tcpu is
The maximum value (= 49.49) of the processing time Tcpu of the load distribution table 51 (FIG. 13) at this time
), The update process of the load distribution table 51 is terminated (step S).
13h).
この例では、このようにして、図9に示す負荷分散テーブル51は、図8に示す処理能
力テーブル52の処理能力情報に応じてCPU12〜CPU18の負荷が均一に近づくよ
うに、図13に示す負荷分散テーブル51に更新される。
In this example, the load distribution table 51 shown in FIG. 9 is shown in FIG. 13 so that the loads of the
以上のように、上記実施の形態1によれば、処理部であるCPUNN(NNは12〜1
8のいずれか)は、汎用命令を実行する汎用命令演算部NNa、および複数種別の画像処
理のうちの一部における所定の演算を専用命令として汎用演算部NNaより高速に実行す
る専用命令演算部NNbをそれぞれ有し、専用命令演算部NNbにより汎用命令演算部N
Naに比べ高速実行可能な種別の画像処理(例えばCPU12についてはJPEGデコー
ド)の一部または全部をそれぞれ専用命令演算部NNbを使用して実行する。そして、C
PU12〜18は、同一領域の画像データに対して複数種別の画像処理を順番に施す。さ
らに、メモリである外部RAM2は、汎用命令と専用命令で画像処理を記述した第1のプ
ログラム41s〜44sと、汎用命令のみで画像処理を記述した第2のプログラム41g
〜44gとを記憶し、CPUNNは、負荷バランスに応じて、それぞれ、別のCPUMM
(MMは、12〜18のいずれかであって、MM≠NN)に関して専用命令演算部MMb
で汎用命令演算部MMaより高速実行可能な種別の画像処理の一部を実行する。さらに、
CPUNNは、2以上の種別の画像処理を実行する場合、専用命令演算部NNbで専用命
令を実行可能な種別については第1のプログラム(41s〜44sのいずれか)を実行し
、それ以外の種別については第2のプログラム(41g〜44gのいずれか)を実行する
。
As described above, according to the first embodiment, the CPUNN (NN is 12 to 1) as the processing unit.
8) is a general-purpose instruction calculation unit NNa that executes a general-purpose instruction, and a dedicated instruction calculation unit that executes a predetermined calculation among a plurality of types of image processing as a dedicated instruction at a higher speed than the general-purpose calculation unit NNa. Each NNb has a general-purpose instruction operation unit N by a dedicated instruction operation unit NNb.
Part or all of image processing of a type that can be executed at a higher speed than Na (for example, JPEG decoding for the CPU 12) is executed using the dedicated instruction calculation unit NNb. And C
The
~ 44g are stored, and the CPUNN has different CPUMMs depending on the load balance.
(MM is any one of 12 to 18 and MM ≠ NN)
Thus, a part of the image processing of the type that can be executed at higher speed than the general-purpose instruction calculation unit MMa is executed. further,
When executing two or more types of image processing, the CPUNN executes the first program (any one of 41 s to 44 s) for a type that can execute a dedicated command by the dedicated command calculation unit NNb, and other types. The second program (any one of 41g to 44g) is executed.
なお、上記実施の形態1では、CPU12〜18、並びにCPU12〜18間のデータ
転送に使用されるローカルバス19、バス20、デュアルポートRAM21,22および
外部RAM2により、一連の画像処理をパイプライン処理で実行するパイプライン処理部
が構成される。
In the first embodiment, a series of image processing is pipelined by the
これにより、各CPUNNに専用命令演算部NNbを設け、自己の主に実行する画像処
理か否かに応じて2種類のプログラム41s〜44s,41g〜44gを使用するように
したので、CPU12〜18により同一領域の画像データに対して一連の複数種別の画像
処理を順番に施す場合において1つのCPUNNが自己の主に実行する画像処理とは別の
種別の画像処理を実行するときでも、自己が主に実行する画像処理に対するアーキテクチ
ャを最適化し易く一連の画像処理を高速に実行することができる。
As a result, each CPUNN is provided with a dedicated instruction calculation unit NNb, and two types of
また、上記実施の形態1に係る画像処理装置は、CPU12〜18にバス20を介して
接続された外部メモリとしての外部RAM2と、CPU12〜18が形成される1チップ
ASIC1内に形成されCPU12〜18をリード/ライト可能なスタティックRAMを
有するプロセッサ内部メモリとしてのデュアルポートRAM21,22と、CPU12〜
18とデュアルポートRAM21,22を接続する、バス20とは別のローカルバス19
とを備える。そして、バス20および外部RAM2は、画像処理間のデータ転送の第1の
経路に使用され、ローカルバス19およびデュアルポートRAM21,22は、第1の経
路とは別の第2の経路に使用される。
The image processing apparatus according to the first embodiment is formed in the
18 is connected to the dual port RAMs 21 and 22, and a
With. The
この実施の形態1では、JPEGデコードから画像補正へのデータ転送には、デュアル
ポートRAM21とローカルバス19が使用され、画像補正からリサイズ・レイアウトへ
のデータ転送およびリサイズ・レイアウトから色変換へのデータ転送には、バス20と外
部RAM2が使用され、色変換からハーフトーンへのデータ転送には、デュアルポートR
AM22とローカルバス19が使用される。このように複数のCPU12〜18間でのデ
ータ転送に2以上の経路を使用でき、複数のCPU12〜18間でのデータ転送の衝突に
よる遅延を低減することができ、一連の画像処理を高速に実行することができる。
In the first embodiment, the
また、上記実施の形態1では、CPU12〜18は、デュアルポートRAM21に格納
されたパラメータを読み出し、そのパラメータで指定される処理条件で画像処理を実行す
る。
In the first embodiment, the
これにより、画像処理の処理条件を指定するパラメータに対して高速にアクセス可能と
なり、デュアルポートRAM21を有効活用して一連の画像処理を高速に実行することが
できる。
As a result, it is possible to access the parameter for specifying the processing condition of the image processing at high speed, and the
また、上記実施の形態1では、CPUNN(NNは12〜18のいずれか)は、負荷バ
ランスに応じて、それぞれ、自己の内蔵する専用命令演算部NNbで汎用命令演算部NN
aより高速実行可能な種別の画像処理の一部または全部と、別の処理部MM(MMは12
〜18のいずれかでMM≠NN)に関して専用命令演算部MMbで汎用命令演算部MMa
より高速実行可能な種別の画像処理の一部を、マルチタスクOS上での並列処理で、実行
する。
Further, in the first embodiment, the CPUNN (NN is any one of 12 to 18) is a general-purpose instruction arithmetic unit NN that is a dedicated instruction arithmetic unit NNb built therein according to the load balance.
a part or all of image processing of a type that can be executed at a higher speed than a, and another processing unit MM (MM is 12
To MM ≠ NN in any of -18, the general-purpose instruction arithmetic unit MMa in the dedicated instruction arithmetic unit MMb
A part of image processing of a type that can be executed at higher speed is executed by parallel processing on the multitasking OS.
これにより、1つのCPUNNにより2以上の種別の画像処理が実行される場合に、そ
れらの画像処理が並列に実行されるため、分散される処理の割り当て時に、分散先の処理
部が別の処理を実行中でもその処理の割り当てを行い分散処理の割り当てに伴うオーバヘ
ッドを軽減することができ、一連の画像処理を高速に実行することができる。
As a result, when two or more types of image processing are executed by one CPUNN, the image processing is executed in parallel. The processing can be assigned even during the execution of the processing, the overhead associated with the allocation of the distributed processing can be reduced, and a series of image processing can be executed at high speed.
また、上記実施の形態1では、分散割合決定処理61を実行するCPU12は、CPU
12〜18の負荷バランスを監視し画像処理の分散割合を周期的に決定する分散割合決定
手段として機能する。また、開始処理62を実行するCPU12〜14は、画像処理の開
始時点における分散割合でその画像処理を、CPU12〜18における2以上の処理部に
分散してそれぞれ実行させる開始処理手段として機能する。
In the first embodiment, the
It functions as a distribution ratio determining means that monitors the load balance of 12 to 18 and periodically determines the distribution ratio of image processing. In addition, the
これにより、画像処理の場合、画像データの内容に応じて、各CPU12〜18の負荷
が動的に変化するため、各時点で最適な分散割合で、1または複数種別の画像処理が2以
上の処理部に分散され、一連の画像処理を高速に実行することができる。
As a result, in the case of image processing, the load on each of the
実施の形態2.
本発明の実施の形態2に係る画像処理装置は、他の実施の形態に係る画像処理装置と同
様の構成および機能を有し、JPEGデコードの開始処理62aおよび個別処理63a,
63eについては以下のように実行する。
The image processing apparatus according to the second embodiment of the present invention has the same configuration and functions as the image processing apparatuses according to the other embodiments, and includes a JPEG
63e is executed as follows.
本実施の形態2においても、図7に示すように、JPEGデコード開始処理62aは、
CPU12により実行される。開始処理62aでは、JPEGデコード個別処理(63a
,63e)は、1または2の処理部に割り当てられる。
Also in the second embodiment, as shown in FIG.
It is executed by the
, 63e) are assigned to one or two processing units.
また、JPEGデコード個別処理(63a,63e)は、1つの処理部で実行する場合
にはCPU12に割り当てられ、2つの処理部で実行する場合には、CPU12と、CP
U13、CPU14およびCPU15〜18のいずれか(CPU_X)とに、負荷分散テ
ーブル51の分散割合に基づいて割り当てられる。
Further, the JPEG decode individual processing (63a, 63e) is assigned to the
It is assigned to any one of U13,
図14は、実施の形態2におけるJPEGデコード開始処理62aを説明するフローチ
ャートである。
FIG. 14 is a flowchart for explaining the JPEG
JPEGデコード開始処理62aでは、CPU12は、まず、4×N個のMCU分のJ
PEGデータをメモリカード3のJPEGファイル3aから外部RAM2へ読み込む(ス
テップS21)。
In the JPEG
PEG data is read from the
なお、MCUは、デコードの最小単位であり、この実施の形態2では、処理割合が0.
25(=4分の1)の倍数のいずれかに設定されるので、分散処理のデータ最小単位をM
CUとするために、4の倍数(4×N)個のMCU分のデータが1度に読み込まれる。ま
た、Nは、分散に起因して発生するオーバヘッド(処理を分割することにより発生する計
算量の増加、通信量の増加などによる処理の遅延)が無視できる程度大きな数であって、
4×NがJPEGデータの横方向におけるMCUの数より小さくなるような数である。例
えば、N=10とされる。
Note that the MCU is the minimum unit of decoding. In the second embodiment, the processing rate is 0.00.
Since it is set to one of multiples of 25 (= 1/4), the minimum data unit of distributed processing is M
In order to obtain a CU, data for multiples of 4 (4 × N) MCUs are read at a time. N is a number that is so large that the overhead caused by the distribution (an increase in the amount of calculation generated by dividing the processing, a processing delay due to an increase in the communication amount, etc.) can be ignored,
4 × N is a number that is smaller than the number of MCUs in the horizontal direction of the JPEG data. For example, N = 10.
次に、CPU12は、読み込んだ4×N個のMCUのDC成分を抽出する(ステップS
22)。
Next, the
22).
そして、CPU12は、負荷分散テーブル51におけるJPEGデコードについてのC
PU12の処理割合の値を読み出し、その値が1であるか否かに基づいて、JPEGデコ
ードを2つの処理部で分散処理するか否かを判定する(ステップS23)。なお、CPU
12は、この処理割合の値が1である場合には分散処理をしないと判定し、この処理割合
の値が1未満である場合には分散処理をすると判定する。
Then, the
The processing ratio value of the
12 determines that the distributed processing is not performed when the value of the processing ratio is 1, and determines that the distributed processing is performed when the value of the processing ratio is less than 1.
JPEGデコードを2つの処理部で分散処理すると判定した場合、CPU12以外のC
PU_Xへ分散処理を与える処理が実行される。
If it is determined that JPEG decoding is distributed by two processing units, a C other than the
A process of giving distributed processing to PU_X is executed.
その際、CPU12は、今回の4×N個のMCUが画像データの1バンドの先頭部分(
左端部分)ではない場合には、前回CPU12以外のCPU_Xに割り当てた個別処理が
完了するまで待機する(ステップS24,S25)。一方、今回の4×N個のMCUが画
像データの1バンドの先頭部分である場合には、CPU12は、そのような待機はせず、
直ちに次の処理へ移行する。
At that time, the
If it is not the leftmost part), the process waits until the individual processing assigned to the CPU_X other than the
Immediately proceed to the next process.
次に、CPU12は、負荷分散テーブル51におけるJPEGデコードについてのCP
U12以外のCPU13〜18の処理割合の値が0以外であるCPUをCPU_Xとし、
処理種別、そのCPU_Xの処理割合分のMCUデータ、そのDC成分、および計算結果
の出力先アドレス(外部RAM2内の計算結果の格納領域のアドレス)を、デュアルポー
トRAM21に書き込む(ステップS26)。
Next, the
CPU_X is a CPU whose processing ratio value other than U12 is other than 0,
The processing type, the MCU data for the processing ratio of the CPU_X, the DC component, and the output destination address of the calculation result (the address of the calculation result storage area in the external RAM 2) are written in the dual port RAM 21 (step S26).
例えば、分散割合が3:1である場合には、3×N個のMCU分のデータが、CPU1
2に割り当てられ、N個のMCU分のデータが、CPU_Xに割り当てられる。
For example, when the distribution ratio is 3: 1, data for 3 × N MCUs is stored in the
2, data for N MCUs is assigned to CPU_X.
そして、CPU12は、CPU_Xに割り込みを掛けて、処理割合分の個別処理63e
をCPU_Xに依頼する(ステップS27)。なお、割り込みは、CPU11〜18を相
互に接続する制御線を介して割り込み信号を伝送することにより行われる。また、割り込
みを受けたCPU_Xは、デュアルポートRAM21の所定の領域に記憶された処理種別
に応じて、CPU_Xの処理割合分のMCUデータ、そのDC成分および計算結果の出力
先アドレスを、デュアルポートRAM21から読み込む。
Then, the
Is requested to CPU_X (step S27). The interrupt is performed by transmitting an interrupt signal via a control line that interconnects the
このようにして、ステップS24〜S27の処理により、CPU12以外のCPU_X
へ分散処理が与えられる。一方、ステップS23においてJPEGデコードを分散処理し
ないと判定された場合には、ステップS24〜S27の処理はスキップされる。
In this way, the CPU_X other than the
Distributed processing is given. On the other hand, if it is determined in step S23 that JPEG decoding is not distributed, the processes in steps S24 to S27 are skipped.
そして、CPU12は、分散処理の場合には、4×N個のうちの処理割合分のMCUに
対するJPEGデコード個別処理63aを実行し、分散処理をしない場合には、4×N個
のMCUに対するJPEGデコード個別処理63aを実行する(ステップS28)。CP
U12は、JPEGデコード個別処理63aを実行する場合、関数コールにより、JPE
Gデコード個別処理63aの関数やルーチンを呼び出して実行する。なお、CPU12に
割り当てられた処理割合分のMCUデータ、そのDC成分、および計算結果の出力先アド
レスは、一旦、デュアルポートRAM21および/またはCPU12のデータRAM33
6に書き込まれ、個別処理63aの際に使用される。
Then, in the case of distributed processing, the
When the U12 executes the JPEG decoding
A function or routine of the G decode
6 and used for the
このようにして、4×N個のMCU分のJPEGデータのデコードが実行される。そし
て、画像データが終了するまで、ステップS21〜S28の処理が繰り返される(ステッ
プS29)。
In this way, decoding of JPEG data for 4 × N MCUs is executed. Then, the processes in steps S21 to S28 are repeated until the image data is completed (step S29).
図15は、実施の形態2におけるJPEGデコード個別処理63a,63eを説明する
フローチャートである。JPEGデコード個別処理63aは、CPU12により実行され
、JPEGデコード個別処理63eは、CPU12以外のCPU_Xにより実行される。
CPU12は、専用命令を含むプログラム41sを実行し、CPU_Xは、専用命令を含
まないプログラム41gを実行するが、両者の処理の流れは、同一である。ただし、専用
命令を使用した場合のほうが演算速度が高い。
FIG. 15 is a flowchart for explaining JPEG decoding
The
CPU12は、個別処理63aの開始時のCPUタイマの値Tsを保存した後(ステッ
プS31)、処理割合分のJPEGデータをそのDC成分に基づいてデコードし(ステッ
プS32)、そのデコードが完了すると、その時のCPUタイマの値Teを検出し(ステ
ップS33)、両者の差(Te−Ts)を計測時間として、合計処理時間データに累積加
算し、デコードした画素数を合計処理画素数データに累積加算する(ステップS34)。
なお、合計処理時間データおよび合計処理画素数データは、処理に要した時間および処理
の完了した画素数を集計するためのデータである。これらのデータの初期値は0とされる
。
After storing the CPU timer value Ts at the start of the
The total processing time data and the total processing pixel number data are data for totaling the time required for processing and the number of pixels for which processing has been completed. The initial values of these data are 0.
そして、CPU12は、今回の処理が1バンド内の最後の処理であるか否かを判定する
(ステップS35)。この判定については、例えば、今回の個別処理63a,63eが1
バンド内の最後の処理であるか否かを示すデータを他のパラメータとともに開始処理62
aにおいて設定しそのデータに基づいて各個別処理63a,63eで判定するようにすれ
ばよい。
Then, the
Data indicating whether or not this is the last process in the band is started together with other parameters.
What is necessary is just to make it determine by each
CPU12は、今回の処理が1バンド内の最後の処理であると判定した場合には、合計
処理時間データをJPEG処理時間データとし、合計画素数データをJPEG処理画素数
データとして、処理能力テーブル52における、JPEGデコードについてのCPU12
の処理能力情報を更新する(ステップS36)。このとき、処理能力情報としては、JP
EG処理画素数データをJPEG処理時間データで除算した処理速度などが使用される。
更新後、ローカルデータである合計処理時間データおよび合計画素数データは、0にリセ
ットされる(ステップS37)。
If the
Is updated (step S36). At this time, as processing capability information, JP
A processing speed obtained by dividing the EG processing pixel number data by the JPEG processing time data is used.
After the update, the total processing time data and the total pixel number data, which are local data, are reset to 0 (step S37).
また、このようにすることにより、1バンドの処理ごとに、1バンド分の画像データの
処理割合分についてのJPEGデコード個別処理63aの際に収集された処理能力情報で
、処理能力テーブル52におけるJPEGデコードについてのCPU12の処理能力情報
が更新される。
In addition, in this way, the processing capability information collected during the JPEG decoding
なお、分散処理の場合には、CPU12とCPU_Xは、上述の処理をそれぞれ実行す
る。したがって、CPU12の処理能力情報の他、分散処理の場合には、1バンドの処理
ごとに、1バンド分の画像データの処理割合分についてのJPEGデコード個別処理63
eの際に収集された処理能力情報で、処理能力テーブル52におけるJPEGデコードに
ついてのCPU_Xの処理能力情報が更新される。
In the case of distributed processing, the
The processing capability information of CPU_X for JPEG decoding in the processing capability table 52 is updated with the processing capability information collected during e.
このように、JPEGデコード個別処理63a,63eでは、処理割合分のJPEGデ
コードの他、処理時間および処理画素数の集計、並びに1バンドごとの処理能力テーブル
52の更新が行われる。
As described above, in the JPEG decoding
以上のように、上記実施の形態2によれば、JPEGデコード開始処理62aおよびJ
PEGデコード個別処理63a,63eが効率良く実行される。
As described above, according to the second embodiment, JPEG
The individual PEG decoding processes 63a and 63e are executed efficiently.
実施の形態3.
本発明の実施の形態3に係る画像処理装置は、他の実施の形態に係る画像処理装置と同
様の構成および機能を有し、画像補正の開始処理および個別処理については以下のように
実行する。
The image processing apparatus according to the third embodiment of the present invention has the same configuration and functions as the image processing apparatuses according to the other embodiments, and the image correction start process and the individual process are executed as follows. .
本実施の形態3においても、図7に示すように、画像補正開始処理62bは、CPU1
3により実行される。画像補正開始処理62bでは、第1処理(トーン調整および彩度強
調)、第2処理(シャープネス)、および第3処理(ノイズ除去)のそれぞれについて、
分散するか否かが決定され、第1処理〜第3処理のそれぞれについて、1または2の処理
部に画像補正個別処理(63b,63f)が割り当てられる。
Also in the third embodiment, as shown in FIG.
3 is executed. In the image
Whether or not to distribute is determined, and for each of the first to third processes, the image correction individual processes (63b, 63f) are assigned to one or two processing units.
また、画像補正個別処理(63b,63f)は、1つの処理部で実行する場合にはCP
U13に割り当てられ、2つの処理部で実行する場合には、CPU13と、CPU12、
CPU14およびCPU15〜18のいずれか(CPU_X)とに、負荷分散テーブル5
1の分散割合に基づいて割り当てられる。
In addition, when the image correction individual processing (63b, 63f) is executed by one processing unit, CP
When assigned to U13 and executed by two processing units, CPU13, CPU12,
The load distribution table 5 is connected to any one of the
Allocation is based on a distribution ratio of 1.
画像補正開始処理62bでは、CPU13は、画像補正の第3処理、第1処理、第2処
理の順番で、1ラインの画像データずつ画像補正個別処理63b,63fを実行させる。
なお、画像補正の第2処理および第3処理を実行するか否かは、ユーザの設定に応じて判
定される。つまり、第x処理(x=1,2,3)について、1ラインずつ分散処理するか
否かが判定され、処理割合に応じて、CPU13、または、CPU13とCPU_Xの2
つにより、画像補正個別処理(63b,63f)が実行される。
In the image
Whether or not to execute the second process and the third process of image correction is determined according to a user setting. That is, for the x-th process (x = 1, 2, 3), it is determined whether or not the distributed process is performed line by line. Depending on the processing ratio,
Thus, the individual image correction process (63b, 63f) is executed.
図16は、実施の形態3における画像補正開始処理62bを説明するフローチャートで
ある。また、図17は、図16における第x処理(x=1,2,3)の1ライン処理を説
明するフローチャートである。
FIG. 16 is a flowchart for explaining the image
まず、CPU13は、ユーザの設定に基づいて、第3処理(ノイズ除去)を実行するか
否かを判定し(ステップS41)、第3処理を実行する場合には、第3処理の1ライン処
理を実行する(ステップS42)。一方、第3処理(ノイズ除去)を実行しない場合には
、ステップS42はスキップする。
First, the
次に、CPU13は、第1処理(トーン調整および彩度強調)の1ライン処理を実行す
る(ステップS43)。
Next, the
そして、第1処理が完了すると、CPU13は、ユーザの設定に基づいて、第2処理(
シャープネス)の1ライン処理を実行するか否かを判定し(ステップS44)、第2処理
を実行する場合には、第2処理の1ライン処理を実行する(ステップS45)。一方、第
2処理(シャープネス)を実行しない場合には、ステップS45はスキップする。
Then, when the first process is completed, the
It is determined whether or not the one-line process of sharpness is to be executed (step S44). When the second process is executed, the one-line process of the second process is executed (step S45). On the other hand, if the second process (sharpness) is not executed, step S45 is skipped.
このように、JPEGデコード後の画像データについて、1ラインずつ順番に画像補正
が実行され、すべての画像データについて画像補正が実行されるまで、ステップS41〜
S45の処理が繰り返し実行される(ステップS46)。
As described above, the image correction is performed on the image data after JPEG decoding one line at a time until the image correction is performed on all the image data.
The process of S45 is repeatedly executed (step S46).
ここで、図17を参照してステップS42,S43,S45の第x処理の1ライン処理
について説明する。なお、第1処理、第2処理および第3処理は、同様の手順で実行され
る。ただし、各画素に施される演算(後述のステップS62)は、処理種別に応じて異な
る。
Here, the one-line process of the x-th process in steps S42, S43, and S45 will be described with reference to FIG. The first process, the second process, and the third process are executed in the same procedure. However, the calculation performed on each pixel (step S62 described later) varies depending on the processing type.
第x処理の1ライン処理では、CPU13は、まず、負荷分散テーブル51における画
像補正の第x処理についてのCPU13の処理割合の値を読み出し、その値が1であるか
否かに基づいて、画像補正を2つの処理部で分散処理するか否かを判定する(ステップS
51)。なお、CPU13は、この処理割合の値が1である場合には分散処理をしないと
判定し、この処理割合の値が1未満である場合には分散処理をすると判定する。
In the one-line process of the x-th process, the
51). The
画像補正の第x処理を2つの処理部で分散処理すると判定した場合、CPU13以外の
CPU_Xへ分散処理を与える処理が実行される。
When it is determined that the x-th process of image correction is distributed by the two processing units, a process of giving the distributed process to the CPU_X other than the
その際、CPU13は、負荷分散テーブル51における画像補正の第x処理についての
CPU13以外のCPU12,14〜18の処理割合の値が0以外である処理部をCPU
_Xとし、処理対象となる1ライン分の画像データを分散割合で分割し、各処理割合分に
応じた画像データをCPU13およびCPU_Xに割り当てる(ステップS52)。
At this time, the
_X, image data for one line to be processed is divided at a distribution ratio, and image data corresponding to each processing ratio is assigned to the
例えば、分散割合が3:1である場合には、1ラインの先頭から横幅画素数の4分の3
の画素領域がCPU13に割り当てられ、残りの4分の1の画素領域がCPU_Xに割り
当てられる。
For example, when the dispersion ratio is 3: 1, 3/4 of the number of horizontal pixels from the head of one line.
Are assigned to the
そして、CPU13は、処理種別およびCPU_Xの処理割合分の画像データの先頭ア
ドレス(外部RAM2のJPEGデコード後の画像データの格納領域のアドレス)を、デ
ュアルポートRAM21に書き込む(ステップS53)。
Then, the
そして、CPU13は、CPU_Xに割り込みを掛けて、処理割合分の個別処理63f
をCPU_Xに依頼する(ステップS54)。なお、割り込みは、CPU11〜18を相
互に接続する制御線を介して割り込み信号を伝送することにより行われる。また、割り込
みを受けたCPU_Xは、デュアルポートRAM21の所定の領域に記憶された処理種別
に応じて、CPU_Xの処理割合分の画像データの先頭アドレスを、デュアルポートRA
M21から読み込む。
Then, the
Is requested to CPU_X (step S54). The interrupt is performed by transmitting an interrupt signal via a control line that interconnects the
Read from M21.
このようにして、ステップS52〜S54の処理により、CPU13以外のCPU_X
へ分散処理が与えられる。一方、ステップS51において画像補正の第x処理を分散処理
しないと判定された場合には、ステップS52〜S54の処理はスキップされる。
In this way, the CPU_X other than the
Distributed processing is given. On the other hand, if it is determined in step S51 that the image correction x-th process is not distributed, the processes in steps S52 to S54 are skipped.
そして、CPU13は、分散処理の場合には、1ライン分の画像データのうちの処理割
合分の画像データに対する画像補正の第x処理の個別処理63bを実行し、分散処理をし
ない場合には、1ライン分の画像データに対する画像補正の第x処理の個別処理63bを
実行する(ステップS55)。CPU13は、個別処理63bを実行する場合、関数コー
ルにより、個別処理63bの関数やルーチンを呼び出して実行する。
Then, in the case of distributed processing, the
CPU13は、今回の1ライン処理を分散処理しているか否かを判定し(ステップS5
6)、分散処理していない場合には、画像補正の第x処理の個別処理63bが完了すると
1ライン処理を終了する。一方、分散処理をしている場合には、CPU13は、画像補正
の第x処理の個別処理63bの完了後、CPU_Xによる第x処理の個別処理63fの完
了まで待機し(ステップS57)、CPU_Xによる第x処理の個別処理63fが完了す
ると1ライン処理を終了する。
The
6) When the distributed processing is not performed, the one-line processing is ended when the
このようにして、1ライン分の画像データに対して画像補正の第x処理が実行される。 In this way, the x-th process of image correction is executed on the image data for one line.
図18は、実施の形態3における画像補正個別処理63b,63fを説明するフローチ
ャートである。第1処理〜第3処理についての画像補正個別処理63bは、CPU13に
より実行され、第1処理〜第3処理についての画像補正個別処理63fは、CPU13以
外のCPU_Xにより実行される。CPU13は、専用命令を含むプログラム42sを実
行し、CPU_Xは、専用命令を含まないプログラム42gを実行するが、両者の処理の
流れは、同一である。ただし、専用命令を使用した場合のほうが演算速度が高い。
FIG. 18 is a flowchart for explaining the individual image correction processes 63b and 63f in the third embodiment. The image correction
CPU13は、個別処理63bの開始時のCPUタイマの値Tsを保存した後(ステッ
プS61)、処理対象となるデータの先頭アドレスに基づいて処理対象の画像データを特
定し、処理割合分の画像データの各画素に対して第x処理の演算を施し(ステップS62
)、その演算が完了すると、その時のCPUタイマの値Teを検出し(ステップS63)
、両者の差(Te−Ts)を計測時間とする。
After saving the CPU timer value Ts at the start of the
When the calculation is completed, the CPU timer value Te at that time is detected (step S63).
The difference between them (Te−Ts) is taken as the measurement time.
そして、CPU13は、その計測時間を第x処理についての画像補正処理時間データと
し、処理した画素数を第x処理についての画像補正処理画素数データとして、処理能力テ
ーブル52における、画像補正の第x処理についてのCPU13の処理能力情報を更新す
る(ステップS64)。このとき、処理能力情報としては、画像補正処理画素数データを
画像補正処理時間データで除算した処理速度などが使用される。
Then, the
このようにすることにより、1ラインの処理ごとに、1ライン分の画像データの処理割
合分についての画像補正個別処理63bの際に収集された処理能力情報で、処理能力テー
ブル52における画像補正についてのCPU13の処理能力情報が更新される。
By doing so, the processing capability information collected during the image correction
なお、分散処理の場合には、CPU13とCPU_Xは、上述の処理をそれぞれ実行す
る。したがって、CPU13の処理能力情報の他、分散処理の場合には、1ラインの処理
ごとに、1ライン分の画像データの処理割合分についての画像補正個別処理63fの際に
収集された処理能力情報で、処理能力テーブル52における画像補正についてのCPU_
Xの処理能力情報が更新される。
In the case of distributed processing, the
The processing capacity information of X is updated.
このように、第x処理についての画像補正個別処理(63b,63f)では、処理割合
分の第x処理の他、処理時間および処理画素数の計測、並びに1ラインごとの処理能力テ
ーブル52の更新が行われる。
As described above, in the image correction individual processing (63b, 63f) for the x-th processing, in addition to the x-th processing corresponding to the processing ratio, the processing time and the number of processing pixels are measured, and the processing capacity table 52 is updated for each line. Is done.
以上のように、上記実施の形態3によれば、画像補正開始処理62bおよび画像補正個
別処理63b,63fが効率良く実行される。
As described above, according to the third embodiment, the image
実施の形態4.
本発明の実施の形態4に係る画像処理装置は、他の実施の形態に係る画像処理装置と同
様の構成および機能を有し、色変換およびハーフトーンの開始処理62c,62dおよび
個別処理63c,63g,63d,63hについては以下のように実行する。
The image processing apparatus according to the fourth embodiment of the present invention has the same configuration and functions as the image processing apparatuses according to the other embodiments, and includes color conversion and halftone start processes 62c and 62d and
本実施の形態4においても、図7に示すように、色変換開始処理62cは、CPU14
により実行される。色変換個別処理(63c,63g)は、1または2の処理部に割り当
てられる。
Also in the fourth embodiment, as shown in FIG. 7, the color conversion start processing 62 c is performed by the
It is executed by. The color conversion individual processing (63c, 63g) is assigned to one or two processing units.
また、色変換個別処理(63c,63g)は、1つの処理部で実行する場合にはCPU
14に割り当てられ、2つの処理部で実行する場合には、CPU14と、CPU12、C
PU13およびCPU15〜18のいずれか(CPU_X)とに、負荷分散テーブル51
の分散割合に基づいて割り当てられる。
The color conversion individual processing (63c, 63g) is executed by a CPU when executed by one processing unit.
14, the
The load distribution table 51 is connected to any one of the
Assigned based on the distribution ratio.
さらに、本実施の形態4では、ハーフトーン開始処理62dが、CPU14により色変
換開始処理62cにおいて実行される。ハーフトーン個別処理(63d,63h)は、1
または2の処理部に割り当てられる。
Further, in the fourth embodiment, the
Alternatively, it is assigned to the second processing unit.
また、ハーフトーン個別処理(63d,63h)は、1つの処理部で実行する場合には
CPU15〜18の4CPUに割り当てられ、2つの処理部で実行する場合には、CPU
15〜18と、CPU12〜14のいずれか(CPU_X)の合計5CPUに、負荷分散
テーブル51の分散割合に基づいて割り当てられる。
The halftone individual processing (63d, 63h) is assigned to 4
15 to 18 and any of
図19は、実施の形態4における色変換開始処理62cを説明するフローチャートであ
る。
FIG. 19 is a flowchart for explaining the color conversion start processing 62c in the fourth embodiment.
色変換開始処理62cでは、CPU14は、負荷分散テーブル51における色変換につ
いてのCPU14の処理割合の値を読み出し、その値が1であるか否かに基づいて、色変
換を2つの処理部で分散処理するか否かを判定する(ステップS71)。なお、CPU1
4は、この処理割合の値が1である場合には分散処理をしないと判定し、この処理割合の
値が1未満である場合には分散処理をすると判定する。
In the color conversion start process 62c, the
4 determines that distributed processing is not performed when the value of the processing ratio is 1, and determines that distributed processing is performed when the value of the processing ratio is less than 1.
色変換を2つの処理部で分散処理すると判定した場合、CPU14以外のCPU_Xへ
分散処理を与える処理が実行される。
When it is determined that the color conversion is distributed by the two processing units, a process of giving the distributed process to the CPU_X other than the
その際、CPU14は、負荷分散テーブル51における色変換についてのCPU14以
外のCPU12,13,15〜18の処理割合の値が0以外であるCPUをCPU_Xと
し、処理対象となる1ブロック分の画像データを分散割合で分割し、各処理割合分に応じ
た画像データをCPU14およびCPU_Xに割り当てる(ステップS72)。
At that time, the
なお、色変換における1回の処理あたりの処理対象となるブロックは、縦2画素、横(
4×M)画素の画素領域である。この実施の形態4では、M=64とされる。
In addition, the block to be processed per process in the color conversion is 2 pixels vertically and horizontally (
4 × M) pixel area. In the fourth embodiment, M = 64.
例えば、分散割合が3:1である場合には、ブロックにおける各ラインの先頭から3×
M個の画素領域(つまり合計6×M個の画素)がCPU14に割り当てられ、残りの2×
M個の画素領域がCPU_Xに割り当てられる。
For example, if the distribution ratio is 3: 1, 3 × from the beginning of each line in the block
M pixel regions (that is, a total of 6 × M pixels) are allocated to the
M pixel regions are assigned to CPU_X.
そして、CPU14は、処理種別およびCPU_Xの処理割合分の画像データの先頭ア
ドレス(外部RAM2のリサイズ・レイアウト後の画像データの格納領域のアドレス)を
、デュアルポートRAM22に書き込む(ステップS73)。
Then, the
そして、CPU14は、CPU_Xに割り込みを掛けて、処理割合分の個別処理63g
をCPU_Xに依頼する(ステップS74)。なお、割り込みは、CPU11〜18を相
互に接続する制御線を介して割り込み信号を伝送することにより行われる。また、割り込
みを受けたCPU_Xは、デュアルポートRAM22の所定の領域に記憶された処理種別
に応じて、CPU_Xの処理割合分の画像データの先頭アドレスを、デュアルポートRA
M22から読み込む。
Then, the
Is requested to CPU_X (step S74). The interrupt is performed by transmitting an interrupt signal via a control line that interconnects the
Read from M22.
このようにして、ステップS72〜S74の処理により、CPU14以外のCPU_X
へ分散処理が与えられる。一方、ステップS71において色変換を分散処理しないと判定
された場合には、ステップS72〜S74の処理はスキップされる。
In this way, the CPU_X other than the
Distributed processing is given. On the other hand, if it is determined in step S71 that the color conversion is not distributed, the processes in steps S72 to S74 are skipped.
そして、CPU14は、分散処理の場合には、1ブロック分の画像データのうちの処理
割合分の画像データに対する色変換の個別処理63cを実行し、分散処理をしない場合に
は、1ブロック分の画像データに対する色変換の個別処理63cを実行する(ステップS
75)。CPU14は、個別処理63cを実行する場合、関数コールにより、個別処理6
3cの関数やルーチンを呼び出して実行する。
In the case of distributed processing, the
75). When executing the
3c functions and routines are called and executed.
CPU14は、処理割合分の個別処理63cが完了すると、ハーフトーン開始処理を実
行する(ステップS76)。これにより、後述のようにして、CPU14による個別処理
63cの後の画像データに対して、ハーフトーン処理が実行される。
When the
CPU14は、処理割合分の画像データについて、色変換およびハーフトーンが完了す
ると、色変換処理を分散処理しているか否かを判定する(ステップS77)。色変換処理
を分散処理している場合には、CPU14は、CPU_Xによる色変換個別処理63gが
終了するまで待機し(ステップS78)、CPU_Xによる色変換個別処理63gが終了
すると、CPU_Xの処理割合分の色変換後の画像データについてハーフトーン開始処理
を実行する(ステップS79)。
When the color conversion and the halftone are completed for the image data corresponding to the processing ratio, the
一方、色変換処理を分散処理していない場合には、1ブロック分の色変換およびハーフ
トーンが完了していることになるので、ステップS78,S79はスキップする。
On the other hand, if the color conversion process is not distributed, steps S78 and S79 are skipped because color conversion and halftone for one block have been completed.
このようにして、1ブロック分の色変換およびハーフトーンが実行される。そして、ス
テップS71に戻り、次の1ブロック分の色変換およびハーフトーンが同様にして実行さ
れる。以後、画像データの最後まで、順番に、色変換およびハーフトーンが実行される(
ステップS80)。
In this way, color conversion and halftone for one block are executed. Then, the process returns to step S71, and color conversion and halftone for the next one block are executed in the same manner. Thereafter, color conversion and halftone are sequentially performed until the end of the image data (
Step S80).
上述の色変換開始処理に関連して、まず、色変換個別処理63c,63gについて説明
する。図20は、実施の形態4における色変換個別処理63c,63gを説明するフロー
チャートである。色変換個別処理63cは、CPU14により実行され、色変換個別処理
63gは、CPU14以外のCPU_Xにより実行される。CPU14は、専用命令を含
むプログラム43sを実行し、CPU_Xは、専用命令を含まないプログラム43gを実
行するが、両者の処理の流れは、同一である。ただし、専用命令を使用した場合のほうが
演算速度が高い。なお、色変換に使用されるLUTは、デュアルポートRAM21に格納
されているパラメータの値に基づいて、図示せぬ不揮発メモリに記憶された複数のLUT
から選択される。
In relation to the color conversion start process described above, first, the color conversion individual processes 63c and 63g will be described. FIG. 20 is a flowchart illustrating color conversion
Selected from.
CPU14は、個別処理63cの開始時のCPUタイマの値Tsを保存した後(ステッ
プS81)、処理対象となるデータの先頭アドレスに基づいて処理対象の画像データを特
定し、処理割合分の画像データの各画素に対して色変換を実行し(ステップS82)、そ
の演算が完了すると、その時のCPUタイマの値Teを検出し(ステップS83)、両者
の差(Te−Ts)を計測時間として、合計処理時間データに累積加算し、デコードした
画素数を合計処理画素数データに累積加算する(ステップS84)。なお、合計処理時間
データおよび合計処理画素数データは、処理に要した時間および処理の完了した画素数を
集計するためのデータである。これらのデータの初期値は0とされる。
After storing the CPU timer value Ts at the start of the
なお、この実施の形態4では、RGBデータが7色インク用の7色分のCYMKデータ
に変換される。
In the fourth embodiment, RGB data is converted into CYMK data for seven colors for seven color inks.
そして、CPU14は、今回の処理が1バンド内の最後の処理であるか否かを判定する
(ステップS85)。この判定については、例えば、今回の個別処理が1バンド内の最後
の処理であるか否かを示すデータを他のパラメータとともに開始処理62cにおいて設定
しそのデータに基づいて各個別処理63c,63gで判定するようにすればよい。
Then, the
CPU14は、今回の処理が1バンド内の最後の処理であると判定した場合には、合計
処理時間データを色変換処理時間データとし、合計画素数データを色変換処理画素数デー
タとして、処理能力テーブル52における、色変換についてのCPU14の処理能力情報
を更新する(ステップS86)。このとき、処理能力情報としては、色変換処理画素数デ
ータを色変換処理時間データで除算した処理速度などが使用される。更新後、ローカルデ
ータである合計処理時間データおよび合計画素数データは、0にリセットされる(ステッ
プS87)。
If the
また、このようにすることにより、1バンドの処理ごとに、1バンド分の画像データの
処理割合分についての色変換個別処理63cの際に収集された処理能力情報で、処理能力
テーブル52における色変換についてのCPU14の処理能力情報が更新される。
In addition, in this way, the color in the processing capability table 52 is obtained by the processing capability information collected during the color conversion
なお、分散処理の場合には、CPU14とCPU_Xは、上述の処理をそれぞれ実行す
る。したがって、CPU14の処理能力情報の他、分散処理の場合には、1バンドの処理
ごとに、1バンド分の画像データの処理割合分についての色変換個別処理63gの際に収
集された処理能力情報で、処理能力テーブル52における色変換についてのCPU_Xの
処理能力情報が更新される。
In the case of distributed processing, the
このように、色変換個別処理(63c,63g)では、処理割合分の色変換の他、処理
時間および処理画素数の集計、並びに1バンドごとの処理能力テーブル52の更新が行わ
れる。
As described above, in the color conversion individual processing (63c, 63g), in addition to the color conversion corresponding to the processing ratio, the processing time and the number of processing pixels are totaled, and the processing capability table 52 for each band is updated.
上述の色変換開始処理に関連して、次に、ハーフトーン開始処理62dについて説明す
る。ハーフトーン開始処理62dは、上述のように、CPU14またはCPU_Xによる
色変換が完了した後、CPU14により直ちに実行される。
Next, the
図21は、実施の形態4におけるハーフトーン開始処理62dを説明するフローチャー
トである。
FIG. 21 is a flowchart for explaining
ハーフトーン開始処理62dでは、CPU14は、色変換後の画像データを、色別に分
離してデュアルポートRAM22に書き込む(ステップS91)。その際、各色のデータ
は、2×256画素のブロックとされる。
In the
次に、CPU14は、負荷分散テーブル51におけるハーフトーンについてのCPU1
5〜18の処理割合の値を読み出し、その値が1であるか否かに基づいて、ハーフトーン
を5つのCPUで分散処理するか否かを判定する(ステップS92)。なお、CPU14
は、この処理割合の値が1である場合には分散処理をしないと判定し、この処理割合の値
が1未満である場合には分散処理をすると判定する。
Next, the
A processing ratio value of 5 to 18 is read out, and based on whether the value is 1 or not, it is determined whether or not to distribute the halftone with 5 CPUs (step S92).
Determines that distributed processing is not performed when the value of the processing ratio is 1, and determines that distributed processing is performed when the value of the processing ratio is less than 1.
ハーフトーンを5つのCPUで分散処理すると判定した場合、CPU15〜18、およ
びCPU15〜18以外のCPU_Xへ分散処理を与える処理が実行される。
When it is determined that the halftone is to be distributed by five CPUs, a process of giving the distributed processing to the
その際、CPU14は、負荷分散テーブル51におけるハーフトーンについてのCPU
15〜18以外のCPU12〜14の処理割合の値が0以外であるCPUをCPU_Xと
し、処理対象となる1ブロック分の画像データを分散割合で分割し、各処理割合分に応じ
た画像データをCPU15〜18およびCPU_Xに割り当てる(ステップS92)。
At that time, the
A CPU whose processing ratio value other than 15 to 18 is other than 0 is CPU_X, image data for one block to be processed is divided by a distribution ratio, and image data corresponding to each processing ratio is obtained. It assigns to CPU15-18 and CPU_X (step S92).
なお、ハーフトーンにおける1回の処理あたりの処理対象となるブロックは、色変換と
同一の画素領域である。
Note that the block to be processed per process in halftone is the same pixel area as color conversion.
そして、CPU14は、CPU_Xに割り込みを掛けて、処理割合分の個別処理63h
をCPU_Xに依頼する(ステップS94)。なお、割り込みは、CPU11〜18を相
互に接続する制御線を介して割り込み信号を伝送することにより行われる。また、割り込
みを受けたCPU_Xは、デュアルポートRAM22の所定の領域に記憶された処理種別
に応じて、CPU_Xの処理割合分の画像データの先頭アドレスを、デュアルポートRA
M22から読み込む。
Then, the
Is requested to CPU_X (step S94). The interrupt is performed by transmitting an interrupt signal via a control line that interconnects the
Read from M22.
一方、ステップS91においてハーフトーンを5つのCPUで分散処理しないと判定さ
れた場合には、ステップS73の処理はスキップされる。
On the other hand, if it is determined in step S91 that the halftone is not distributed by the five CPUs, the process of step S73 is skipped.
そして、CPU14は、CPU15〜18のそれぞれに割り込みを掛けて、処理割合分
の個別処理63dをCPU15〜18に依頼する(ステップS95)。なお、割り込みを
受けたCPU15〜18は、デュアルポートRAM22の所定の領域に記憶された処理種
別に応じて、CPU15〜18の処理割合分の画像データの先頭アドレスを、デュアルポ
ートRAM22から読み込む。
Then, the
このようにして、ステップS93,S94の処理により、CPU15〜18へ分散処理
が与えられたり、CPU15〜18以外のCPU_Xへ分散処理が与えられたりする。
In this way, the distributed processing is given to the
その後、CPU14は、CPU15〜18によるハーフトーン個別処理63dが終了す
るまで待機する(ステップS95)。そして、CPU15〜18によるハーフトーン個別
処理63dが終了すると、5つのCPUで分散処理をしている場合には、CPU14は、
CPU_Xによるハーフトーン個別処理63hが終了するまで待機し、個別処理63hが
終了すると、ハーフトーン開始処理を終了する。一方、5つのCPUで分散処理をしてい
ない場合には、CPU15〜18によるハーフトーン個別処理63dが終了すると、CP
U14は、ハーフトーン開始処理を終了する。
Thereafter, the
The CPU waits until the halftone
U14 ends the halftone start process.
このようにして、ハーフトーン個別処理の割り当て処理が実行される。 In this way, the allocation process of the halftone individual process is executed.
ここで、ハーフトーン個別処理63d,63hの詳細について説明する。図22は、実
施の形態4におけるハーフトーン個別処理63d,63hを説明するフローチャートであ
る。ハーフトーンは、色変換後の各色のデータを単位として分散処理される。ハーフトー
ン個別処理63dは、1色または2色ずつに分散され、CPU15〜18により並列的に
実行され、ハーフトーン個別処理63hは、CPU15〜18以外のCPU_Xにより実
行される。CPU15〜18は、専用命令を含むプログラム44sを実行し、CPU_X
は、専用命令を含まないプログラム44gを実行するが、両者の処理の流れは、同一であ
る。ただし、専用命令を使用した場合のほうが演算速度が高い。
Here, the details of the
Executes a program 44g that does not include a dedicated instruction, but the flow of both processes is the same. However, the calculation speed is higher when dedicated instructions are used.
CPU15〜18は、個別処理63dの開始時のCPUタイマの値Tsを保存した後(
ステップS101)、予め割り当てられている色の処理割合分の画像データをデュアルポ
ートRAM22から読み出し、その画像データに対して、ディサ法または誤差拡散法で二
値化処理を実行し(ステップS102)、その演算が完了すると、その時のCPUタイマ
の値Teを検出し(ステップS103)、両者の差(Te−Ts)を計測時間として、合
計処理時間データに累積加算し、デコードした画素数を合計処理画素数データに累積加算
する(ステップS104)。なお、合計処理時間データおよび合計処理画素数データは、
処理に要した時間および処理の完了した画素数を集計するためのデータである。これらの
データの初期値は0とされる。
The
Step S101), image data corresponding to the processing rate of the color assigned in advance is read from the
This is data for counting the time required for processing and the number of pixels for which processing has been completed. The initial values of these data are 0.
なお、この実施の形態4では、7色分のCMYKデータ(C,M,Y,K,R,B,C
L)が存在し、4つのCPU15〜18のみでハーフトーンを実行する場合、例えば、C
PU15は、誤差拡散法によるシアンCおよびマゼンタMの二値化を実行し、CPU16
は、ディザ法によるイエローYの二値化と誤差拡散法によるブラックKの二値化を実行し
、CPU17は、ディザ法によるクリアCLの二値化と誤差拡散法によるレッドRの二値
化を実行し、CPU18は、誤差拡散法によるブルーBの二値化を実行する。また、CP
U15〜18とCPU_Xの5つのCPUでハーフトーンを実行する場合、例えば、CP
U15は、誤差拡散法によるシアンCの二値化を実行し、CPU16は、ディザ法による
イエローYの二値化と誤差拡散法によるブラックKの二値化を実行し、CPU17は、デ
ィザ法によるクリアCLの二値化と誤差拡散法によるレッドRの二値化を実行し、CPU
18は、誤差拡散法によるブルーBの二値化を実行し、CPU_Xは、誤差拡散法による
マゼンタMの二値化を実行する。
In the fourth embodiment, CMYK data (C, M, Y, K, R, B, C) for seven colors is used.
L) exists and halftone is executed only by the four
The
Executes binarization of yellow Y by the dither method and binarization of black K by the error diffusion method, and the CPU 17 binarizes the clear CL by the dither method and binarization of the red R by the error diffusion method. The
When halftone is executed by five CPUs U15 to 18 and CPU_X, for example, CP
U15 executes binarization of cyan C by the error diffusion method,
18 executes binarization of blue B by the error diffusion method, and CPU_X executes binarization of magenta M by the error diffusion method.
そして、CPU15〜18は、今回の処理が1バンド内の最後の処理であるか否かを判
定する(ステップS105)。この判定については、例えば、今回の個別処理が1バンド
内の最後の処理であるか否かを示すデータを他のパラメータとともに開始処理62dにお
いて設定しそのデータに基づいて各個別処理63d,63hで判定するようにすればよい
。
And CPU15-18 determines whether this process is the last process in 1 band (step S105). For this determination, for example, data indicating whether or not the current individual process is the last process in one band is set in the
CPU15〜18は、今回の処理が1バンド内の最後の処理であると判定した場合には
、合計処理時間データをHT処理時間データとし、合計画素数データをHT処理画素数デ
ータとして、処理能力テーブル52における、ハーフトーンについてのCPU15〜18
の処理能力情報を更新する(ステップS106)。このとき、処理能力情報としては、H
T画素数データをHT処理時間データで除算した処理速度などが使用される。更新後、ロ
ーカルデータである合計処理時間データおよび合計画素数データは、0にリセットされる
(ステップS107)。
When the
Is updated (step S106). At this time, as processing capability information, H
A processing speed obtained by dividing the T pixel number data by the HT processing time data is used. After the update, the total processing time data and the total pixel number data, which are local data, are reset to 0 (step S107).
また、このようにすることにより、1バンドの処理ごとに、1バンド分の画像データの
処理割合分についてのハーフトーン個別処理63dの際に収集された処理能力情報で、処
理能力テーブル52におけるハーフトーンについてのCPU15〜18の処理能力情報が
更新される。
Further, in this way, for each processing of one band, the processing capability information collected during the
なお、分散処理の場合には、CPU15〜18とCPU_Xは、上述の処理をそれぞれ
実行する。したがって、CPU15〜18の処理能力情報の他、分散処理の場合には、1
バンドの処理ごとに、1バンド分の画像データの処理割合分についてのハーフトーン個別
処理63hの際に収集された処理能力情報で、処理能力テーブル52におけるハーフトー
ンについてのCPU_Xの処理能力情報が更新される。
Note that in the case of distributed processing, the
For each band process, the CPU_X processing capability information for the halftone in the processing capability table 52 is updated with the processing capability information collected during the
このように、ハーフトーン個別処理(63d,63h)では、処理割合分のハーフトー
ンの他、処理時間および処理画素数の集計、並びに1バンドごとの処理能力テーブル52
の更新が行われる。
As described above, in the halftone individual processing (63d, 63h), in addition to the halftone for the processing ratio, the processing time and the number of processing pixels are counted, and the processing capability table 52 for each band.
Is updated.
以上のように、上記実施の形態4によれば、色変換開始処理62cおよび色変換個別処
理63c,63gが効率良く実行され、色変換後の画像データに色別に施されるハーフト
ーン処理についてのハーフトーン開始処理62dおよびハーフトーン個別処理63d,6
3hが効率良く実行される。
As described above, according to the fourth embodiment, the color conversion start process 62c and the individual color conversion processes 63c and 63g are efficiently executed, and the halftone process applied to the color-converted image data for each color.
3h is executed efficiently.
なお、上述の各実施の形態は、本発明の好適な例であるが、本発明は、これらに限定さ
れるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能で
ある。
Each embodiment described above is a preferred example of the present invention, but the present invention is not limited to these, and various modifications and changes can be made without departing from the scope of the present invention. It is.
例えば、実施の形態1〜4では、最初に用意される画像データは、JPEG形式でエン
コードされたものであるが、その代わりに、他の形式でエンコードされたものとしてもよ
い。その場合には、JPEGデコードの代わりに、その形式でのデコードが実行される。
For example, in
また、実施の形態1〜4では、CPU15〜18は1つのプロセッサとして負荷管理さ
れているが、その代わりに、4つのCPU15〜18それぞれについて、他のCPU12
〜14と同様に負荷管理を実行して、負荷バランスを保つようにしてもよい。
In the first to fourth embodiments, the
Similarly to -14, load management may be executed to maintain the load balance.
また、実施の形態1〜4において、CPU15〜18へ、JPEGデコード、画像補正
、色変換などの、ハーフトーン以外の個別処理を与える場合には、CPU15〜18のう
ちの他のCPUより処理する色の数が少ないCPUに、そのハーフトーン以外の個別処理
を与えればよい。
In the first to fourth embodiments, when individual processing other than halftone, such as JPEG decoding, image correction, and color conversion, is given to the
また、実施の形態1〜4においては、色変換により7色のCYMK画像データが生成さ
れるが、色変換後の画像データの色数は、他の数でもよい。例えば、色変換により、4色
、6色、8色などのCYMK画像データを生成するようにしてもよい。その場合、ハーフ
トーン専用命令演算部を有するCPUの数は、その色数以下とされる。また、色変換後の
色座標についても上述のものに限定されるものではなく、別の色座標としてもよい。
In the first to fourth embodiments, seven colors of CYMK image data are generated by color conversion. However, the number of colors of image data after color conversion may be other numbers. For example, CYMK image data of four colors, six colors, eight colors, etc. may be generated by color conversion. In this case, the number of CPUs having a halftone dedicated instruction calculation unit is equal to or less than the number of colors. Further, the color coordinates after color conversion are not limited to those described above, and may be different color coordinates.
また、実施の形態1〜4においては、画像補正の第1処理〜第3処理は、別々に分散処
理されるが、第1処理〜第3処理を区別せず、1つの画像補正処理として分散させるよう
にしてもよい。
In the first to fourth embodiments, the first process to the third process of image correction are separately distributed. However, the first process to the third process are not distinguished and distributed as one image correction process. You may make it make it.
また、実施の形態1〜4においては、分散処理時において、1つの処理種別の処理はメ
インのCPU(つまりその処理種別に対応する専用命令演算部を有するCPU)と別の1
つのCPU_Xにより実行されるが、メインのCPUと2以上の他のCPUにより実行す
るようにしてもよい。その場合には、負荷分散テーブル51の処理割合が、少なくとも3
つの処理部について、非0の値となる。
In the first to fourth embodiments, during distributed processing, processing of one processing type is different from the main CPU (that is, a CPU having a dedicated instruction calculation unit corresponding to the processing type).
It is executed by one CPU_X, but may be executed by the main CPU and two or more other CPUs. In that case, the processing ratio of the load distribution table 51 is at least 3
It is a non-zero value for one processing unit.
また、実施の形態1〜4において、色変換を実行するCPU14(およびCPU_X)
からハーフトーンを実行するCPU15〜18(およびCPU_X)へのデータの転送に
ついては、例えば、本出願人が先に提案している特願2004−096845号の方法を
応用してもよい。
In the first to fourth embodiments, the CPU 14 (and CPU_X) that performs color conversion.
For example, the method of Japanese Patent Application No. 2004-096845 previously proposed by the present applicant may be applied to the transfer of data from the CPU to the
また、実施の形態1〜4において、リサイズ・レイアウト処理については分散処理せず
にCPU12が実行しているが、他の処理種別と同様にして分散処理するようにしてもよ
い。
In the first to fourth embodiments, the resizing / layout process is performed by the
また、実施の形態1〜4において、汎用命令演算部12a〜18aについて、内蔵の加
算器、乗算器といった演算器の数をCPUごとに変えるようにしてもよい。
In the first to fourth embodiments, the number of arithmetic units such as built-in adders and multipliers may be changed for each CPU in the general-purpose
また、実施の形態1〜4においては、専用命令を含むプログラム41s〜44sおよび
汎用命令を含むプログラム41g〜44gを外部RAM2にロードしているが、専用命令
を含むプログラム41s〜44sを各CPU12〜18の命令RAM33にロードし、汎
用命令を含むプログラム41g〜44gを外部RAM2にロードするようにしてもよい。
In the first to fourth embodiments, the
また、実施の形態1〜4においては、JPEGデコード、画像補正および色変換につい
ての処理割合は、0、0.25、0.5、0.75および1の集合のうちのいずれかとさ
れるが、その他の数の集合のいずれかとしてもよい。例えば、処理割合は、0、0.12
5、0.25、0.375、0.5、0.625、0.75、0.875および1の集合
のうちのいずれかとしてもよい。また、ハーフトーンについての処理割合についても、別
の値のいずれかとしてもよい。
In the first to fourth embodiments, the processing ratio for JPEG decoding, image correction, and color conversion is one of a set of 0, 0.25, 0.5, 0.75, and 1. Or any other set of numbers. For example, the processing ratio is 0, 0.12.
Any of the set of 5, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, and 1 may be used. Also, the processing ratio for halftone may be any other value.
また、実施の形態1〜4においては、個別処理63を実行するCPU12〜18の一部
で、分散割合決定処理61および開始処理62が実行されるが、その代わりに、分散割合
決定処理61および開始処理62を別のCPU(例えばCPU11、別途設けられるCP
Uなど)により実行するようにしてもよい。
In the first to fourth embodiments, the distribution
U) or the like.
また、実施の形態1〜4において、負荷分散テーブル51を2つとし、開始処理62に
おいて一方の負荷分散テーブル51が参照され、1回の分散割合決定処理61では他方の
負荷分散テーブル51が更新され、更新が完了すると、開始処理62において参照される
負荷分散テーブル51を、更新された他方の負荷分散テーブル51とするようにしてもよ
い。これにより、2つの負荷分散テーブル51が交互に更新され、負荷分散テーブル51
の更新中も、開始処理62において負荷分散テーブル51の参照が円滑に行われる。
In the first to fourth embodiments, there are two load distribution tables 51, one load distribution table 51 is referred to in the
Even during the update, the load distribution table 51 is referred to smoothly in the
また、実施の形態1〜4においては、JPEGデコード、画像補正、リサイズ・レイア
ウト、色変換、およびハーフトーンの順番に実行する画像処理系に対して本発明を適用し
たが、各画像処理の種類はこれに限られるものではなく、一連の複数種別の画像処理を順
番に実行する他の画像処理系に対しても本発明を適用可能である。
In the first to fourth embodiments, the present invention is applied to an image processing system that executes in the order of JPEG decoding, image correction, resizing / layout, color conversion, and halftone. However, the present invention is not limited to this, and the present invention can also be applied to other image processing systems that sequentially execute a plurality of types of image processing.
本発明は、例えば、画像データに対して複数の画像処理を順番に施す画像処理装置に適
用可能である。そのような画像処理装置としては、例えばプリンタ、コピー機、プロジェ
クタ、テレビジョン受像機などがある。
The present invention is applicable to, for example, an image processing apparatus that sequentially performs a plurality of image processes on image data. Examples of such an image processing apparatus include a printer, a copier, a projector, and a television receiver.
1 ASIC(プロセッサ)、2 外部RAM(メモリ,パイプライン処理部の一部,
外部メモリ)、4 プリンタ駆動部(印刷手段)、12 CPU(複数の処理部の一部,
パイプライン処理部の一部,分散割合決定手段,開始処理手段)、12a〜18a 汎用
命令演算部,12b JPEGデコード専用命令演算部(専用命令演算部)、13 CP
U(複数の処理部の一部,パイプライン処理部の一部,開始処理手段)、13b 画像補
正専用命令演算部(専用命令演算部)、14 CPU(複数の処理部の一部,パイプライ
ン処理部の一部,開始処理手段)、14b 色変換専用命令演算部(専用命令演算部)、
15〜18 CPU(複数の処理部の一部,パイプライン処理部の一部)、15b〜18
b ハーフトーン専用命令演算部(専用命令演算部)、19 ローカルバス(パイプライ
ン処理部の一部),20 バス(パイプライン処理部の一部)、21,22 デュアルポ
ートRAM(パイプライン処理部の一部,プロセッサ内部メモリ)、41s JPEGデ
コードプログラム(第1のプログラム)、41g JPEGデコードプログラム(第2の
プログラム)、42s 画像補正プログラム(第1のプログラム)、42g 画像補正プ
ログラム(第2のプログラム)、43s 色変換プログラム(第1のプログラム)、43
g 色変換プログラム(第2のプログラム)、44s ハーフトーンプログラム(第1の
プログラム)、44g ハーフトーンプログラム(第2のプログラム)。
1 ASIC (processor), 2 external RAM (memory, part of pipeline processing unit,
External memory), 4 printer drive unit (printing means), 12 CPU (part of a plurality of processing units,
Part of pipeline processing unit, distribution ratio determining means, start processing means), 12a to 18a general-purpose instruction arithmetic unit, 12b JPEG decoding dedicated instruction arithmetic unit (dedicated instruction arithmetic unit), 13 CP
U (part of a plurality of processing units, part of a pipeline processing unit, start processing means), 13b image correction dedicated instruction arithmetic unit (dedicated instruction arithmetic unit), 14 CPU (part of plural processing units, pipeline Part of the processing unit, start processing means), 14b color conversion dedicated command calculation unit (dedicated command calculation unit),
15-18 CPU (part of a plurality of processing units, part of a pipeline processing unit), 15b-18
b Halftone dedicated instruction calculation unit (dedicated instruction calculation unit), 19 local bus (part of pipeline processing unit), 20 bus (part of pipeline processing unit), 21, 22 dual port RAM (pipeline processing unit) , 41s JPEG decoding program (first program), 41g JPEG decoding program (second program), 42s image correction program (first program), 42g image correction program (second program) Program), 43s color conversion program (first program), 43
g Color conversion program (second program), 44s halftone program (first program), 44g halftone program (second program).
Claims (8)
、
汎用命令を実行する汎用命令演算部、および上記複数種別の画像処理のうちの一部にお
ける所定の演算を専用命令として上記汎用演算部より高速に実行する専用命令演算部をそ
れぞれ有し、上記専用命令演算部により上記汎用命令演算部に比べ高速実行可能な種別の
画像処理の一部または全部をそれぞれ上記専用命令演算部を使用して実行し、同一領域の
画像データに対して上記複数種別の画像処理を順番に施す複数の処理部と、
汎用命令と専用命令で画像処理を記述した第1のプログラム、および汎用命令で画像処
理を記述した第2のプログラムを記憶するメモリとを備え、
上記複数の処理部のうちの1または複数の処理部は、負荷バランスに応じて、それぞれ
、上記複数の処理部のうちの別の処理部に関して上記専用命令演算部で上記汎用命令演算
部より高速実行可能な種別の画像処理の一部を実行し、
上記処理部は、2以上の種別の画像処理を実行する場合、上記専用命令演算部で専用命
令を実行可能な種別については上記第1のプログラムを実行し、それ以外の種別について
は上記第2のプログラムを実行すること、
を特徴とする画像処理装置。 In an image processing apparatus that sequentially performs multiple types of image processing on image data in the same region,
A general-purpose instruction calculation unit that executes a general-purpose instruction, and a dedicated instruction calculation unit that executes a predetermined calculation in a part of the plurality of types of image processing as a dedicated instruction at a higher speed than the general-purpose calculation unit. The instruction calculation unit executes part or all of the types of image processing that can be executed at a higher speed than the general-purpose instruction calculation unit by using the dedicated instruction calculation unit. A plurality of processing units for sequentially performing image processing;
A first program that describes image processing with a general-purpose instruction and a dedicated instruction, and a memory that stores a second program that describes image processing with a general-purpose instruction;
One or more processing units of the plurality of processing units are faster than the general-purpose command calculation unit in the dedicated instruction calculation unit with respect to another processing unit of the plurality of processing units, respectively, according to load balance. Execute some of the types of image processing that can be performed,
When executing the image processing of two or more types, the processing unit executes the first program for the types that can execute the dedicated instruction in the dedicated command calculation unit, and the second for the other types. Running the program,
An image processing apparatus.
、
汎用命令を実行する汎用命令演算部、および上記複数種別の画像処理のいずれかにおけ
る所定の演算を専用命令として上記汎用命令演算部より高速に実行する専用命令演算部を
それぞれ有する複数の処理部により、各種別の画像処理の一部または全部を上記専用命令
演算部を使用して実行してパイプライン処理を行うパイプライン処理部と、
汎用命令と専用命令で画像処理を記述した第1のプログラム、および汎用命令で画像処
理を記述した第2のプログラムを記憶するメモリとを備え、
上記パイプライン処理を構成する複数の処理部のうちの少なくとも1つの処理部は、上
記パイプライン処理においてボトルネックとなる種別の画像処理を上記汎用命令演算部の
みで実行し、
上記処理部は、2以上の種別の画像処理を実行する場合、上記専用命令演算部で専用命
令を実行可能な種別については上記第1のプログラムを実行し、それ以外の種別について
は上記第2のプログラムを実行すること、
を特徴とする画像処理装置。 In an image processing apparatus that sequentially performs multiple types of image processing on image data in the same region,
A plurality of processing units each having a general-purpose command calculation unit that executes a general-purpose command and a dedicated command calculation unit that executes a predetermined calculation in any of the plurality of types of image processing as a dedicated command at a higher speed than the general-purpose command calculation unit; A pipeline processing unit that executes pipeline processing by executing part or all of various image processing using the dedicated instruction arithmetic unit;
A first program that describes image processing with a general-purpose instruction and a dedicated instruction, and a memory that stores a second program that describes image processing with a general-purpose instruction;
At least one processing unit of the plurality of processing units constituting the pipeline processing executes the type of image processing that becomes a bottleneck in the pipeline processing only by the general-purpose instruction calculation unit,
When executing the image processing of two or more types, the processing unit executes the first program for the types that can execute the dedicated instruction in the dedicated command calculation unit, and the second for the other types. Running the program,
An image processing apparatus.
前記複数の処理部が形成される1チッププロセッサ内に形成され前記複数の処理部をリ
ード/ライト可能なスタティックRAMを有するプロセッサ内部メモリと、
前記複数の処理部とプロセッサ内部メモリとを接続する、上記バスとは別のローカルバ
スとを備え、
上記バスおよび上記外部メモリは、画像処理間のデータ転送の第1の経路に使用され、
上記ローカルバスおよび上記プロセッサ内部メモリは、画像処理間のデータ転送の上記
第1の経路とは別の第2の経路に使用されること、
を特徴とする請求項1または請求項2記載の画像処理装置。 An external memory connected to the plurality of processing units via a bus;
A processor internal memory having a static RAM formed in a one-chip processor in which the plurality of processing units are formed and capable of reading / writing the plurality of processing units;
A local bus different from the bus for connecting the plurality of processing units and the processor internal memory,
The bus and the external memory are used for a first path of data transfer between image processing,
The local bus and the processor internal memory are used for a second path different from the first path for data transfer during image processing;
The image processing apparatus according to claim 1, wherein:
RAMを有し、そのスタティックRAMに前記画像処理の処理条件を指定するパラメータ
を格納するプロセッサ内部メモリと、
前記複数の処理部とプロセッサ内部メモリとを接続するローカルバスとを備え、
前記複数の処理部は、上記プロセッサ内部メモリに格納された上記パラメータを読み出
し、そのパラメータで指定される処理条件で前記画像処理を実行すること、
を特徴とする請求項1または請求項2記載の画像処理装置。 A processor internal memory that has a static RAM that is formed in the processor and is readable / writable from the plurality of processing units, and that stores parameters for specifying processing conditions for the image processing in the static RAM;
A local bus connecting the plurality of processing units and the processor internal memory,
The plurality of processing units read the parameters stored in the processor internal memory, and execute the image processing under processing conditions specified by the parameters;
The image processing apparatus according to claim 1, wherein:
、自己の内蔵する上記専用命令演算部で上記汎用命令演算部より高速実行可能な種別の画
像処理の一部または全部と、上記複数の処理部のうちの別の処理部に関して上記専用命令
演算部で上記汎用命令演算部より高速実行可能な種別の画像処理の一部をマルチタスク並
列処理で実行することを特徴とする請求項1または請求項2記載の画像処理装置。 One or a plurality of processing units of the plurality of processing units is a type of image processing that can be executed at higher speed than the general-purpose command calculation unit by the dedicated command calculation unit built therein, according to load balance. A part of the image processing of a type that can be executed at higher speed than the general-purpose instruction arithmetic unit in the dedicated instruction arithmetic unit with respect to another or all of the processing units and another processing unit of the plurality of processing units by multitask parallel processing The image processing apparatus according to claim 1, wherein:
割合決定手段と、
画像処理の開始時点における上記分散割合でその画像処理を2以上の処理部に分散して
それぞれ実行させる開始処理手段と、
を備えることを特徴とする請求項1から請求項5のうちのいずれか1項記載の画像処理
装置。 A distribution ratio determining means for monitoring a load balance of the plurality of processing units and periodically determining a distribution ratio of image processing;
Start processing means for distributing the image processing to two or more processing units at the distribution ratio at the start of the image processing, respectively,
The image processing apparatus according to claim 1, further comprising:
求項6のうちのいずれか1項記載の画像処理装置と、
上記画像処理装置による処理後の画像データに基づいて画像を印刷する印刷手段と、
を備えることを特徴とする印刷装置。 The image processing apparatus according to any one of claims 1 to 6, wherein at least color conversion and halftone are executed as the plurality of processes.
Printing means for printing an image based on image data processed by the image processing apparatus;
A printing apparatus comprising:
、
汎用命令を実行する汎用命令演算部、および上記複数種別の画像処理のうちの一部にお
ける所定の演算を専用命令として上記汎用演算部より高速に実行する専用命令演算部をそ
れぞれ有する複数の処理部を使用して、上記専用命令演算部により上記汎用命令演算部に
比べ高速実行可能な種別の画像処理の一部または全部をそれぞれ上記専用命令演算部を使
用して実行し、同一領域の画像データに対して上記複数種別の画像処理を順番に施し、
負荷バランスに応じて、上記複数の処理部のうちの1または複数の処理部により、それ
ぞれ、上記複数の処理部のうちの別の処理部に関して上記専用命令演算部で上記汎用命令
演算部より高速実行可能な種別の画像処理の一部を実行し、2以上の種別の画像処理を実
行する場合、上記専用命令演算部で専用命令を実行可能な種別については上記第1のプロ
グラムを実行し、それ以外の種別については上記第2のプログラムを実行すること、
を特徴とする画像処理方法。 In an image processing method for sequentially performing a plurality of types of image processing on image data in the same region,
A plurality of processing units each having a general-purpose command calculation unit that executes a general-purpose command and a dedicated command calculation unit that executes a predetermined calculation in a part of the plurality of types of image processing as a dedicated command at a higher speed than the general-purpose calculation unit Using the dedicated instruction calculation unit, the dedicated instruction calculation unit executes part or all of image processing of a type that can be executed at a higher speed than the general-purpose instruction calculation unit. For the above-mentioned multiple types of image processing in order,
Depending on the load balance, one or more processing units of the plurality of processing units are faster than the general-purpose command calculation unit in the dedicated instruction calculation unit with respect to another processing unit of the plurality of processing units, respectively. When executing part of the image processing of the executable type and executing two or more types of image processing, the first program is executed for the type that can execute the dedicated command in the dedicated command calculation unit, For other types, execute the second program.
An image processing method characterized by the above.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004318868A JP2006133839A (en) | 2004-11-02 | 2004-11-02 | Image processing device, print device and image processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004318868A JP2006133839A (en) | 2004-11-02 | 2004-11-02 | Image processing device, print device and image processing method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006133839A true JP2006133839A (en) | 2006-05-25 |
Family
ID=36727374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004318868A Withdrawn JP2006133839A (en) | 2004-11-02 | 2004-11-02 | Image processing device, print device and image processing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006133839A (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010205083A (en) * | 2009-03-04 | 2010-09-16 | Canon Inc | Parallel processing processor system |
JP2011061454A (en) * | 2009-09-09 | 2011-03-24 | Fuji Xerox Co Ltd | Image processor and image forming apparatus |
US8422830B2 (en) | 2007-01-11 | 2013-04-16 | Hitachi, Ltd. | Image processing system with an address snooping apparatus |
US8466921B2 (en) | 2007-04-26 | 2013-06-18 | Canon Kabushiki Kaisha | Image processing apparatus and method for load balancing of plural types of image processing in plural processors |
JP2013134537A (en) * | 2011-12-26 | 2013-07-08 | Fujitsu Ltd | Program, information processing method, and information processor |
JP2014160516A (en) * | 2014-06-09 | 2014-09-04 | Univ Of Tokyo | Image processor and image processing method |
JP7459930B2 (en) | 2020-03-25 | 2024-04-02 | 日本電気株式会社 | Encrypted terminal, cryptographic management device, encrypted communication system, method and program |
-
2004
- 2004-11-02 JP JP2004318868A patent/JP2006133839A/en not_active Withdrawn
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8422830B2 (en) | 2007-01-11 | 2013-04-16 | Hitachi, Ltd. | Image processing system with an address snooping apparatus |
US8466921B2 (en) | 2007-04-26 | 2013-06-18 | Canon Kabushiki Kaisha | Image processing apparatus and method for load balancing of plural types of image processing in plural processors |
JP2010205083A (en) * | 2009-03-04 | 2010-09-16 | Canon Inc | Parallel processing processor system |
US8397033B2 (en) | 2009-03-04 | 2013-03-12 | Canon Kabushiki Kaisha | Parallel processing processor system |
JP2011061454A (en) * | 2009-09-09 | 2011-03-24 | Fuji Xerox Co Ltd | Image processor and image forming apparatus |
JP2013134537A (en) * | 2011-12-26 | 2013-07-08 | Fujitsu Ltd | Program, information processing method, and information processor |
JP2014160516A (en) * | 2014-06-09 | 2014-09-04 | Univ Of Tokyo | Image processor and image processing method |
JP7459930B2 (en) | 2020-03-25 | 2024-04-02 | 日本電気株式会社 | Encrypted terminal, cryptographic management device, encrypted communication system, method and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7200287B2 (en) | Method and apparatus for image processing, and a computer product | |
JP4090908B2 (en) | Image processing apparatus and image forming apparatus | |
US7599087B2 (en) | Method and apparatus for image processing, and a computer product | |
JP4143302B2 (en) | Image processing apparatus, image processing method, control program, and recording medium | |
JP2006133839A (en) | Image processing device, print device and image processing method | |
US6967744B1 (en) | Image processing apparatus and method having a digital signal processor | |
JP2006163674A (en) | Image processing device, printer, and load distribution method | |
JP2006163673A (en) | Image processing device, printer, and load distribution method | |
JP2006163672A (en) | Image processing device and method, and printer | |
JP2001156968A (en) | Image processor | |
US6963420B1 (en) | Image processing apparatus | |
JP3714840B2 (en) | Data transfer method and data transfer control device | |
JP4086556B2 (en) | Image processing apparatus and control method thereof | |
US6535971B1 (en) | Data processing system having plurality of processors and executing series of processings in prescribed order | |
JP4034323B2 (en) | Image data processing method, image data processing apparatus, and image forming apparatus | |
JP3938837B2 (en) | Image processing device | |
US20030107577A1 (en) | Data processing system having a plurality of processors and executing a series of processings in a prescribed order | |
JP2003241983A (en) | Information processor and information processing method | |
JP2003250031A (en) | Image processing apparatus and image processing method | |
US7145700B1 (en) | Image processing system including synchronous type processing unit and asynchronous type processing unit and image processing method | |
JP2006187906A (en) | Image processing apparatus, printing apparatus and image processing method | |
JP2002359743A (en) | Image processing device, image processing method and program to allow computer to execute the method, and computer-readable recording medium for recording the program | |
JP2006166190A (en) | Image processor, printer, and image processing method | |
JP2007221520A (en) | Image processor, image processing method, and image processing program | |
JP2002245447A (en) | Image processor, program, and recording medium with program recorded thereon |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20070404 |
|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080108 |