説明

情報処理装置、印刷装置及び情報処理方法

【課題】データの抜けをより抑制して間引きしたデータを転送する。
【解決手段】間引回路33は、MCU単位でデータの間引き処理を実行し、DMA転送単位以下の間引き後のデータが出力されるときには、複数のMCUでSDRAM25へデータ転送するよう切り替え、この複数のMCUでのデータ転送の際に、最後のデータ転送が1DMA転送単位に足りないときにはこの最後のデータ転送にダミーデータを付加してデータ転送を実行する。DMA転送単位に足りないときには、データ転送自体が省略されてしまうことがあるが、ここでは、ダミーデータを付加することによりDMA転送単位に足りないデータの転送を確保するのである。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、印刷装置及び情報処理方法に関する。
【背景技術】
【0002】
従来、情報処理装置としては、JPEG圧縮された画像データを展開して回転表示する際に、アドレスジェネレータ及びUVコンバータによって、RAM内のビデオ出力容量域に格納されるべきY,U,Vデータの配列順序やUVデータ値の変更を制御することにより、画像データの展開と同時にRAM内に回転後の画像を配置することができるものが提案されている(例えば、特許文献1参照)。
【特許文献1】特開2000−322566号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ところで、この特許文献1に記載された情報処理装置などでは、画像を扱う基本単位として8×8画素のいわゆるMCU単位を用いて、JPEG圧縮された画像データを展開したり、展開されたあとの画像データを縮小処理したり、表示出力したりする。この画像データの縮小処理においても、MCU単位でいわゆる間引き処理を行い、処理後のデータをRAMに出力することがある。また、所定のデータ量単位で処理を行うことによりRAMへより高速で出力するバースト転送により展開されたあとの画像データの転送を実行することがある。この間引き処理後の画像データをバースト転送で転送する際において、データの間引き処理を実行すると、間引き処理後の画像データのデータ量の全体がバースト転送用のデータ量単位に足りないような場合が生じ、このような場合には、データの出力抜けが起きてしまうことがあった。
【0004】
本発明は、このような課題に鑑みなされたものであり、データの抜けをより抑制して間引きしたデータを転送することができる情報処理装置、印刷装置及び情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【0005】
本発明は、上述の目的を達成するために以下の手段を採った。
【0006】
本発明の情報処理装置は、
画像データを変換して所定の転送データ量単位でデータを記憶手段へ転送する情報処理装置であって、
画像データを構成する画像構成単位でデータの間引き処理を実行する間引き手段と、
前記転送データ量単位以下のデータが前記間引き手段から出力されるときには複数の画像構成単位で前記記憶手段へデータ転送するよう切り替え、該複数の画像構成単位でのデータ転送の際に、最後のデータ転送が前記転送データ量単位に足りないときには該データ転送の間のいずれかにダミーデータを付加してデータ転送を実行するデータ転送手段と、
を備えたものである。
【0007】
この情報処理装置では、画像データを構成する画像構成単位でデータの間引き処理を実行し、転送データ量単位以下の間引き後のデータが出力されるときには、複数の画像構成単位で記憶手段へデータ転送するよう切り替え、この複数の画像構成単位でのデータ転送の際に、最後のデータ転送が転送データ量単位に足りないときにはこのデータ転送の間のいずれかにダミーデータを付加してデータ転送を実行する。このように、転送データ量単位に足りないときには、その足りないデータ転送自体が省略されてしまうことがあるが、ここでは、ダミーデータを付加することにより転送データ量単位に足りないデータの転送がなされるよう確保するのである。したがって、データの抜けをより抑制して間引きしたデータを転送することができる。ここで、「最後のデータ転送が転送データ量単位に足りないとき」は、データ転送の初期(データ転送前など)に判定してもよいし、最後のデータ転送の直近で判定するものとしてもよい。
【0008】
本発明の情報処理装置において、前記データ転送手段は、複数の画像構成単位で前記記憶手段へデータ転送するに際して、2n個(nは1以上の整数)の前記画像構成単位による転送データ量単位でデータ転送を実行し、ダミーデータを付加してデータ転送を実行するに際して、前記画像データにおいて、X軸方向の画像構成単位数がn(a+1)個(aは1以上の整数)であり、該X軸に直交するY軸方向の画像構成単位数が2b+1(bは1以上の整数)であるときには、(b+1)回×(a+2)/2回の2n個の前記画像構成単位によるデータ転送と、b回×a/2回の2n個の前記画像構成単位によるデータ転送と、を実行すると共に、該データ転送の間のいずれかにn個のダミーデータを付加してデータ転送を実行するものとしてもよい。このように、画像データのX軸方向の画像構成単位数がn(a+1)個、即ち、2n個によるX軸方向のデータ転送回数に半端分(n個)があるときは、転送回数として省略されてしまうことがあり、更に、Y軸方向が2b+1、即ち2で割り切れない奇数回数であるときは、画像構成単位によるデータ転送に不足分が生じてしまう。ここでは、データ転送のうち、Y軸方向を(b+1)回とb回との2つに区分すると共に、(b+1)回側の半端分を埋めるデータをb回側から受け、b回側の転送での不足分をn個のダミーデータで補うのである。こうすれば、比較的容易にデータの抜けをより抑制して間引きしたデータを転送することができる。このとき、前記データ転送手段は、X軸方向の画像構成単位数が2n×a個であり、Y軸方向の画像構成単位数がbであるときには、a回×b回の前記画像構成単位によるデータ転送を実行するものとしてもよい。こうすれば、X軸方向に半端がでないときには、X軸方向にa回、Y軸方向にb回という画像の配置を意識したデータ転送を実行することができる。また、このとき、本発明の情報処理装置は、X軸方向の画像構成単位の位置をカウントするX軸カウンタと、前記Y軸方向の画像構成単位の位置をカウントするY軸カウンタと、を備え、前記データ転送手段は、前記Y軸カウンタ値が(b+1)を超える前には、前記X軸カウントエンド値をn(a+2)に設定し前記2n個の画像構成単位のデータ転送を実行すると前記X軸カウンタを2nインクリメントし前記X軸カウンタ値が前記X軸カウントエンド値となると前記Y軸カウンタをインクリメントする一方、前記Y軸カウンタ値が(b+1)を超えたあと前記Y軸カウンタ値がbを超えるまでは前記X軸カウントエンド値をnaに設定し前記2n個の画像構成単位のデータ転送を実行すると前記X軸カウンタを2nインクリメントし、前記Y軸カウンタ値がY軸カウントエンド値であり前記X軸カウンタ値がカウントエンド値となるとデータ転送を終了するものとしてもよい。こうすれば、カウンタを利用してより容易にデータの抜けをより抑制して間引きしたデータを転送することができる。
【0009】
本発明の情報処理装置において、前記データ転送手段は、2n個(nは1以上の整数)の前記画像構成単位による転送データ量単位でデータ転送を実行し、前記画像データにおいて、X軸方向の画像構成単位数がn(c+1)個(cは1以上の整数)であり、該X軸に直交するY軸方向の画像構成単位数が2d(dは1以上の整数)であるときには、d回×(c+2)/2回の2n個の前記画像構成単位によるデータ転送と、d回×c/2回の2n個の前記画像構成単位によるデータ転送と、を実行するものとしてもよい。こうすれば、画像データのX軸方向の画像構成単位数がn(c+1)個、即ち、転送回数として省略されてしまう、2n個によるX軸方向のデータ転送回数に半端分(n個)があり、且つY軸方向が2で割り切れる(2d)ときに、一方の半端分を他方に振り分けてデータ転送を行うことにより、比較的容易にデータの抜けをより抑制して間引きしたデータを転送することができる。
【0010】
本発明の情報処理装置において、前記データ転送手段は、前記複数の画像構成単位でデータ転送するに際して、最後のデータ転送が前記転送データ量単位に足りないときには、該データ転送の最後に前記ダミーデータを付加してデータ転送を実行するものとしてもよい。こうすれば、ダミーデータを取り除きやすい。
【0011】
本発明の情報処理装置において、前記データ転送手段は、前記ダミーデータを付加してデータ転送するに際して、前記画像データに含まれる前記画像構成単位の数と前記データ転送する複数の画像構成単位とにより定められるデータ量の前記ダミーデータを付加してデータ転送を実行するものとしてもよい。こうすれば、比較的容易にダミーデータを付加することができる。このとき、画像データに含まれる画像構成単位の数を前記データ転送する前記間引き処理後の複数の画像構成単位(転送データ量単位)で除算し、その整数解と余りの値から前記ダミーデータのデータ量を求めるものとしてもよい。
【0012】
本発明の印刷装置は、上述したいずれか1つに記載の情報処理装置と、前記情報処理装置により間引き処理された画像データを記憶する記憶手段と、前記記憶された間引き処理後の画像データを印刷媒体へ印刷出力する印刷出力手段と、を備えたものとしてもよい。印刷装置は、画像データを間引き処理して印刷することが多いから、本発明を適用する意義が高い。
【0013】
本発明の情報処理方法は、
画像データを変換して転送データ量単位でデータを記憶手段へ転送する情報処理方法であって、
(a)画像データを構成する画像構成単位でデータの間引き処理を実行するステップと、
(b)前記転送データ量単位以下のデータが前記ステップ(a)で出力されるときには複数の画像構成単位で前記記憶手段へデータ転送するよう切り替え、該複数の画像構成単位でのデータ転送の際に、最後のデータ転送が前記転送データ量単位に足りないときには該データ転送の間のいずれかにダミーデータを付加してデータ転送を実行するステップと、
を含むものである。
【0014】
この情報処理方法では、画像データを構成する画像構成単位でデータの間引き処理を実行し、転送データ量単位以下の間引き後のデータが出力されるときには、複数の画像構成単位で記憶手段へデータ転送するよう切り替え、この複数の画像構成単位でのデータ転送の際に、最後のデータ転送が転送データ量単位に足りないときにはこのデータ転送の間のいずれかにダミーデータを付加してデータ転送を実行する。このように、転送データ量単位に足りないときには、その足りないデータ転送自体が省略されてしまうことがあるが、ここでは、ダミーデータを付加することにより転送データ量単位に足りないデータの転送を確保するのである。したがって、データの抜けをより抑制して間引きしたデータを転送することができる。なお、この情報処理方法において、上述した情報処理装置の種々の態様を採用してもよいし、また、上述した情報処理装置の各機能を実現するようなステップを追加してもよい。
【発明を実施するための最良の形態】
【0015】
次に、本発明を実施するための最良の形態を図面を用いて説明する。図1は、本発明の一実施形態である印刷装置としてのプリンタ20の構成の概略を示す構成図である。本実施形態のプリンタ20は、装置全体の制御を司るコントローラ21と、1クロックごとにデータを転送するバースト転送可能な一時的にデータを記憶するSDRAM(Synchronous Dynamic RAM)25と、記録紙Sへ画像を印刷処理する印刷機構26と、接続されたパソコンなどの外部機器との間で情報の入出力が可能なインタフェース(I/F)27と、携帯用の記憶媒体であるメモリカード12をスロット28aに装着・取外し可能であるメモリカードコントローラ28と、画像の回転や縮小を実行する回路である画像処理ASIC30と、ユーザへ情報を表示可能でありユーザの指示を入力可能である操作パネル40と、を備えている。コントローラ21は、CPU22を中心とするマイクロプロセッサとして構成されており、各種処理プログラムを記憶したフラッシュROM23と、一時的にデータを記憶するキャッシュメモリ24とを備えている。SDRAM25は、外部バスインターフェイスが一定周期のクロック信号に同期して動作し、1回のアドレス指定で複数のデータをまとめて連続的に転送するバースト転送可能なメインメモリである。印刷機構26は、図示しないが、各色のインクに圧力をかけ、この加圧されたインクを記録紙Sに吐出して印刷処理を実行するインクジェット方式の機構である。なお、インクへ圧力をかける機構は、圧電素子の変形によるものとしてもよいしヒータの熱による気泡の発生によるものとしてもよい。
【0016】
画像処理ASIC30は、メモリカード12などに記憶された圧縮された画像データを解凍して画像データに展開する画像展開回路31と、展開された画像データを所定角度に回転処理する回転回路32と、画像展開回路31によって展開された画像データを間引き処理して縮小する間引回路33と、画像データに所定の処理を実行する際に必要な情報がセットされるレジスタ34と、画像のX軸方向(水平方向)のMCUをカウントするXmcuカウンタ35と、画像のY軸方向(X軸に直交する垂直方向)のMCUをカウントするYmcuカウンタ36と、を備えている。なお、MCUとは、「画像構成単位」であり、画像データを構成する8×8バイトの基本単位である。画像展開回路31は、コントローラ21からの指令に基づいて、メモリカード12などへアクセスし圧縮保存されている画像データを展開(解凍)し、展開した画像データを回転回路32や間引回路33へ出力する処理を行う。回転回路32は、画像展開回路31により展開された画像データや間引回路33によって間引かれた画像データを、例えば90°や180°、270°などの角度に回転する回路である。この回転回路32は、回転後の画像データをDMA(Direct Memory Access)によりSDRAM25へ書き込む処理を実行する。間引回路33は、入力した画像データを、1/2間引き、1/4間引き、1/8間引きを単純間引きにより実行する回路として構成されている。この間引回路33は、レジスタ34にセットされている値やXmcuカウンタ35,Ymcuカウンタ36を用いて間引き処理を実行し、間引き後の画像データを、回転回路32へ出力したり、DMAによりSDRAM25へ書き込む処理を実行したりする。レジスタ34は、画像データのサイズに関する情報(例えばX軸方向のMCU数、Y軸方向のMCU数など)や間引き率、回転角度などの各種設定値をセット・リセットする回路として構成されている。Xmcuカウンタ35は、レジスタ34にセットされたX軸の最後のMCU番号であるXend値と値「0」との間でカウント可能なアップダウンカウンタとして構成されている。このXmcuカウンタ35は、MCUの内部のアドレスを生成する図示しないXカウンタ及びYカウンタが所定値(ここでは8×8)までカウントされると、アップ・ダウンカウントのいずれかに従ってカウンタ値が値「1」変更されるよう構成されている。また、Ymcuカウンタ36は、Xmcuカウンタ35がXend値と値「0」との間ですべてカウントされると、アップ・ダウンカウントのいずれかに従ってカウンタ値が値「1」変更されるよう構成されている。なお、ここでは説明の便宜のため、Xmcuカウンタ35及びYmcuカウンタ36について、カウントアップする場合について主に説明する。
【0017】
操作パネル40は、ユーザがプリンタ20に対して各種の指示を入力するためのデバイスであり、カラー画像を表示する液晶パネルにより構成され各種の指示に応じた文字や画像が表示される表示部42や、カーソルなどを移動させるときに押下されるカーソルキーや処理選択などを決定するときに押下される決定キーなどが配置され各種操作を行う操作部44が設けられている。コントローラ21やSDRAM25、印刷機構26、I/F27、メモリカードコントローラ28、画像処理ASIC30、操作パネル40は、バス29によって電気的に接続されている。また、メモリカード12は、データの書き込み及び消去可能な不揮発性のメモリであり、デジタルカメラなどの撮影装置により撮影された複数の画像ファイルなどが保存されている。この画像ファイルには、例えば、所定形式(例えばJPEG形式)で圧縮された画像データとこの画像データの付加情報(撮影日時や撮影モードなど)とが格納されている。
【0018】
このように構成されたプリンタ20では、コントローラ21や印刷機構26、メモリカードコントローラ28、画像処理ASIC30などと、SDRAM25とのアクセスについて、転送速度の高速化や転送効率から経験的に16ビット・4バースト転送、即ち「転送データ量単位」として1度に8バイト単位のデータを転送するように固定的に定められている。
【0019】
次に、こうして構成された本実施形態のプリンタ20の動作について説明する。ここでは、メモリカード12に保存された画像ファイルのうち1つの画像を縮小(間引き)して表示部42に表示及び印刷する場合について主に説明する。なお、画像を回転する処理についての説明は、説明の便宜により省略し、画像を回転しない場合について説明する。まず、最初に、ユーザは、操作部44を操作し表示部42に表示された画像を選択し、縮小処理を実行させる。すると、CPU22は、間引き数や回転角度などの実行条件をレジスタ34にセットし、メモリカードコントローラ28に画像データを画像展開回路31へ出力処理させる。図2は、プリンタ20の画像処理ASIC30により実行される間引き実行ルーチンの一例を示すフローチャートである。この間引き実行ルーチンは、CPU22が送信した画像データの間引き処理指令を画像処理ASIC30が受信したあと、画像処理ASIC30により実行される。
【0020】
このルーチンが開始されると、メモリカードコントローラ28から入力した圧縮されている画像データを画像展開回路31が展開処理する(ステップS100)。なお、このとき、画像展開回路31は、画像データのX軸方向のピクセル数及びMCU数と、Y軸方向のピクセル数及びMCU数とをレジスタ34にセットする処理を行う。こうして、CPU22は、レジスタ34の値を確認することにより画像データのサイズやどのピクセルがどのSDRAM25のアドレスに格納されているかを把握可能となる。ここでは、画像展開回路31は、圧縮されているYUV形式の画像データからRGB形式の画像データへ変換するものとした。図3は、RGBデータに展開したときのMCUの説明図であり、図4は、MCUにより構成される画像データの説明図である。図3に示すように、展開した画像データは、R,G,B,Nullの4つのMCUにより構成されると共に、画像データの1単位としてのMCUは、8×8バイトのデータを含んで構成されている。即ち、R,G,B,Nullの4バイトのデータによって1ピクセルのデータが構成されている。なお、Nullデータは、何も含まれていないデータとしてもよいし、画像データに付帯する情報(例えば撮影日時など)を格納するものとしてもよい。
【0021】
次に、間引き数の値を調べ(ステップS110)、間引き数が1/1,1/2,1/4であるときには、通常の間引き処理を実行し(ステップS120)、そのままこのルーチンを終了する。ここで、通常間引き処理について、例えば、1/1間引き、即ち間引きを実行しないときには、図4に示した画像データの左から右へ、上から下へMCU単位で転送データ量単位である8バイト(2ピクセル)ずつ、間引回路33からSDRAM25へDMAによるバースト転送を実行する。図4は、X軸方向に16ピクセル(2MCU)、Y軸方向に24ピクセル(3MCU)の画像データの一例を示した。例えば、図4において、1番目のMCUのアドレス「0」から「1c」まで転送し、次に「40」から同様に「1dc」まで転送し、続いて2番目のMCUのアドレス「20」から「1fc」まで転送する処理を繰り返し、最後の「5fc」まで転送するのである。また、1/2間引きの際は、図3(a)に示すように、各MCUの左上側4×4ピクセルを転送対象とし、1/4間引きの際は、各MCUの左上側2×2ピクセルを転送対象とし、上記と同様の処理を実行する。なお、間引き数が1/1,1/2,1/4であるときには、X軸方向、Y軸方向のMCUの数が偶数・奇数にかかわらず、1MCUあたり2ピクセル以上存在するから、1DMA転送単位の8バイト単位で転送可能である。このように、通常間引き処理では、画像の左から右へ、上から下へという、画像イメージに合わせたSDRAM25のアドレスに画像処理ASIC30の各回路を介して画像データを転送するのである。
【0022】
一方、間引き数が1/8であるときには、1/8間引き処理を実行し(ステップS130)、このルーチンを終了する。ここで、1/8間引き処理では、図3(a)に示すように、1MCUあたり左上の1ピクセル(4バイト)のデータのみになるから、1MCUでは8バイト単位のバースト転送を実行することができない。このため画像処理ASIC30では、基本的に隣のMCUと合わせて2MCUごとにバースト転送するようにした。ところが、X軸方向のMCU数が奇数であるときやY軸方向のMCU数が奇数であるときなどには、隣のMCUがない場合などがあり、不都合が生じる。ここでは、画像イメージを意識しないアドレスを用いてこの不都合を解消するものとした。具体的な内容を以下に説明する。図5は、1/8間引き処理ルーチンの一例を示すフローチャートである。このルーチンは、画像処理ASIC30の間引回路33によって実行される。このルーチンを開始すると、まず、間引回路33は、Xmcuカウンタ35のカウンタ値Xを値「0」に、Ymcuカウンタ36のカウンタ値Yを値「1」にそれぞれ初期化し(ステップS200)、X軸方向,Y軸方向のMCU数を調べる(ステップS210)。このX軸方向,Y軸方向のMCU数は、レジスタ34にセットされた値を用いるものとした。
【0023】
X軸方向のMCU数が偶数でありY軸方向のMCU数が偶数である場合、及びX軸方向のMCU数が偶数でありY軸方向のMCU数が奇数である場合、即ち、X軸方向のMCU数が2で割り切れる場合は、Y軸方向のMCU数が偶数・奇数にかかわらず、X軸方向に2MCU単位となるから、上述した通常間引き処理と同様に画像イメージを意識したDMA転送処理を実行する。具体的には、間引回路33は、2MCUに対応する2ピクセルのSDRAM25へのデータの書き込み処理を実行し(ステップS220)、Xmcuカウンタ35のカウンタ値を値「2」インクリメントし(ステップS230)、カウンタ値Xがエンド値Xendであるか否かを判定する(ステップS240)。ここでは、エンド値XendをX軸方向の最後のMCU値である値Xmaxとした。カウンタ値Xがエンド値Xendでないときには、間引回路33は、上述したステップS220〜S240の処理を繰り返す。一方、カウンタ値Xがエンド値Xendであるときには、間引回路33は、カウンタ値Xを値「0」にクリアし(ステップS250)、Ymcuカウンタ36のカウンタ値Yがエンド値Yendであるか否かを判定する(ステップS260)。この1/8間引き処理ルーチンでは、エンド値YendをY軸方向の最後のMCU値である値Ymaxとした。カウンタ値Yがエンド値Yendでないときには、カウンタ値Yを値「1」インクリメントし(ステップS270)、カウンタ値Xがエンド値Xendであり且つカウンタ値Yがエンド値Yendに至るまで、上述したステップS220〜S270の処理を繰り返す。カウンタ値Xがエンド値Xendであり且つカウンタ値Yがエンド値Yendであるときには、SDRAM25への画像データの書き込みを完了すると共にCPU22へ割込信号を出力し(ステップS280)、このルーチンを終了する。割込信号を受けたCPU22は、レジスタ34にセットされている値を用いて、SDRAM25のアドレスと画像のピクセルとの関係を把握し、SDRAM25に記憶された画像データを表示部42に表示させたり、印刷機構26に印刷出力させたりする。このように、X軸方向のMCU数が偶数であるときには、画像の左から右へ、上から下へという、画像イメージに合わせたSDRAM25のアドレスに間引回路33が画像データを転送するのである。
【0024】
一方、X軸方向のMCU数が奇数でありY軸方向のMCU数が偶数である場合、即ち、X軸方向のMCU数が2で割り切れず、Y軸方向のMCU数が2で割り切れる場合は、以下の処理を行うものとした。図6は、X軸方向のMCU数が奇数でありY軸方向のMCU数が偶数である場合のDMAで転送するSDRAM25のアドレスの概念図であり、図6(a)が画像イメージを意識したアドレス、図6(b)が画像イメージを意識しないアドレスの概念図である。図6では、1/8間引き後にX軸方向が9MCU、Y方向が10MCUとなる場合のアドレスについて示した。2MCU単位でバースト転送を行う場合、図6(a)に示すように、X軸方向の最後のMCU数である値Xmax(図では値「9」)を2で除算したときに割り切れない小数点以下については回路構成上処理できず、ここでは、転送回数であるDMA数を値「4」として処理してしまい、右端の縦1列分に相当するピクセルについては転送が実行されず、データが欠落してしまう。ここでは、図6(b)に示すように、Y軸方向のMCUを2分割し、一方の奇数分のMCUを他方にずらすような処理を行いDMAによるバースト転送を実行するものとした。
【0025】
具体的には、間引回路33は、Y軸方向の最後のMCU数である値Ymaxを2で除算した値よりもカウンタ値Yが小さいか否かを判定する(ステップS290)。この判定は、図6(b)において、Y軸方向の半分までデータ転送を実行したか否かを判定する処理である。カウンタ値Yが値Ymax/2よりも小さいときには、間引回路33は、エンド値XendにX軸方向の最後のMCU数Xmaxに1を加えた値をセットし(ステップS300)、2MCUに対応する2ピクセルのSDRAM25へのデータの書き込み処理を実行し(ステップS310)、Xmcuカウンタ35のカウンタ値を値「2」インクリメントする(ステップS320)。図6においては、本来、X軸方向にはDMA転送回数が4回となるところ(図6(a))、Y軸方向の半分まではX軸方向に1MCU増やす処理を行うことによりDMA転送回数を5回とするのである(図6(b))。次に、間引回路33は、カウンタ値Xがエンド値Xendに至ったか否かを判定し(ステップS330)、カウンタ値Xがエンド値Xendに至っていないときには、ステップS290以降の処理を実行する。一方、カウンタ値Xがエンド値Xendに至ったときには、カウンタ値Xを値「0」にリセットし(ステップS340)、カウンタYがエンド値Yendに至ったか否かを判定する(ステップS350)。カウンタ値Yがエンド値Yendに至っていないときには、カウンタYの値を1インクリメントし(ステップS360)、即ち次のX軸の列の処理に移行し、ステップS290以降の処理を実行する。この処理を繰り返すうち、ステップS290でカウンタ値Yが値Ymax/2よりも大きいと判定されたときには、エンド値Xendに値Xmaxから1を差し引いた値をセットし(ステップS370)、上述したステップS310以降の処理を実行する。そして、ステップS330でカウンタXがエンド値Xendに至ると共にステップS350でカウンタYがエンド値Yendに至ったときには、SDRAM25への画像データの書き込みを完了すると共にCPU22へ割込信号を出力し(ステップS280)、そのままこのルーチンを終了する。このように、X軸方向のMCU数が奇数でありY軸方向のMCU数が偶数であるときには、画像イメージを意識しないSDRAM25のアドレスに間引回路33が画像データを転送するのである。なお、この処理について、2n個(nは1以上の整数)のMCUによるバースト転送データ量単位(1DMA)でデータ転送を実行し、X軸方向のMCU数がn(c+1)個(cは1以上の整数)であり、Y軸方向のMCU数が2d(dは1以上の整数)であるときには、d回×(c+2)/2回の2n個のMCUによるデータ転送と、d回×c/2回の2n個のMCUによるデータ転送と、を実行するものと一般化することができる。図6の例においては、2MCUによる1DMAでデータ転送を実行し、X軸方向のMCU数が1×(8+1)=9個、Y軸方向のMCU数が2×5=10個であるから、n=1,c=8,d=5であり、5回×5回の2MCUによるデータ転送と、5回×4回の2MCUによるデータ転送と、を実行するのである。
【0026】
一方、X軸方向のMCU数が奇数でありY軸方向のMCU数が奇数である場合、即ち、X軸方向及びY軸方向のMCU数が2で割り切れない場合は、以下の処理を行うものとした。図7は、X軸方向及びY軸方向のMCU数が奇数である場合のDMAで転送するSDRAM25のアドレスの概念図であり、図7(a)が画像イメージを意識したアドレス、図7(b)が画像イメージを意識しないアドレスの概念図である。図7では、1/8間引き後にX軸方向が9MCU、Y方向が9MCUとなる場合のアドレスについて示した。2MCU単位でバースト転送を行う場合、X軸方向が奇数であるときには、図7(a)に示すように、右端の縦1列分に相当するピクセルについては転送が実行されず、データが欠落してしまう。また、上述のようにY軸方向のMCU数が偶数の場合はY軸方向に2分割可能であるが、Y軸方向のMCU数が奇数の場合はY軸方向に2分割すると更に半端が生じる。ここでは、図7(b)に示すように、前半に縦1列分を加算し、後半から縦1列分を減じると共に後半に生じる半端分に合わせてダミーデータを付加する処理を行いDMAによるバースト転送を実行するものとした。このダミーデータは、読み捨てられ、特に内容に意味はないから、どのようなデータを用いてもよい。
【0027】
具体的には、間引回路33は、カウンタ値Yが値Ymaxを2で除算して1を加えた整数解の値よりも小さいか否かを判定する(ステップS380)。この判定は、図7(b)において、Y軸方向の半分より大きな整数の最も小さな値までデータ転送を実行したか否かを判定する処理である。カウンタ値Yが値Ymax/2+1の整数解よりも小さいときには、間引回路33は、エンド値Xendに値Xmaxに1を加えた値をセットし(ステップS390)、カウンタ値Yがエンド値Yendで且つカウンタ値Xがエンド値Xendの2つ前であるか否かを判定する(ステップS400)。この判定は、ダミーデータを付加する処理を実行するか否かを判定するものである。カウンタ値Y=Yend,カウンタ値X=Xend−2を満たしていないときには、2MCUに対応する2ピクセルのSDRAM25へのデータの書き込み処理を実行し(ステップS410)、Xmcuカウンタ35のカウンタ値を値「2」インクリメントする(ステップS420)。図7においては、本来、X軸方向にはDMA転送回数が4回となるところ(図7(a))、Y軸方向の半分過ぎ直後まではX軸方向に1MCU増やす処理を行うことによりDMA転送回数を5回とするのである(図7(b))。次に、間引回路33は、カウンタ値Xがエンド値Xendであるか否かを判定し(ステップS430)、カウンタ値Xがエンド値Xendでないときには、ステップS400以降の処理を実行する。一方、カウンタ値Xがエンド値Xendであるときには、カウンタ値Xを値「0」にリセットし(ステップS440)、カウンタYの値を1インクリメントし(ステップS450)、即ち次のX軸の列の処理に移行し、ステップS380以降の処理を実行する。
【0028】
この処理を繰り返すうち、ステップS380でカウンタ値Yが値Ymax/2+1の整数解よりも大きいと判定されたときには、エンド値Xendに値Xmaxから1を差し引いた値をセットし(ステップS460)、上述したステップS400以降の処理を実行する。そして、ステップS400でカウンタ値Y=Yend,カウンタ値X=Xend−2を満たしているときには、図7(b)に示すように、残り1MCUであることから、1MCUにダミーデータを付加したデータのSDRAM25への書き込み処理を実行し(ステップS470)、SDRAM25への画像データの書き込みを完了すると共にCPU22へ割込信号を出力し(ステップS280)、そのままこのルーチンを終了する。この割込信号を受けたCPU22は、レジスタ34にセットされている値を用いて、最後のMCUはダミーデータであることを把握すると共に、SDRAM25のアドレスと画像のピクセルとの関係を把握し、SDRAM25に記憶された画像データを表示部42に表示させたり、印刷機構26に印刷出力させたりする。
【0029】
このように、X軸方向及びY方向のMCU数がともに奇数であるときには、ダミーデータを更に付加して画像イメージを意識しないSDRAM25のアドレスに間引回路33が画像データを転送するのである。なお、この処理について、2n個(nは1以上の整数)のMCUによるバースト転送データ量単位(1DMA)でデータ転送を実行し、X軸方向のMCU数がn(a+1)個(aは1以上の整数)であり、Y軸方向のMCU数が2b+1(bは1以上の整数)であるときには、(b+1)回×(a+2)/2回の2n個のMCUによるデータ転送と、b回×a/2回の2n個のMCUによるデータ転送と、を実行すると共に、最後のデータ転送でn個のダミーデータを付加してデータ転送を実行するものと一般化することができる。図7の例においては、2MCUによる1DMAでデータ転送を実行し、X軸方向のMCU数が1×(8+1)=9個、Y軸方向のMCU数が2×4+1=9個であるから、n=1,a=8,b=4であり、5回×5回の2MCUによるデータ転送と、最後のデータ転送では1個のダミーデータを含む4回×4回の2MCUによるデータ転送と、を実行するのである。
【0030】
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態の画像処理ASIC30が本発明の情報処理装置であり、このうち、1DMA転送単位が本発明の転送データ量単位に相当し、MCU単位が画像構成単位に相当し、間引回路33が間引き手段及びデータ転送手段に相当し、Xmcuカウンタ35がX軸カウンタに相当し、Ymcuカウンタ36がY軸カウンタに相当する。また、プリンタ20が本発明の印刷装置に相当し、このうち、SDRAM25が記憶手段に相当し、印刷機構26が印刷出力手段に相当する。なお、本実施形態では、プリンタ20の動作を説明することにより本発明の情報処理方法の一例も明らかにしている。
【0031】
以上詳述した本実施形態のプリンタ20によれば、MCU単位でデータの間引き処理を実行し、DMA転送単位以下の間引き後のデータが出力されるときには、複数のMCUでSDRAM25へデータ転送するよう切り替え、この複数のMCUでのデータ転送の際に、最後のデータ転送が1DMA転送単位に足りないときにはこの最後のデータ転送にダミーデータを付加してデータ転送を実行する。DMA転送単位に足りないときには、データ転送自体が省略されてしまうことがあるが、ここでは、ダミーデータを付加することによりDMA転送単位に足りないデータの転送を確保するのである。したがって、データの抜けをより抑制して間引きしたデータを転送することができる。また、データ転送の最後にダミーデータを付加してデータ転送を実行するから、ダミーデータを取り除きやすい。更に、X軸方向のMCU数Xmaxがn(a+1)個(aは1以上の整数)であり、Y軸方向のMCU数Ymaxが2b+1(bは1以上の整数)であるときには、(b+1)回×(a+2)/2回の2n個のMCUによるデータ転送と、b回×a/2回の2n個の前記MCUによるデータ転送と、を実行すると共に、データ転送の間のいずれかにn個のダミーデータを付加してデータ転送を実行するため、データ転送のうち、Y軸方向を(b+1)回とb回との2つに区分すると共に、(b+1)回側の半端分を埋めるデータをb回側から受け、b回側の転送での不足分をn個のダミーデータで補うことにより、比較的容易にデータの抜けをより抑制して間引きしたデータを転送することができる。また、X軸方向のMCU数が2n×a個であり、Y軸方向のMCU数がbであるときには、a回×b回のMCUによるデータ転送を実行するため、X軸方向に半端がでないときには、X軸方向にa回、Y軸方向にb回という画像の配置を意識したデータ転送を実行することができる。更にまた、カウンタ値Yが(b+1)までは、エンド値Xendをn(a+2)に設定し、2n個のMCUのデータ転送を実行するとカウンタ値Xを2nインクリメントしカウンタ値XがXエンド値XendとなるとYmcuカウンタ36をインクリメントする一方、カウンタ値Yが(b+1)のあとb回カウントするまではX軸カウントエンド値をnaに設定し2n個のMCUのデータ転送を実行するとX軸カウンタをインクリメントし、カウンタ値Yがエンド値Yend且つカウンタ値Xがエンド値Xend−2nとなると1MCUとダミーデータとをDMA転送してデータ転送を完了するため、カウンタを利用してより容易にデータの抜けをより抑制して間引きしたデータを転送することができる。そして、2n個(nは1以上の整数)のMCUによるDMA転送単位でデータ転送を実行し、X軸方向のMCU数Xmaxがn(c+1)個(cは1以上の整数)であり、Y軸方向のMCU数Ymaxが2d(dは1以上の整数)であるときには、d回×(c+2)/2回の2nMCUによるデータ転送と、d回×c/2回の2nMCUによるデータ転送と、を実行するため、X軸方向のデータ転送回数に半端分(n個)があり、且つY軸方向が2で割り切れる(2d)ときに、一方の半端分を他方に振り分けてデータ転送を行うことにより、比較的容易にデータの抜けをより抑制して間引きしたデータを転送することができる。そしてまた、プリンタ20は、画像データを間引き処理して印刷することが多いから、本発明を適用する意義が高い。そして更に、画像処理ASIC30が備える各回路により画像展開処理や間引き処理、回転処理などを実行するからソフトウエアによって各処理を実行するのに比してより高速化を図ることができる。
【0032】
なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
【0033】
例えば、上述した実施形態では、転送データ量単位としての1DMA転送単位が16ビット・4バーストの8バイト、2MCU単位としたが、特にこれに限定されず、どのような転送単位としてもよい。また、画像構成単位として1MCU単位としたが、特にこれに限定されず、4MCU単位や8MCU単位としてもよい。また、1/8間引き処理において画像イメージを意識しないアドレスを用いたDMA転送を行うものとしたが、条件によっては、1/2間引きや1/4間引き、1/16間引きにおいても画像イメージを意識しないアドレスを用いたDMA転送を行うものとしてもよい。
【0034】
例えば、図8に示すように、1DMA転送単位が16ビット・8バーストの16バイトとし4MCU単位でDMA転送を実行し2nMCUの転送でX軸方向にnMCUが足りない場合としてもよい。図8は、2nMCUの転送でX軸方向にnMCUが足りなく、Y軸方向のMCU数が奇数である場合のDMAで転送するSDRAM25のアドレスの概念図であり、図8(a)が画像イメージを意識したアドレス、図8(b)が画像イメージを意識しないアドレスの概念図である。図8では、1/4間引き後にX軸方向が18MCU、Y方向が19MCUであり、4MCUの転送でX軸方向に2MCUが足りない場合のアドレスについて示した。このような4MCU単位でバースト転送を行う場合においては、1/4間引き処理や1/8間引き処理によっても、X軸方向が4MCU単位で割り切れない場合には、例えば図8(a)に示すように、右端の縦2列分に相当するピクセルについては転送が実行されず、データが欠落してしまう。また、上述のようにY軸方向のMCU数が奇数の場合はY軸方向に2分割すると更に半端が生じる。ここでは、図8(b)に示すように、前半に縦2列分を加算し、後半から縦2列分を減じると共に後半に生じる半端分に合わせてダミーデータをn=2個付加する処理を行いDMAによるバースト転送を実行するものとした。この処理を実行するにあたり、図5に示した1/8間引き処理ルーチンにおいて、ステップS300,S390でX軸方向の最後のMCU数Xmaxに2を加えた値をエンド値Xendにセットし、ステップS370,S460でX軸方向の最後のMCU数Xmaxに2を減じた値をエンド値Xendにセットし、ステップS310,S320,S410,S420で4MCUの書き込み及びカウンタ値Xを4インクリメントし、ステップS400でカウンタ値Y=Yend,カウンタ値X=Xend−4を満たしているか否かを判定し、ステップS470で2MCU分のダミーデータを2MCUに付加したデータのSDRAM25への書き込み処理を実行するものとすればよい。図8の例においては、X軸方向のMCU数が2×(8+1)=18個、Y軸方向のMCU数が2×9+1=19個、全体で、18×19=342MCUであるから、n=2,a=8,b=9であり、4MCUによる1DMAでデータ転送を実行すると、10回×5回の4MCUによるデータ転送と、最後のデータ転送ではn=4個のダミーデータを含む9回×4回の4MCUによるデータ転送と、を実行することになる。したがって、この場合においても、上述した実施形態での一般化した処理、「2n個のMCUによる1DMAでデータ転送を実行し、X軸方向のMCU数がn(a+1)個であり、Y軸方向のMCU数が2b+1であるときには、(b+1)回×(a+2)/2回の2n個のMCUによるデータ転送と、b回×a/2回の2n個のMCUによるデータ転送と、を実行すると共に、最後のデータ転送でn個のダミーデータを付加してデータ転送を実行する」を満たすのである。なお、図示しないが、例えば、図8において、Y軸方向を偶数の20MCUとした場合には、X軸方向のMCU数が2×(8+1)=18個、Y軸方向のMCU数が2×10=20個、全体で18×20=360MCUであるから、n=2,c=8,d=10であり、4MCUによる1DMAでデータ転送を実行すると、10回×5回の4MCUによるデータ転送と、10回×4回の4MCUによるデータ転送と、を実行することになる。したがって、上述した一般化した処理、「Y軸方向が偶数である場合について、2n個のMCUによる1DMAでデータ転送を実行し、X軸方向のMCU数がn(c+1)個であり、Y軸方向のMCU数が2dであるときには、d回×(c+2)/2回の2n個のMCUによるデータ転送と、d回×c/2回の2n個のMCUによるデータ転送と、を実行する」を満たすのである。こうしても、データの抜けをより抑制して間引きしたデータを転送することができる。
【0035】
あるいは、図9に示すように、1DMA転送単位が16ビット・16バーストの32バイトとし8MCU単位でDMA転送を実行してもよい。図9は、2nMCUの転送でX軸方向にnMCUが足りなく、Y軸方向のMCU数が奇数である場合のDMAで転送するSDRAM25のアドレスの概念図であり、図9(a)が画像イメージを意識したアドレス、図9(b)が画像イメージを意識しないアドレスの概念図である。図9では、1/2間引き後にX軸方向が20MCU、Y方向が19MCUであり、8MCUの転送でX軸方向に4MCUが足りない場合のアドレスについて示した。このような8MCU単位でバースト転送を行う場合においては、1/2間引き処理などによっても、X軸方向が8MCU単位で割り切れない場合には、例えば図9(a)に示すように、右端の縦4列分に相当するピクセルについては転送が実行されず、データが欠落してしまう。また、上述のようにY軸方向のMCU数が奇数の場合はY軸方向に2分割すると更に半端が生じる。ここでは、図9(b)に示すように、前半に縦4列分を加算し、後半から縦4列分を減じると共に後半に生じる半端分に合わせてダミーデータをn=4個付加する処理を行いDMAによるバースト転送を実行するものとした。この処理を実行するにあたり、図5に示した1/8間引き処理ルーチンにおいて、ステップS300,S390でX軸方向の最後のMCU数Xmaxに4を加えた値をエンド値Xendにセットし、ステップS370,S460でX軸方向の最後のMCU数Xmaxに4を減じた値をエンド値Xendにセットし、ステップS310,S320,S410,S420で8MCUの書き込み及びカウンタ値Xを8インクリメントし、ステップS400でカウンタ値Y=Yend,カウンタ値X=Xend−8を満たしているか否かを判定し、ステップS470で4MCU分のダミーデータを4MCUに付加したデータのSDRAM25への書き込み処理を実行するものとすればよい。図9の例においては、X軸方向のMCU数が4×(4+1)=20個、Y軸方向のMCU数が2×9+1=19個、全体で、20×19=380MCUであるから、n=4,a=4,b=9であり、8MCUによる1DMAでデータ転送を実行すると、10回×3回の8MCUによるデータ転送と、最後のデータ転送ではn=4個のダミーデータを含む9回×2回の8MCUによるデータ転送と、を実行することになる。したがって、この場合においても、上述した実施形態での一般化した処理、「2n個のMCUによる1DMAでデータ転送を実行し、X軸方向のMCU数がn(a+1)個であり、Y軸方向のMCU数が2b+1であるときには、(b+1)回×(a+2)/2回の2n個のMCUによるデータ転送と、b回×a/2回の2n個のMCUによるデータ転送と、を実行すると共に、最後のデータ転送でn個のダミーデータを付加してデータ転送を実行する」を満たすのである。なお、図示しないが、例えば、図9において、Y軸方向を偶数の20MCUとした場合には、X軸方向のMCU数が4×(4+1)=20個、Y軸方向のMCU数が2×10=20個、全体で20×20=400MCUであるから、n=4,c=4,d=10であり、8MCUによる1DMAでデータ転送を実行すると、10回×3回の8MCUによるデータ転送と、10回×2回の8MCUによるデータ転送と、を実行することになる。したがって、上述した一般化した処理、「Y軸方向が偶数である場合について、2n個のMCUによる1DMAでデータ転送を実行し、X軸方向のMCU数がn(c+1)個であり、Y軸方向のMCU数が2dであるときには、d回×(c+2)/2回の2n個のMCUによるデータ転送と、d回×c/2回の2n個のMCUによるデータ転送と、を実行する」を満たすのである。こうしても、データの抜けをより抑制して間引きしたデータを転送することができる。
【0036】
あるいは、例えば、図10に示すように、1DMA転送単位が16ビット・8バーストの16バイトとし4MCU単位でDMA転送を実行し、2nMCUの転送でX軸方向にnMCUが足りない以外の場合であってもよい。図10は、2nMCUの転送でX軸方向にnMCUが足りない以外でありY軸方向のMCU数が奇数である場合のDMAで転送するSDRAM25のアドレスの概念図であり、図10(a)が画像イメージを意識したアドレス、図10(b)が画像イメージを意識しないアドレスの概念図である。図10では、1/4間引き後にX軸方向が17MCU、Y方向が19MCUであり、4MCUの転送単位でX軸方向に3MCUが足りない場合のアドレスについて示した。このような4MCU単位でバースト転送を行う場合においては、X軸方向が4MCU単位で割り切れない場合には、例えば図10(a)に示すように、右端の縦1列分に相当するピクセルについては転送が実行されず、データが欠落してしまう。また、上述のようにY軸方向のMCU数が奇数の場合はY軸方向に2分割すると更に半端が生じる。ここでは、図10(b)に示すように、前半と、後半の前半(前後半と称する)と後半の後半(後後半と称する)と、に分割し、前半に足りない縦3列分を加算し、後半から縦3列分を減じ、更にその前後半で足りない縦2列分を後後半から加算し、後後半から縦2列分を減じ更に後半に生じる半端分に合わせてダミーデータを1個付加する処理を行いDMAによるバースト転送を実行するものとした。即ち、図10において、5回×10回=50回の前半のDMA転送と、4×5回=20回の前後半のDMA転送と、ダミーデータを1個付加したDMA転送を含む3×4回=12回の後後半のDMA転送とを実行するのである。このとき、ダミーデータは、画像データに含まれるMCUの数とデータ転送する複数のMCUとにより定めるものとしてもよい。こうすれば、比較的容易にダミーデータを付加することができる。具体的には、例えばダミーデータは、画像データに含まれるMCUの数をデータ転送する複数のMCU(DMA転送単位)で除算し、その整数解と余りの値から求めることができる。例えば、図10においては、全体は17×19=323MCUであり、DMA転送単位の4MCUでこれを除算すると、80余り3であるから、1個のダミーデータが必要であることがわかる。なお、これは上述した実施形態及び別例でも同様である。こうしても、データの抜けをより抑制して間引きしたデータを転送することができる。
【0037】
上述した実施形態では、間引き後の画像データの最後のデータ転送の際にダミーデータを付加するものとしたが、CPU22側がどのアドレスにダミーデータが格納されているかを把握可能であれば、データ転送の間のどのデータ転送に付加してもよく、間引き後の画像データの転送の最初に付加するものとしてもよいし、間引き後の画像データの転送の中間に付加するものとしてもよい。なお、SDRAM25へ転送したあと、CPU22側の画像データの把握のしやすさを考慮すると、間引き後の画像データの転送の最初に付加するものが好ましく、最後に付加するものがより好ましい。
【0038】
上述した実施形態では、X軸方向のMCU数が奇数であるときに、画像データの前半でX軸方向に1MCUを加え画像データの後半でX軸方向から1MCUを減じてデータ転送を実行するものとしたが、特にこれに限定されず、画像データの前半でX軸方向から1MCUを減じ画像データの後半でX軸方向に1MCUを加えたデータ転送を実行するものとしてもよいし、X軸方向に1MCUを加えた転送とX軸方向から1MCUを減じた転送とをY軸方向に交互に行うものとしてもよいし、X軸方向に1MCUを加えた転送とX軸方向から1MCUを減じた転送とをY軸方向にランダムに行うものとしてもよい。こうしても、データの抜けをより抑制して間引きしたデータを転送することができる。
【0039】
上述した実施形態では、Xmcuカウンタ35及びYmcuカウンタ36を用いてDMA転送を実行するものとしたが、X軸方向、Y軸方向に定められたカウンタを用いなくてもよい。また、上述した実施形態では、最後のデータ転送がDMA転送単位に足りないか否かをX軸方向のMCU数やY軸方向のMCU数が偶数・奇数のいずれかにより、データ転送の初期(データ転送前)に判定するものとしたが、最後のデータ転送の直近で判定するものとしてもよい。
【0040】
上述した実施形態では、単純間引きを実行するものとしたが、画像データを間引くものであれば特に限定されず、例えば平均化間引きを実行するものとしてもよい。また、間引く際に、MCUにおいて左上側のピクセルを画像用のピクセルに用いるものとしたが、中心や右下側など、位置のピクセルを用いるものとしてもよい。
【0041】
上述した実施形態では、説明を省略したが、間引回路33により間引きした画像データを回転回路32により回転処理するものとしてもよい。また、上述した実施形態では、画像展開回路31がYUVデータをRGBデータに変換するものとして説明したが、間引回路33がYUVデータを間引き処理すると共にRGBデータに変換し変換したRGBデータをSDRAM25へ出力するものとしてもよい。こうしても、データの抜けをより抑制して間引きしたデータを転送することができる。
【0042】
上述した実施形態では、情報処理装置としてのプリンタ20として説明したが、画像処理ASIC30を用いて画像データを間引く処理を実行するものであれば特に限定されずに用いることができ、本発明の情報処理装置としての電子機器、例えば、デジタルカメラ、デジタルビデオ、携帯電話、テレビ、パソコン、携帯用ゲーム機、家庭用ゲーム機、録画機器(ビデオデッキやHDDデッキ)、PDA(Personal Digital Assistant)などとしてもよい。また、プリンタ20の態様で本発明を説明したが、情報処理方法の態様としてもよいし、この方法のプログラムの態様としてもよい。
【図面の簡単な説明】
【0043】
【図1】本発明の一実施形態であるプリンタ20の構成の概略を示す構成図。
【図2】間引き実行ルーチンの一例を示すフローチャート。
【図3】RGBデータに展開したときのMCUの説明図。
【図4】MCUにより構成される画像データの説明図。
【図5】1/8間引き処理ルーチンの一例を示すフローチャート。
【図6】X軸のMCU数が奇数、Y軸のMCU数が偶数であるアドレスの概念図。
【図7】X軸及びY軸のMCU数が奇数であるアドレスの概念図。
【図8】X軸でnMCUが不足しY軸方向が奇数であるアドレスの概念図。
【図9】X軸でnMCUが不足しY軸方向が奇数であるアドレスの概念図。
【図10】X軸でnMCU以外が不足しY軸方向が奇数であるアドレスの概念図。
【符号の説明】
【0044】
12 メモリカード、20 プリンタ、21 コントローラ、22 CPU、23 フラッシュROM、24 キャッシュメモリ、25 SDRAM、26 印刷機構、27 インタフェース(I/F)、28 メモリカードコントローラ、28a スロット、29 バス、30 画像処理ASIC、31 画像展開回路、32 回転回路、33 間引回路、34 レジスタ、35 Xmcuカウンタ、36 Ymcuカウンタ、40 操作パネル、42 表示部、44 操作部、S 記録紙。

