(57)【特許請求の範囲】
【請求項１】
制御手段と、
記憶手段と、
前記制御手段とはエンディアンが異なり前記記憶手段にアクセスする際にエンディアン変換を必要とする第１のアクセス手段及び前記制御手段とはエンディアンが異なるが前記記憶手段にアクセスする際にエンディアン変換を必要としない第２のアクセス手段を含む複数のアクセス手段と、
前記制御手段及び前記記憶手段が接続される第１のバスと、
前記複数のアクセス手段が接続される第２のバスと、
前記第１のバスと前記第２のバスとを接続する接続手段と
を有し、
前記接続手段からアクセス可能な前記記憶手段の領域には、エンディアン変換領域とエンディアン非変換領域が含まれ、
前記第１のアクセス手段は、前記記憶手段にアクセスする際に前記エンディアン変換領域を選択し、前記第２のアクセス手段は、前記記憶手段にアクセスする際に前記エンディアン非変換領域を選択し、
前記接続手段は、前記第１のアクセス手段が前記エンディアン変換領域を選択した場合には、エンディアン変換を実行し、前記第２のアクセス手段が前記エンディアン非変換領域を選択した場合には、前記エンディアン変換を実行しないことを特徴とするデータ処理装置。
【請求項２】
前記エンディアン変換領域と前記エンディアン非変換領域の割り当ては、前記データ処理装置の構成に応じて変更可能であることを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記エンディアン変換領域と前記エンディアン非変換領域の割り当ては、前記接続手段のレジスタの設定を変更することにより変更可能であることを特徴とする請求項２に記載のデータ処理装置。
【請求項４】
制御手段と、
記憶手段と、
前記制御手段とはエンディアンが異なり前記記憶手段にアクセスする際にエンディアン変換を必要とする第１のアクセス手段及び前記制御手段とはエンディアンが異なるが前記記憶手段にアクセスする際にエンディアン変換を必要としない第２のアクセス手段を含む複数のアクセス手段と、
前記制御手段及び前記記憶手段が接続される第１のバスと、
前記複数のアクセス手段が接続される第２のバスと、
前記第１のバスと前記第２のバスとを接続する接続手段と
を有し、
前記接続手段からアクセス可能な前記記憶手段の領域には、エンディアン変換領域とエンディアン非変換領域が含まれる、
データ処理装置におけるデータ処理方法であって、
前記第１のアクセス手段は、前記記憶手段にアクセスする際に前記エンディアン変換領域を選択し、前記第２のアクセス手段は、前記記憶手段にアクセスする際に前記エンディアン非変換領域を選択するステップと、
前記接続手段が、前記第１のアクセス手段が前記エンディアン変換領域を選択した場合には、エンディアン変換を実行し、前記第２のアクセス手段が前記エンディアン非変換領域を選択した場合には、前記エンディアン変換を実行しないステップと、
を含むことを特徴とするデータ処理方法。
【請求項５】
請求項４に記載の方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置に関し、特にホストコンピュータ等の外部装置から受信した画像データに対して施す画像処理に関して画像データの解像度変換や、圧縮伸張、一時記憶などのスプール機能ブロックを、画像処理装置がもつ内部のバスへと接続することで、容易に拡張できる画像処理装置に関する。
【０００２】
【従来の技術】
従来から、ネットワーク上に接続されており、各種のデータを保持するホストコンピュータなどから、ビットマップやページ記述言語で記述された画像データを受信し、紙などの記録媒体上に画像として記録する画像処理装置がある。
【０００３】
近年では、複写機もデジタル化されて、デジタル信号の画像データに対して、解像度変換や圧縮伸張を行い、またＨＤＤ（ハードディスクドライブ：固定ディスク駆動装置）などの不揮発性記録媒体に対して画像データを記録することなどの処理を行っている。また、その解像度変換や圧縮伸張、またＨＤＤなどを接続するためのインターフェース部分は、他の画像処理装置の機種でも使用可能なように、その回路ブロックを接続するための入出力を予め決めておき、これに準ずるものは他の機種でも流用可能なように設計されている。これにより、同様な機能ブロックを機種ごとに設定することによる開発費の増加を防ぎ、開発日程を短縮することが行われつつある。
【０００４】
【発明が解決しようとする課題】
しかしながら、上述したような従来技術においては、次のような解決すべき課題がある。
【０００５】
（１）画像処理装置の制御などを行うＣＰＵには、ビッグエンディアン（Big Endian）とリトルエンディアン（Little Endian）の２種類があり、両者の間ではデータバス上のアドレスの割り振りが異なっている。例えば、ＡＢＣＤ（Ａが最上位バイト（ＭＳＢ））を格納する場合、ビックエンディアンではＡＢＣＤの順に格納するが、リトルエンディアンの場合はＤＣＢＡのようになる。よって、リトルエンディアンのＣＰＵ（中央演算処理ユニット）用に設計された画像処理などを行う回路と、ビッグエンディアンのＣＰＵ用に設計された画像処理などを行う回路とが混在して使用された場合、ソフトウェアでＣＰＵを介してアクセスしようとしたアドレスと、画像処理などを行う回路が割り当てられたアドレスとに不一致が発生し、結果的に、誤ったアドレスにデータが書き込まれたり、また誤ったアドレスのデータが読まれることになる。
【０００６】
また、ビッグエンディアンのＣＰＵと、リトルエンディアンのＣＰＵ用に設計された画像処理の回路を接続した場合も、上記と同様なことが発生する。
【０００７】
（２）画像処理などを行う回路それぞれで、１番目の画素を示すデータがデータバス上のＭＳＢ（最上位バイト）であるか、ＬＳＢ（最下位バイト）であるかが異なっている場合がある。これにより、画素を読み出す順序がいれかわり、結果的に誤ったデータを処理してしまう場合がある。
【０００８】
（３）上記した（１）または（２）のように、データバス上で画像データの整合をそれぞれの画像処理の回路ごとに行うために、ソフトウェアによってデータの並びを変更することが行われることがあるが、データ処理の時間が膨大になっている。
【０００９】
本発明の目的は、以上のような課題を解決し、ビッグエンディアンのＣＰＵ用に作成された画像処理などの回路と、リトルエンディアン用に作成された画像処理回路とが混在した場合、または先頭画素の位置がデータバス上で異なっている回路同士が同一システムで使用された場合であっても、ハードウェアで整合をとることで画像処理などの機能を拡張し易い画像処理装置を提供することにある。
【００１０】
上記目的を達成するために、請求項１のデータの処理装置の発明は、制御手段と、記憶手段と、前記制御手段とはエンディアンが異なり前記記憶手段にアクセスする際にエンディアン変換を必要とする第１のアクセス手段及び前記制御手段とはエンディアンが異なるが前記記憶手段にアクセスする際にエンディアン変換を必要としない第２のアクセス手段を含む複数のアクセス手段と、前記制御手段及び前記記憶手段が接続される第１のバスと、前記複数のアクセス手段が接続される第２のバスと、前記第１のバスと前記第２のバスとを接続する接続手段とを有し、前記接続手段からアクセス可能な前記記憶手段の領域には、エンディアン変換領域とエンディアン非変換領域が含まれ、前記第１のアクセス手段は、前記記憶手段にアクセスする際に前記エンディアン変換領域を選択し、前記第２のアクセス手段は、前記記憶手段にアクセスする際に前記エンディアン非変換領域を選択し、前記接続手段は、前記第１のアクセス手段が前記エンディアン変換領域を選択した場合には、エンディアン変換を実行し、前記第２のアクセス手段が前記エンディアン非変換領域を選択した場合には、前記エンディアン変換を実行しないことを特徴とする。
【００２３】
（作用）
上記構成により、本発明では、画像処理回路を拡張して、それら拡張した画像処理回路が、ビッグエンディアンのＣＰＵ用に設計されたものと、リトルエンディアンのＣＰＵ用に設計されたものとが混在して、画像処理装置のバスにそれぞれ接続されたとしても、ソフトウェアでデータの並びを変更しなくとも、誤ったアドレスに画像データがリード／ライトされることを防ぐことが可能となる。
【００２４】
また同様に、本発明では、ビッグエンディアンのＣＰＵと、リトルエンディアンのＣＰＵ用に設計された画像処理の回路とが接続された場合などのように、ＣＰＵと画像処理回路との間でエンディアンが不整合であったとしても、ソフトウェアでデータの並びを変更しなくとも、誤ったアドレスに画像データがリード／ライトされることを防ぐことが可能となる。
【００２５】
また同様に、本発明では、画素の先頭がＬＳＢである画像処理回路と、画素の先頭がＭＳＢである圧縮伸張回路との間で、メインメモリに格納されている画像データを共有して使用する場合であっても、ソフトウェアでデータの並びを変更しなくとも、誤った画素データをリード／ライトすることを防ぐことができる。
【００２６】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００２７】
（第１実施形態）
［画像転送系の構成］
図１は本発明の一実施形態の画像処理装置における画像転送系の全体の構成を示す。同図において、１０１は画像処理装置全体の制御を行うＣＰＵであり、ＲＯＭ（リードオンリメモリ）１０３に格納されたプログラムに従って起動され、またＨＤＤ１１０の内部に格納されているプログラムを順次読み込むことで、画像処理装置内部の制御を行っている。１０２はワークＲＡＭ（ランダムアクセスメモリ）であり、ＣＰＵ１０１は必要なデータをここに一時記憶し、演算処理を行い、画像データもここに一時記憶される。ＲＯＭ１０３は不揮発性のメモリであり、ＣＰＵ１０１が起動するために必要なプログラムが予め格納されている。
【００２８】
１０４はバスブリッジであり、ＣＰＵ１０１のＣＰＵバス１１９とＩ／Ｏ（入出力）ブロックが接続された内部バス１２０とを切り離すために用いられ、例えばＩ／Ｏブロック間で画像データを転送している間に、ＣＰＵ１０１がＣＰＵバス１１９上でワークＲＡＭ１０２へ演算処理のためにリード／ライト動作を行えることを可能にするためのものである。また後述のように、バスブリッジ１０４は、ＣＰＵ１０１とＩ／Ｏブロックとの間でエンディアンが異なった場合に、あらかじめ内部のレジスタに設定された情報をもとに、データバスのバイトレイン（Byte Lane）をスワップし、エンディアンの変換を行うものでもある。また後述のように、バスブリッジ１０４は、ビットのＭＳＢとＬＳＢを入れ替える機能も同様に持っている。
【００２９】
１０５はＲＡＭ１０２の内部に格納されている画像データを取り出し、プリンタ１０６へ転送するためのＤＭＡＣ（ダイレクトメモリアクセスコントローラ）機能を含むＩ／Ｆ（インターフェース）回路である。プリンタ１０６は現在バブルジェットや電子写真方式などいろいろな種類のものが製造されているが、１０５のプリンタＩ／Ｆを改良することにより、他のＣＰＵ１０１やＲＡＭ１０２などのほかの部分はそのまま使用できる。１０７はスキャナ１０８から受け取った画像データをＲＡＭ１０２の内部へ転送するＤＭＡＣ機能を含むＩ／Ｆ回路である。仮にスキャナの動作周波数が異なるものが接続された場合であっても、スキャナＩ／Ｆ１０７内部に同期用のＦＩＦＯを搭載することにより、他のＣＰＵ１０１やＲＡＭ１０２などのほかの部分はそのまま使用できるものである。
【００３０】
１０９はＩＤＥ（Integrated Drive Electronics）のＨＤＤ１１０を接続するためのＩＤＥ  Ｉ／Ｆ回路である。ＩＤＥ  Ｉ／Ｆ回路１０９に対してＣＰＵ１０１がリード／ライト要求を行った場合は、ＩＤＥ  Ｉ／Ｆ回路１０９は、ＨＤＤ１１０からデータを読み込む、もしくはＨＤＤ１１０にデータを書きこみ、ＣＰＵ１０１へ応答する。また、ＣＰＵ１０１を介さずに、ＩＤＥ  Ｉ／Ｆ回路１０９により、直接ＨＤＤ１１０とＲＡＭ１０２の間でデータを送受信することも可能である。ＨＤＤ１１０には、ＣＰＵ１０１が制御動作をする上で必要なプログラムが格納させており、また画像データなどの情報を記憶するためにも用いられる。
【００３１】
１１１は画像データの圧縮、伸張を行う機能ブロックである。この圧縮伸張ブロック１１１は、１１２で示す第１ＤＭＡＣ（ＤＭＡＣ１）により、ＲＡＭ１０２の内部に格納されている画像データを取り出し、この取り出したデータを実際に圧縮伸張を行う回路１１３へ転送し、この圧縮伸張回路１１３で圧縮または伸張し終わった画像データを再びＲＡＭ１０２へ格納するものである。
【００３２】
１１４は画像データの解像度を変換する機能ブロックである。この解像度変換ブロック１１４は、１１５で示す第２ＤＭＡＣ（ＤＭＡＣ２）により、ＲＡＭの１０２内部に格納されている画像データを取り出し、実際に解像度変換を行う回路１１６へ転送し、この解像度変換回路１１６で解像度を変換し終わった画像データを、再びＲＡＭ１０２へ格納するものである。
【００３３】
ネットワークＩ／Ｆ１１７は、例えばイーサーネットのプロトコルに対応し、ネットワーク１２１上に接続されているホストコンピュータ１１８からのパケットデータを受信し、ホストコンピュータ１１８が送信してきたデータを取り出して、やはり内蔵されているＤＭＡＣを使用して、貯えたデータをＲＡＭ１０２へ転送するためのものである。ネットワークＩ／Ｆ１１７に一時貯えられたデータは、ＣＰＵ２０１から直接読みだすことも、他のＩ／Ｏブロックから読み出すことも可能である。また、ネットワークＩ／Ｆ１１７は、ＣＰＵ１０１からの書き込み動作に応答して、ネットワーク１２１上の任意のホストコンピュータ１１８にパケットデータを送信することも可能である。
【００３４】
［画像データ転送時の動作］
次に、ＣＰＵ１０１と、圧縮伸張ブロック１１１や解像度変換ブロック１１４などの間でバスブリッジ１０４を介してデータを転送したときの動作例を詳細に述べる。
【００３５】
まず、第一にＣＰＵ１０１がリトルエンディアンであり、内部バス１２０上の圧縮伸張回路ブロック１１１もリトルエンディアンのＣＰＵ用に設計されたものであると仮定する。この場合、ＣＰＵバス１１９、内部バス１２０共にリトルエンディアンであり、バスブリッジ１０４はエンディアンの変換を行う必要がないので、エンディアン変換機能をＯＦＦにし、図２の矢印で示すように、データバス上に同じデータの並びでデータを転送する。
【００３６】
バスブリッジ１０４のエンディアン変換機能のＯＮ／ＯＦＦは、電源立ち上げ後、ソフトウェアによって固定されるものであり、動作中はエンディアン変換機能のＯＮ／ＯＦＦは行わない。
【００３７】
次に、第２の例として、ＣＰＵ１０１がビッグエンディアンであり、内部バス１２０上の圧縮伸張回路ブロック１１１がリトルエンディアンのＣＰＵ用に設計されてあるものと仮定する。この場合、電源立ち上げ後、ソフトウェアによってバスブリッジ１０４のエンディアン変換機能がＯＮされている。
【００３８】
同様に、ＣＰＵバス１１９、内部バス１２０共にビックエンディアンの場合も、バスブリッジ１０４はエンディアンの変換を行う必要がないので、電源立ち上げ後、バスブリッジ１０４のエンディアン変換機能がＯＦＦされている。また、同様に、ＣＰＵ１０１がリトルエンディアンであり、内部バス１２０上の圧縮伸張回路ブロック１１１がビックエンディアンのＣＰＵ用に設計されてある場合は、電源立ち上げ後、ソフトウェアによってバスブリッジ１０４のエンディアン変換機能がＯＮされている。
【００３９】
バスブリッジ１０４で実行されるエンディアン変換は、設計者により数種類のものが考えられるが、本実施形態では一例として以下に詳細に述べるように、アクセスの種類によってエンディアンの変換方法を変化させるものとする。
【００４０】
まず、バスブリッジ１０４のエンディアン変換機能がＯＮされているものと仮定して、図３の上方に示すようなデータの並びで、ＣＰＵバス１１９上にバイトアクセスが発生した場合には、バスブリッジ１０４は、ＣＰＵバス１１９と内部バス１２０の間でバイトレインをひっくり返し、図３の下方に示すような内部バス１２０上のデータの並びに変換する。これにより、例えばビッグエンディアンのＣＰＵバス１１９から０番地にＡＡｈを書き込んだ場合、リトルエンディアンの内部バス１２０上でやはり０番地にＡＡｈが書き込まれることになる。
【００４１】
次に、図４の上方に示すようなデータの並びで、ＣＰＵバス１１９上にハーフ・ワード（Half-word）アクセス（１６ビットアクセス）が発生した場合には、バスブリッジ１０４は、ＣＰＵバス１１９と内部バス１２０の間で１６ビット単位でデータバス上の値をひっくり返し、図４の下方に示すような内部バス１２０上のデータの並びに変換する。これにより、例えばビッグエンディアンのＣＰＵバス１１９から０番地にＡＡＢＢｈを書き込んだ場合、リトルエンディアンの内部バス１２０上でやはり０番地にＡＡＢＢｈが書き込まれ、ソフトウェアからみて整合がとれていることになる。
【００４２】
最後に、図５の上方に示すようなデータの並びで、ＣＰＵバス１１９上にワード(Word)アクセス（３２ビットアクセス）が発生した場合は、図５の下方に示すように、バスブリッジ１０４はデータバス上でのスワップ動作は行わず、そのままデータを内部バス１２０上に出力する。これは、例えば、ビッグエンディアンのＣＰＵバス１１９から０番地にＡＡＢＢＣＣＤＤｈを書き込んだ場合、リトルエンディアンの内部バス１２０上でやはり０番地にＡＡＢＢＣＣＤＤｈが書き込まれることになり、やはりソフトウェアからみて整合がとれていることになる。
【００４３】
しかし、上記のようなエンディアン変換だけを行ったときには、下記に記述するような場合にソフトウェアからみて誤ったアドレスにデータを書き込む、または誤ったアドレスからデータを読み込むことがある。つまり、仮にビッグエンディアンのＣＰＵ１０１からＩＤＥ  Ｉ／Ｆ１０９に対して３２ビット単位でデータを書き込んだとする。このとき、図６に示すように、３２ビットアクセスであるので、バスブリッジ１０４はＣＰＵバス１１９と内部バス１２０の間でデータのスワップは行わず、そのままデータを転送する。このとき、ＩＤＥ  Ｉ／Ｆ１０９は、リトルエンディアンのＣＰＵ用に設計されたものとすると、リトルエンディアンでの０番地すなわち図６では２２３３ｈ，００１１ｈ，６６７７ｈ，４４５５ｈ．．．の順序でＨＤＤ１１０側へデータを記憶していく。その後、ＨＤＤ１１０からデータをＲＡＭ１０２上に転送するために、ＩＤＥ  Ｉ／Ｆ１０９内部のＤＭＡＣを使用して、転送を開始したとする。このとき、ＨＤＤ１１０の状態とＩＤＥ  Ｉ／Ｆ１０９とのデータ転送が何らかの都合で中断した場合に、またはＩＤＥ  Ｉ／Ｆ１０９の設計によっては、図７に示すように、３２ビット転送と１６ビット転送が混在する可能性がある。
【００４４】
その結果、図７の２ワード目および４ワード目の転送に着目すると、図６で３２ビット転送で書き込んだものを１６ビット転送した場合、上述のエンディアン変換の機能が動作し、本来、ビット０から１５に６６７７ｈが転送されるはずのものが、ビット１６から３１へスワップされ、転送されることにより、誤ったアドレスにデータが転送されてしまう。
【００４５】
このような場合、本実施形態の画像処理装置においては、以下に述べるような手法で、上記のような誤ったアドレスへのアクセスが発生しないようにしている。つまり、例えばＩＤＥ  Ｉ／Ｆ１０９からＲＡＭ１０２の空間をバスブリッジ１０４を介してアクセスする際に、ＲＡＭ１０２のアクセス可能な領域が、８０１に示すように、エンディアン変換を行う領域（エンディアン変換領域）と、エンディアン変換を行わない領域（エンディアン非変換領域）８０２とに分かれており、それら領域８０１．８０２を選択することで、エンディアン変換のＯＮ／ＯＦＦを制御可能になっている。
【００４６】
仮に、図８に示すように、アドレス００００＿００００ｈから００００＿ＦＦＦＦｈまでの領域８０１が内部バス１２０からみてＲＡＭ１０２の領域に割り当てられていたとき、ＩＤＥ  Ｉ／Ｆ１０９が０００１＿００００ｈから０００１＿ＦＦＦＦｈまでのエンディアン非変換領域８０２を介してＲＡＭ１０２へアクセスを行えば、図９に示すように、リトルエンディアンである内部バス１２０上で、ビット０から１５に現れる６６７７ｈというデータを、ビッグエンディアンであるＣＰＵバス１１９上でもビット０から１５で受け取ることができ、図６に示した書き込み時のデータの並びと一致するために、ソフトウェアからみて、誤ったアドレスにデータが書き込まれることがなくなる。
【００４７】
以上述べたように、バスブリッジ１０４を介してＲＡＭ１０２のアクセスする領域を、エンディアン変換を行う領域８０１と、エンディアン変換を行わない領域８０２とに分割し、バス１２０または１１９上でリードまたはライトの転送を開始するマスタのデバイス（例えば、ＩＤＦ  Ｉ／Ｆ  １０９またはＣＰＵ１０１）がそれら領域を選択してアクセスすることにより、ソフトウェアからみて誤ったアドレスにデータが書き込まれ、また誤ったアドレスからデータが読み込まれることを防ぐことが可能となる。
【００４８】
上記の事例では、内部バス１２０からバスブリッジ１０４を介して、ＣＰＵバス１０９へアクセスすることについて述べたが、ＣＰＵバス１０９から内部バス１２０へアクセスする場合も、同様なことが可能である。
【００４９】
（第２実施形態）
次に、本発明の第２実施形態の画像処理装置の画像転送方法について説明する。なお、第２実施形態において、第１実施形態と同様の構成については、同一符号を付して、その詳細な説明を省略する。
【００５０】
本実施形態が第１の実施例と異なる点は、図１０に示すように、バスブリッジ１０４を介して、相手側のバスの空間をみたとき、エンディアン交換を行う領域１００１、１００３と、エンディアン変換を行わない領域１００２を動的にマップすることが可能なようにした点である。
【００５１】
例えば、内部バス１２０上に接続される機能ブロックは画像処理装置のシステム構成によって異なり、内部バス１２０上に接続される機能ブロックが不明のまま、図８に示すようにエンディアン変換を行う領域と、エンディアン変換を行わない領域を固定してしまうと、後にエンディアン変換を行う領域がほとんどであった場合に、エンディアンを行わない領域は未使用領域となり、結果的にメモリ空間のリソースを無駄にしてしまう。
【００５２】
そこで、本実施形態では、エンディアン変換を行う領域１００１、１００３とエンディアン変換を行わない領域１００２の割り当てを、システムが立ち上がったあとでも、バスブリッジ１０４の内部のレジスタ（図示しない）による設定を変更するだけで、変更可能とすることにより、有効にシステムのメモリ空間を利用することができるようにしている。
【００５３】
さらに、本実施形態では、図１０に示すように、解像度変換を行う領域１００３と解像度変換を行わない領域１００１、１００２とのそれぞれにおいて、アクセスする相手側のバスの先頭アドレスを、バスブリッジ１０４のレジスタの設定によって変更可能としている。これにより、エンディアン変換を行った場合でも、またエンディアン変換を行わない場合であっても、ＲＡＭ１０２の同一のメモリ空間をアクセスすることが可能となり、特にメモリを多く実装していないようなシステムではメモリリソースを有効に活用することができるようになる。
【００５４】
（第３実施形態）
次に、本発明の第３実施形態の画像処理装置の画像転送方式について説明する。本実施形態が第１の実施形態と異なる点は、バスブリッジ１０４においてエンディアン変換ではなく、ビットのＭＳＢとＬＳＢをスワップ（交換）することにより、画像データなどの先頭画素のビットアサインが異なるデバイスが同一のバスに接続されても、整合がとれるようにしたものである。
【００５５】
つまり、仮に図１の圧縮伸張回路ブロック１１１では、先頭画素がビット０に割り当てられ、解像度変換回路ブロック１１４ではビット３１が先頭画素として取り扱われているものとして以下説明を行う。
【００５６】
まず、解像度変換回路ブロック１１４に内蔵されている第２ＤＭＡＣ１１５を使用して、ＲＡＭ１０２に格納されている画像データを読み出し、解像度変換回路１１６で解像度変換を行った後、再び第２ＤＭＡＣ１１５を使用してＲＡＭ１０２上にデータを書き戻す。このとき、ＲＡＭ１０２上に画像データのビット３１のＭＳＢ側が先頭画素として記憶されている場合、第２ＤＭＡＣ１１５は図１１に示すビット変換領域１１０１を介してＲＡＭ１０２へアクセスを行う。こうすることにより、図１２に示すようにビットのＭＳＢとＬＳＢがスワップされ、ＬＳＢのビット０に先頭画素のデータが転送される。
【００５７】
一方、圧縮伸張回路ブロック１１１の場合は、内蔵されている第１ＤＭＡＣ１１２が図１１のビット非変換領域１１０２を介してＲＡＭ１０２にアクセスすることにより、ビット３１のＭＳＢが先頭画素のままデータ転送を行うことが可能となる。
【００５８】
以上説明したように、本実施形態では、ビットのスワップを行う領域１１０１と、ビットのスワップを行わない領域１１０２とに分けて転送を行うことにより、画像データの先頭画素のデータの位置が異なるデバイスが混在した場合であっても、同一のシステム上で動作することが可能となる。
【００５９】
（他の実施形態）
なお、本発明は、複数の機器（例えばホストコンピュータ、インターフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００６０】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。プログラムコードを供給するための記憶媒体としては、例えば、フロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００６１】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６２】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された拡張機能ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードは指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６３】
【発明の効果】
以上説明したように、本発明によれば、画像処理装置の内部でバスブリッジ内部のエンディアン変換機能を、アクセスされる領域ごとにＯＮ／ＯＦＦさせることを可能にすることで、ビッグエンディアンやリトルエンディアンといった、アクセスの割り振りが異なるそれぞれのＣＰＵ用に設計されたデバイスを混在させた場合であっても、ソフトウェアからみて整合をとりつつ、データ転送を行うことができる。
【００６４】
また、本発明によれば、エンディアン変換を行う領域とエンディアン変換を行わない領域とを動的に切り替えられるようにし、かつ相手のアクセスするアドレスの位置を変更可能とすることで、メモリリソースを有効に活用することが可能となる。
【００６５】
また、本発明によれば、エンディアンではなく画像データの先頭画素の位置がＬＳＢとＭＳＢで反対になっているデバイスが混在した場合であっても、同一システム上で動作させることが可能となる。
【００６６】
さらに、本発明によれば、上記のようなデータのスワップ動作をハードウェアで実現することにより、ソフトウェアで行ったときよりも、高速化することができる。
【図面の簡単な説明】
【図１】本発明を適用した画像処理装置における画像転送系の全体の構成例を示すブロック図である。
【図２】本発明の第１の実施形態におけるエンディアン変換機能ＯＦＦ時の動作を示す概略概念図である。
【図３】本発明の第１の実施形態における８ビットアクセス時のエンディアン変換動作を示す概略概念図である。
【図４】本発明の第１の実施形態における１６ビットアクセス時のエンディアン変換動作を示す概略概念図である。
【図５】本発明の第１の実施形態における３２ビットアクセス時のエンディアン変換動作を示す概略概念図である。
【図６】本発明の第１の実施形態における３２ビットライト動作時のエンディアン変換動作を示す概略概念図である。
【図７】本発明の第１の実施形態における３２ビット、１６ビット混在時のエンディアン変換動作を示す概略概念図である。
【図８】本発明の第１の実施形態におけるエンディアン変換領域とエンディアン非変換領域を示す概略アドレスマップ図である。
【図９】本発明の第１の実施形態における３２ビット、１６ビット混在時で、エンディアン変換機能ＯＦＦ時の動作を示す概略概念図である。
【図１０】本発明の第２の実施形態におけるエンディアン変換領域とエンディアン非変換領域を示す概略アドレスマップ図である。
【図１１】本発明の第３の実施形態におけるビット変換領域とビット非変換領域を示す概略アドレスマップ図である。
【図１２】本発明の第３の実施形態におけるビット変換動作を示す概略模式図である。
【符号の説明】
１０１  ＣＰＵ
１０２  ＲＡＭ
１０３  ＲＯＭ
１０４  バスブリッジ
１０５  プリンターインターフェース
１０６  プリンタ
１０７  スキャナインターフェース
１０８  スキャナ
１０９  ＩＤＥインターフェース
１１０  ＨＤＤ
１１１  圧縮伸張ブロック
１１２  ＤＭＡＣ１
１１３  圧縮伸張回路
１１４  解像度変換ブロック
１１５  ＤＭＡＣ２
１１６  解像度変換回路
１１７  ネットワークインターフェース
１１８  ホストコンピュータ
１１９  ＣＰＵバス
１２０  内部バス
１２１  ネットワーク
８０１  エンディアン変換領域
８０２  エンディアン非変換領域
１００１  圧縮伸張用・エンディアン変換領域
１００２  ＩＤＥ用・エンディアン非変換領域
１００３  解像度変換用・エンディアン変換領域
１１０１  ビット変換領域
１１０２  ビット非変換領域
【図１】
0004890681.tif 000002
【図２】
0004890681.tif 000003
【図３】
0004890681.tif 000004
【図４】
0004890681.tif 000005
【図５】
0004890681.tif 000006
【図６】
0004890681.tif 000007
【図７】
0004890681.tif 000008
【図８】
0004890681.tif 000009
【図９】
0004890681.tif 000010
【図１０】
0004890681.tif 000011
【図１１】
0004890681.tif 000012
【図１２】
0004890681.tif 000013