【特許請求の範囲】
【請求項1】
画像データを変換して所定の転送データ量単位でデータを記憶手段へ転送する情報処理装置であって、
画像データを構成する画像構成単位でデータの間引き処理を実行する間引き手段と、
前記転送データ量単位以下のデータが前記間引き手段から出力されるときには複数の画像構成単位で前記記憶手段へデータ転送するよう切り替え、該複数の画像構成単位でのデータ転送の際に、最後のデータ転送が前記転送データ量単位に足りないときには該データ転送の間のいずれかにダミーデータを付加してデータ転送を実行するデータ転送手段と、
を備えた情報処理装置。
【請求項2】
前記データ転送手段は、複数の画像構成単位で前記記憶手段へデータ転送するに際して、2n個(nは1以上の整数)の前記画像構成単位による転送データ量単位でデータ転送を実行し、ダミーデータを付加してデータ転送を実行するに際して、前記画像データにおいて、X軸方向の画像構成単位数がn(a+1)個(aは1以上の整数)であり、該X軸に直交するY軸方向の画像構成単位数が2b+1(bは1以上の整数)であるときには、(b+1)回×(a+2)/2回の2n個の前記画像構成単位によるデータ転送と、b回×a/2回の2n個の前記画像構成単位によるデータ転送と、を実行すると共に、該データ転送の間のいずれかにn個のダミーデータを付加してデータ転送を実行する、請求項1に記載の情報処理装置。
【請求項3】
請求項2に記載の情報処理装置であって、
X軸方向の画像構成単位の位置をカウントするX軸カウンタと、
前記Y軸方向の画像構成単位の位置をカウントするY軸カウンタと、を備え、
前記データ転送手段は、前記Y軸カウンタ値が(b+1)を超える前には、前記X軸カウントエンド値をn(a+2)に設定し前記2n個の画像構成単位のデータ転送を実行すると前記X軸カウンタを2nインクリメントし前記X軸カウンタ値が前記X軸カウントエンド値となると前記Y軸カウンタをインクリメントする一方、前記Y軸カウンタ値が(b+1)を超えたあと前記Y軸カウンタ値がbを超えるまでは前記X軸カウントエンド値をnaに設定し前記2n個の画像構成単位のデータ転送を実行すると前記X軸カウンタを2nインクリメントし、前記Y軸カウンタ値がY軸カウントエンド値であり前記X軸カウンタ値がカウントエンド値となるとデータ転送を終了する、情報処理装置。
【請求項4】
前記データ転送手段は、2n個(nは1以上の整数)の前記画像構成単位による転送データ量単位でデータ転送を実行し、前記画像データにおいて、X軸方向の画像構成単位数がn(c+1)個(cは1以上の整数)であり、該X軸に直交するY軸方向の画像構成単位数が2d(dは1以上の整数)であるときには、d回×(c+2)/2回の2n個の前記画像構成単位によるデータ転送と、d回×c/2回の2n個の前記画像構成単位によるデータ転送と、を実行する、請求項1〜3のいずれか1項に記載の情報処理装置。
【請求項5】
前記データ転送手段は、前記複数の画像構成単位でデータ転送するに際して、最後のデータ転送が前記転送データ量単位に足りないときには、該データ転送の最後に前記ダミーデータを付加してデータ転送を実行する、請求項1〜4のいずれか1項に記載の情報処理装置。
【請求項6】
前記データ転送手段は、前記ダミーデータを付加してデータ転送するに際して、前記画像データに含まれる前記画像構成単位の数と前記データ転送する複数の画像構成単位とにより定められるデータ量の前記ダミーデータを付加してデータ転送を実行する、請求項1〜5のいずれか1項に記載の情報処理装置。
【請求項7】
請求項1〜6のいずれか1項に記載の情報処理装置と、
前記情報処理装置により間引き処理された画像データを記憶する記憶手段と、
前記記憶された間引き処理後の画像データを印刷媒体へ印刷出力する印刷出力手段と、
を備えた印刷装置。
【請求項8】
画像データを変換して転送データ量単位でデータを記憶手段へ転送する情報処理方法であって、
(a)画像データを構成する画像構成単位でデータの間引き処理を実行するステップと、
(b)前記転送データ量単位以下のデータが前記ステップ(a)で出力されるときには複数の画像構成単位で前記記憶手段へデータ転送するよう切り替え、該複数の画像構成単位でのデータ転送の際に、最後のデータ転送が前記転送データ量単位に足りないときには該データ転送の間のいずれかにダミーデータを付加してデータ転送を実行するステップと、
を含む情報処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2009−90543(P2009−90543A)
【公開日】平成21年4月30日(2009.4.30)
【国際特許分類】
【出願番号】特願2007−263212(P2007−263212)
【出願日】平成19年10月9日(2007.10.9)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】