画像変換システム
【課題】 画像変換処理に必要なメモリ領域の削減を図った画像変換システムを提供する。
【解決手段】 画像変換システムは、画像データが展開されるメモリと、前記メモリに展開されている画像データである入力画像データにおける各ラインのアドレスを特定する情報であるラインアドレス情報を取得する、ラインアドレス情報取得手段と、前記ラインアドレス情報取得手段で取得した各ラインのラインアドレス情報をインデックス形式でまとめたインデックスデータを生成する、インデックスデータ生成手段と、前記インデックスデータに基づいて、前記入力画像データの解像度の変換を行い、変換後の画像データを出力画像データとして、前記メモリに格納する、画像変換器と、を備えている。
【解決手段】 画像変換システムは、画像データが展開されるメモリと、前記メモリに展開されている画像データである入力画像データにおける各ラインのアドレスを特定する情報であるラインアドレス情報を取得する、ラインアドレス情報取得手段と、前記ラインアドレス情報取得手段で取得した各ラインのラインアドレス情報をインデックス形式でまとめたインデックスデータを生成する、インデックスデータ生成手段と、前記インデックスデータに基づいて、前記入力画像データの解像度の変換を行い、変換後の画像データを出力画像データとして、前記メモリに格納する、画像変換器と、を備えている。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像変換システムに関し、特に、画像変換処理に必要なメモリ領域の削減を図った画像変換システムに関する。
【背景技術】
【0002】
デジタルカメラ等の普及により、デジタルの画像データを情報処理端末が扱うケースが多くなってきている。このようなデジタルの画像データを扱う情報処理端末は、ユーザの要求により、或いは、画面に表示させるために、画像データの解像度変換を行い、縮小した画像データや、拡大した画像データを生成することがある。例えば、表示画面が横640ピクセル×縦480ピクセルの場合、横3072ピクセル×縦2304ピクセルの画像データは、横640ピクセル×縦480ピクセルの画像データに変換した上で(サイズを縮小した上で)、表示画面で表示する必要がある。
【0003】
また、画像データや、表示画面の縦横比には、3:2、16:9、4:3(いずれも横:縦)などの様々なものが存在する。このため、画像データの縦横比と、表示画面の縦横比が異なる場合には、情報処理端末は、表示画面の縦横比に合うように、画像データの縦横比を変換して、表示画面で表示する必要がある。
【0004】
より詳しく説明すると、まず、図1は、縦横比が同一のまま、画像データを縮小する場合の画像縮小処理を説明する図である。この図1に示すように、画像データを縮小する場合、情報処理端末は、メモリ10に画像データIM1を展開しておき、この画像データIM1の入力サイズと、縮小した画像データIM2の出力サイズと、画像データIM1が格納されているメモリ10内の先頭アドレスと、縮小した画像データを格納するメモリ10の先頭アドレスとを、画像変換器20に出力する。これらを取得した画像変換器20は、指定された先頭アドレスから順次、画像データIM1を取得して、画像の縮小を行い、縮小された画像データを、指定された先頭アドレスに順次格納する。これにより、メモリ10には、縮小された画像データIM2が格納される。
【0005】
図2は、縦横比が異なる場合の画像縮小処理を説明する図である。この図2に示すように、情報処理端末は、メモリ10に画像データIM3を展開しておき、表示画面の縦横比に合うように、この画像データIM3の上下にそれぞれ黒帯データを追加して、メモリ10上に、画像データIM4を生成する。続いて、情報処理端末は、この画像データIM4の入力サイズと、縮小した画像データIM5の出力サイズと、画像データIM4が格納されているメモリ10内の先頭アドレスと、画像データIM5を格納するメモリ10の先頭アドレスとを、画像変換器20に出力する。これらを取得した画像変換器20は、指定された先頭アドレスから順次、画像データIM4を取得して、画像の縮小を行い、縮小された画像データを、指定された先頭アドレスに順次格納する。これにより、メモリ10には、縮小された黒帯付きの画像データIM5が格納される。
【0006】
図3は、縦横比が同一の場合の画像切り出し処理を説明する図である。この図3に示すように、情報処理端末は、メモリ10に画像データIM6を展開しておき、ユーザに指定された部分を切り出して、画像データIM7としてメモリ10に格納する。続いて、情報処理端末は、この画像データIM7の入力サイズと、拡大した画像データIM8の出力サイズと、画像データIM7が格納されているメモリ10内の先頭アドレスと、画像データIM8を格納するメモリ10の先頭アドレスとを、画像変換器20に出力する。これらを取得した画像変換器20は、指定された先頭アドレスから順次、画像データIM7を取得して、画像の拡大を行い、拡大された画像データを、指定された先頭アドレスに順次格納する。これにより、メモリ10には、拡大された画像データIM8が格納される。
【0007】
図4は、縦横比が異なる場合の画像切り出し処理を説明する図である。この図4に示すように、情報処理端末は、メモリ10に画像データIM9を展開しておき、表示画面の縦横比に合うように、この画像データIM9の上下にそれぞれ黒帯データを追加して、メモリ10上に、画像データIM10を生成する。続いて、情報処理端末は、ユーザに指定された部分を切り出して、画像データIM11としてメモリ10に格納する。続いて、情報処理端末は、この画像データIM11の入力サイズと、拡大した画像データIM12の出力サイズと、画像データIM11が格納されているメモリ10内の先頭アドレスと、画像データIM12を格納するメモリ10の先頭アドレスとを、画像変換器20に出力する。これらを取得した画像変換器20は、指定された先頭アドレスから順次、画像データIM11を取得して、画像の拡大を行い、拡大された画像データを、指定された先頭アドレスに順次格納する。これにより、メモリ10には、拡大された画像データIM12が格納される。
【0008】
このような画像表示処理は、CPU等によりソフトウェアにより実行され、画像を拡大/縮小するための解像度変換は、ハードウェアにより構成された画像変換器により実行されている。また、このような画像変換処理を行うための技術は、例えば、特許文献1(特開2003−283815号公報)に開示されている。
【特許文献1】特開2003−283815号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
しかしながら、上述した画像変換処理においては、メモリ10の領域が多大に必要となる問題が生じている。すなわち、画像データの縦横比の変換を伴う場合には、画像データの上下に黒帯を付けた画像データIM4、IM10をメモリ10上に一旦形成しなければならず、その分、画像変換処理に必要なメモリ領域が増大していた。また、画像の切り出しを行う場合でも、切り出した画像データIM7をメモリ10上に一旦形成しなければならず、その分、画像変換処理に必要なメモリ領域が増大していた。
【0010】
そこで本発明は、前記課題に鑑みてなされたものであり、画像変換処理に必要なメモリ領域の削減を図った画像変換システムを提供することを目的とする。
【課題を解決するための手段】
【0011】
上記課題を解決するため、本発明に係る画像変換システムは、
画像データが展開されるメモリと、
前記メモリに展開されている画像データである入力画像データにおける各ラインのアドレスを特定する情報であるラインアドレス情報を取得する、ラインアドレス情報取得手段と、
前記ラインアドレス情報取得手段で取得した各ラインのラインアドレス情報をインデックス形式でまとめたインデックスデータを生成する、インデックスデータ生成手段と、
前記インデックスデータに基づいて、前記入力画像データの解像度の変換を行い、変換後の画像データを出力画像データとして、前記メモリに格納する、画像変換器と、
を備えることを特徴とする。
【0012】
この場合、前記メモリ上に、1ライン分の帯データを生成する、帯データ生成手段と、
前記帯データの1ライン分のアドレスを特定する情報である帯ラインアドレス情報を取得する、帯ラインアドレス情報取得手段と、
をさらに備えており、
前記入力画像データと前記出力画像データとの縦横比が異なる場合には、前記インデックスデータ生成手段は、前記出力画像データの縦横比に合うように、前記帯ラインアドレス情報を前記インデックスデータに付加するようにしてもよい。
【0013】
この場合、前記帯データ生成手段が生成する前記帯データは、黒の1ライン分のデータであるようにしてもよい。
【0014】
また、前記メモリに展開されている画像データの一部の領域を切り出して、これを入力画像データとする場合には、この切り出す領域を特定する、領域特定手段を、さらに備えており、
前記ラインアドレス情報取得手段は、前記領域特定手段で特定された領域内における各ラインのラインアドレス特定情報を取得するようにしてもよい。
【0015】
また、前記出力画像データを格納する前記メモリ上のアドレスを特定する格納アドレス情報を、前記画像変換器に出力する、格納アドレス情報出力手段を、さらに備えており、
前記画像変換器は、この格納アドレス情報に基づいて特定された前記メモリ上のアドレスに、前記出力画像データを格納するようにしてもよい。
【0016】
また、前記入力画像データのサイズと前記出力画像データのサイズとを、前記画像変換器に出力する、サイズ出力手段をさらに備えており、
前記画像変換器は、前記入力画像データのサイズと前記出力画像データのサイズに基づいて、前記入力画像データの解像度の変換を行うようにしてもよい。
【0017】
また、前記ラインアドレス情報は、前記入力画像データの左端のアドレスであり、前記帯ラインアドレス情報は、前記帯データの左端のアドレスであるようにしてもよい。
【0018】
また、前記画像変換器が解像度の変換を行うことのできる前記入力画像データの縦横比は、固定であるようにしてもよい。
【0019】
また、画像データを各ライン毎に前記メモリに展開する、画像データ展開手段であって、1ライン分以上の連続した空き領域が前記メモリ内にあれば、この空き領域に、各ラインの画像データを格納する、画像データ展開手段を、さらに備えるようにしてもよい。
【0020】
なお、本発明は、上述したように画像変換を行う方法としてとらえることもでき、上述したような画像変換を情報処理端末に行わせるためのプログラムとしてとらえることもでき、そのようなプログラムを記録した記録媒体としてとらえることもできる。
【発明を実施するための最良の形態】
【0021】
〔第1実施形態〕
図5は、本実施形態に係る情報処理端末の構成の一例を説明するブロック図である。この図5に示すように、本実施形態に係る情報処理端末は、CPU(Central Processing Unit)10と、画像変換器102と、メモリ104と、ハードディスク106とを備えており、これらは内部バス110を介して相互に接続されている。さらに、本実施形態に係る情報処理端末においては、内部バス110にLCDコントローラ122も接続されており、このLCDコントローラ122に、LCD(Liquid Crystal Display)120が接続されている。
【0022】
本実施形態においては、画像変換器102はハードウェアにより構成されており、例えばASIC(Application Specific IC)により構成されている。この画像変換器102は、入力された画像データの解像度変換を行い、メモリ104に出力する機能を有している。また、メモリ104はRAM(Random Access Memory)により構成されている。
【0023】
なお、本実施形態に係る画像変換器102は、解像度変換を行う画像の縦横比が3:2(横:縦)に固定されている。このため、この定められた縦横比と異なる画像の解像度変換をしようとする場合には、画像変換器102に画像データを渡す前に、画像の上下に黒帯を付加して、定められた縦横比になるように調整しなければならない。但し、この画像変換器102が解像度変換することのできる縦横比は、必ずしも固定でなくても、本発明を実現することはできる。
【0024】
ハードディスク106は、本実施形態における補助記憶装置の一例であり、LCD120は、本実施形態における表示画面の一例である。本実施形態におけるLCD120は、例えば、横640ピクセル×縦480ピクセルのサイズで構成されている。
【0025】
また、この図1に示す情報処理端末は、例えば、ハードディスク106に格納されている画像データを、LCD120で表示することができるフォトビューアという携帯用の情報処理端末を想定しているが、これ以外でも、ディスクトップ型のコンピュータや、ノート型のコンピュータ等であってもよい。
【0026】
次に、この情報処理端末で実行される画像変換処理について説明する。図6乃至図8は、本実施形態に係る情報処理端末で実行される縦横比が同一の場合の画像縮小処理の内容を説明するための図である。具体的には、図6は、画像縮小処理の全体の流れを説明する図であり、図7は、変換される画像データの一例を示す図であり、図8は、この画像縮小処理で生成されるインデックスデータの一例を示す図である。
【0027】
図6に示すように、情報処理端末は、元の画像データIM20をメモリ104に展開する。そして、この画像データIM20に基づいて、図8に示すようなインデックスデータIND20を生成する。すなわち、画像データIM20における各ラインの左端の画像データが格納されているアドレスを一覧形式でまとめて、インデックスデータIND20を生成する。この例では、図7から分かるように画像データIM20の第1のラインの左端のアドレスは、「0100000」であり、第2のラインの左端のアドレスは、「0100100」であり、最後のラインの左端のアドレスは「010FF00」である。したがって、図8のようなインデックスデータIND20が生成されることとなる。
【0028】
そして、情報処理端末は、このインデックスデータIND20と、画像データIM20のサイズ(入力サイズ)と、縮小した画像データIM21のサイズ(出力サイズ)と、縮小した画像データIM21を格納するメモリ104内の先頭アドレスとを、画像変換器102に出力する。
【0029】
これらを取得した画像変換器102では、入力サイズと出力サイズとに基づいて、倍率を算出し、また、インデックスデータIND20に基づいて、各ラインの画像データを取得して、縮小した画像データを生成し、指定された先頭アドレスから順次、画像データを格納していく。具体的には、アドレス「0100000」から画像データを取得して、算出された倍率で解像度の変換を行って、画像データを縮小する。そして、指定された先頭アドレスに縮小した画像データを格納する。次に、アドレス「0100001」から画像データを取得して、算出された倍率で解像度の変換を行って、画像データを縮小する。そして、指定された先頭アドレスの次のアドレスに縮小した画像データを格納する。この処理を1ライン分繰り返し、第1のラインが終了した場合には、第2のラインの左端であるアドレス「0100100」からこれと同様の処理を繰り返す。そして、最後のラインまでこの処理を行うことにより、縮小した画像データIM21が、メモリ104内に形成される。
【0030】
本実施形態では、この画像データIM21は、LCD120と同じ640×480ピクセルになっており、情報処理端末は、この画像データIM21をLCD120に表示することができる。
【0031】
次に、図9乃至図11に基づいて、本実施形態に係る情報処理端末で実行される縦横比が異なる場合の画像縮小処理の内容を説明する。具体的には、図9は、画像縮小処理の全体の流れを説明する図であり、図10は、変換される画像データの一例を示す図であり、図11は、この画像縮小処理で生成されるインデックスデータの一例を示す図である。
【0032】
図9に示すように、情報処理端末は、元の画像データIM30をメモリ104に展開する。そして、画像データIM30の縦横比をLCD120に合わせるための黒帯の画像データIM31を1ライン分だけ、メモリ104に生成する。
【0033】
次に、画像データIM30に基づいて、図11に示すようなインデックスデータIND30を生成する。すなわち、画像データIM30における各ラインの左端の画像データが格納されているアドレスと、黒帯の画像データIM31の左端のアドレスとを一覧形式でまとめて、インデックスデータIND30を生成する。この例では、図10から分かるように画像データIM30の第1のラインの左端のアドレスは、「0100000」であり、第2のラインの左端のアドレスは、「0100100」であり、最後のラインの左端のアドレスは「010AF00」である。
【0034】
また、黒帯の画像データIM31の左端のアドレスは、「0200000」である。したがって、インデックスデータIND30を生成する際には、図11に示すように、黒帯を形成するための領域である画像データIM30の上下には、黒帯の画像データの左端のアドレス「0200000」が格納される。
【0035】
そして、情報処理端末は、このインデックスデータIND30と、画像データIM30のサイズ(入力サイズ)と、縮小した画像データIM32のサイズ(出力サイズ)と、縮小した画像データIM32を格納するメモリ104内の先頭アドレスとを、画像変換器102に出力する。
【0036】
これらを取得した画像変換器102では、入力サイズと出力サイズとに基づいて、倍率を算出し、また、インデックスデータIND30に基づいて、各ラインの画像データを取得して、縮小した画像データを生成し、指定された先頭アドレスから順次、画像データを格納していく。具体的には、まず、アドレス「0200000」から画像データを取得して、算出された倍率で解像度の変換を行って、取得した画像データを縮小する。そして、指定された先頭アドレスに縮小した画像データを格納する。次に、アドレス「0200001」から画像データを取得して、算出された倍率で解像度の変換を行って、取得した画像データを縮小する。そして、指定された先頭アドレスの次のアドレスに縮小した画像データを格納する。この処理を1ライン分繰り返し、第1のラインが終了した場合には、第1のラインと同じアドレスである「0200000」から、画像データIM31のデータを取得して、同様の処理を繰り返す。そして、最後のラインまでこの処理を行うことにより、黒帯が付加されて、縮小された画像データIM32が、メモリ104内に形成される。
【0037】
本実施形態では、この画像データIM32は、LCD120と同じ640×480ピクセルになっており、情報処理端末は、この画像データIM32をLCD120に表示することができる。
【0038】
次に、図12乃至図14に基づいて、本実施形態に係る情報処理端末で実行される縦横比が同一の場合の画像切り出し処理の内容を説明するための図である。具体的には、図12は、画像切り出し処理の全体の流れを説明する図であり、図13は、変換される画像データの一例を示す図であり、図14は、この画像切り出し処理で生成されるインデックスデータの一例を示す図である。
【0039】
図12に示すように、情報処理端末は、元の画像データIM40をメモリ104に展開する。続いて、ユーザに、画像データIM40から切り出す画像の領域を指定させる。但し、この切り出す画像は、実際に切り出してメモリ104に展開し直すのではなく、切り出す領域を特定するだけである。また、ここでは、元の画像データIM40の縦横比と、切り出す画像の縦横比は、同じであり、これらはLCD120の縦横比と同じである。
【0040】
次に、この画像データIM40から切り出した画像データに基づいて、図14に示すようなインデックスデータIND40を生成する。すなわち、画像データIM40から切り出す画像データにおける各ラインの左端の画像データが格納されているアドレスを一覧形式でまとめて、インデックスデータIND40を生成する。この例では、図13から分かるように画像データIM40から切り出す画像データの第1のラインの左端のアドレスは、「0100350」であり、第2のラインの左端のアドレスは、「0100450」であり、最後のラインの左端のアドレスは「0105950」である。したがって、図14のようなインデックスデータIND20が生成されることとなる。
【0041】
そして、情報処理端末は、このインデックスデータIND40と、画像データIM40から切り出す画像データのサイズ(入力サイズ)と、拡大した画像データIM41のサイズ(出力サイズ)と、拡大した画像データIM41を格納するメモリ104内の先頭アドレスとを、画像変換器102に出力する。
【0042】
これらを取得した画像変換器102では、入力サイズと出力サイズとに基づいて、倍率を算出し、また、インデックスデータIND40に基づいて、各ラインの画像データを取得して、拡大した画像データを生成し、指定された先頭アドレスから順次、画像データを格納していく。具体的には、アドレス「0100350」から画像データを取得して、算出された倍率で解像度を変換して、取得した画像データを拡大する。そして、指定された先頭アドレスに拡大した画像データを格納する。次に、アドレス「0100351」から画像データを取得して、算出された倍率で解像度を変換して、取得した画像データを拡大する。そして、指定された先頭アドレスの次のアドレスに拡大した画像データを格納する。この処理を1ライン分繰り返し、第1のラインが終了した場合には、第2のラインの左端であるアドレス「0100450」からこれと同様の処理を繰り返す。そして、最後のライン(アドレス「0105950」のライン)までこの処理を行うことにより、切り出した画像データIM41が、メモリ104内に形成される。
【0043】
本実施形態では、この画像データIM41は、LCD120と同じ640×480ピクセルになっており、情報処理端末は、この画像データIM41をLCD120に表示することができる。
【0044】
次に、図15乃至図17に基づいて、本実施形態に係る情報処理端末で実行される縦横比が異なる場合の画像切り出し処理の内容を説明する。具体的には、図15は、画像切り出し処理の全体の流れを説明する図であり、図16は、変換される画像データの一例を示す図であり、図16は、この画像切り出し処理で生成されるインデックスデータの一例を示す図である。
【0045】
図15に示すように、情報処理端末は、元の画像データIM50をメモリ104に展開する。そして、画像データIM50の縦横比をLCD120に合わせるための黒帯の画像データIM51を1ライン分だけ、メモリ104に生成する。続いて、ユーザに、画像データIM50から切り出す画像の領域を指定させる。但し、この切り出す画像は、実際に切り出してメモリ104に展開し直すのではなく、切り出す領域を特定するだけである。また、ここでは、元の画像データIM40の縦横比と、切り出す画像の縦横比は、同じであるが、これらはLCD120の縦横比と異なる。
【0046】
次に、画像データIM50から切り出す画像データに基づいて、図17に示すようなインデックスデータIND50を生成する。すなわち、画像データIM50から切り出す画像データにおける各ラインの左端の画像データが格納されているアドレスと、切り出す画像データの幅に対応する黒帯の画像データIM51の左端のアドレスとを一覧形式でまとめて、インデックスデータIND50を生成する。この例では、図16から分かるように画像データIM50から切り出す画像データの第1のラインの左端のアドレスは、「0108030」であり、第2のラインの左端のアドレスは、「0108130」であり、最後のラインの左端のアドレスは「010A030」である。
【0047】
また、切り出す画像データの幅に対応する黒帯の画像データIM51の左端のアドレスは、「0200030」である。したがって、インデックスデータIND50を生成する際には、図17に示すように、黒帯を形成するための領域である画像データIM50の上下には、黒帯の画像データの左端のアドレス「0200030」が格納される。
【0048】
そして、情報処理端末は、このインデックスデータIND50と、画像データIM50から切り出した画像データのサイズ(入力サイズ)と、拡大した画像データIM52のサイズ(出力サイズ)と、拡大した画像データIM52を格納するメモリ104内の先頭アドレスとを、画像変換器102に出力する。
【0049】
これらを取得した画像変換器102では、入力サイズと出力サイズとに基づいて、倍率を算出し、また、インデックスデータIND50に基づいて、各ラインの画像データを取得して、拡大した画像データを生成し、指定された先頭アドレスから順次、画像データを格納していく。具体的には、まず、アドレス「0200030」から画像データを取得して、算出された倍率で解像度の変換を行い、取得した画像データを拡大する。そして、指定された先頭アドレスに拡大した画像データを格納する。次に、アドレス「0200031」から画像データを取得して、算出された倍率で解像度の変換を行って、取得した画像データを拡大する。そして、指定された先頭アドレスの次のアドレスに縮小した画像データを格納する。この処理を1ライン分繰り返し、第1のラインが終了した場合には、第1のラインと同じアドレスである「0200030」から、画像データIM51のデータを取得して、同様の処理を繰り返す。そして、最後のラインまでこの処理を行うことにより、黒帯が付加されて、拡大された画像データIM52が、メモリ104内に形成される。
【0050】
本実施形態では、この画像データIM52は、LCD120と同じ640×480ピクセルになっており、情報処理端末は、この画像データIM52をLCD120に表示することができる。
【0051】
次に、図18に基づいて、上述した画像変換処理を用いて画像データを表示する画像表示処理の内容を説明する。この画像表示処理は、例えば、ハードディスク106に格納されている画像表示処理プログラムをCPU100が読み出して実行することにより、実現される処理である。
【0052】
この図18に示すように、情報処理端末は、まず、表示する画像データをメモリ104に展開する(ステップS10)。本実施形態においては、メモリ104内における1枚分の画像データを格納することができる連続した空き領域に、画像データを展開する。次に、情報処理端末は、画像データの縦横比を変換する必要があるかどうかを判断する(ステップS12)。具体的には、本実施形態のLCD120の縦横比が、4:3(640×480)であるので、画像データの縦横比が4:3であるかどうかを判断する。
【0053】
画像データの縦横比を変換する必要がない場合(ステップS12:No)には、情報処理端末は、この画像表示処理が画像切り出し処理を伴うものであるかどうかを判断する(ステップS14)。この画像表示処理が画像切り出し処理を伴うものでない場合(ステップS14:No)には、メモリ104に展開されている画像データに基づいて、インデックスデータを生成する(ステップS16)。この処理は、上述した図6乃至図8に対応する処理である。
【0054】
一方、ステップS14で、この画像表示処理が画像切り出し処理を伴うものであると判断した場合(ステップS14:Yes)には、ユーザが切り出した部分の画像データについて、インデックスデータを生成する(ステップS18)。この処理は、上述した図12乃至図14に対応する処理である。
【0055】
これに対して、上述したステップS12で、画像データの縦横比を変換する必要があると判断した場合(ステップS12:Yes)には、1ライン分の黒帯の画像データをメモリ104に生成する(ステップS20)。つまり、画像データの幅と同じ幅の1ライン分の黒データを生成する。
【0056】
次に、情報処理端末は、この画像表示処理が画像切り出し処理を伴うものであるかどうかを判断する(ステップS22)。この画像表示処理が画像切り出し処理を伴うものでない場合(ステップS22:No)には、メモリ104に展開されている画像データと、1ライン分の黒帯の画像データとに基づいて、画像データに黒帯を付加したインデックスデータを生成する(ステップS24)。この処理は、上述した図9乃至図11に対応する処理である。
【0057】
一方、ステップS22で、この画像表示処理が画像切り出し処理を伴うものであると判断した場合(ステップS22:Yes)には、ユーザが切り出した部分の画像データと、1ライン分の黒帯の画像データとに基づいて、切り出した部分の画像データに黒帯を付加したインデックスデータを生成する(ステップS26)。この処理は、上述した図15乃至図17に対応する処理である。なお、図16からも分かるように、本実施形態では、黒帯の画像データの左端のアドレスの位置は、切り出す画像データの左端のアドレスの位置と合致するように設定するが、単純に黒帯の画像データそのものの左端に設定しても良い。この場合、図17に示したインデックスデータIND50における黒帯の画像データのアドレスは「0200000」となる。
【0058】
そして、これらステップS16、ステップS18、ステップS24、又は、ステップS25の処理の後、情報処理端末は、生成したインデックスデータと、画像データの入力サイズと、画像データの出力サイズと、出力画像データを格納するメモリ104内の先頭アドレスとを、画像変換器102に出力する(ステップS28)。本実施形態においては、この時点で縦横比の変換に必要な処理は行われているので、画像データの入力サイズとして、入力する画像データの幅(或いは高さ)を出力し、画像データの出力サイズとして、出力する画像の幅(あるいは高さ)を出力する。ここでは、LCD120に画像を表示するための処理を想定しているので、出力サイズは、幅640ピクセル(或いは高さ480ピクセル)で、固定である。
【0059】
これにより、画像変換器102は画像変換処理を行い、指定された先頭アドレスが、変換処理後の画像データの先頭アドレスになるように、メモリ104に画像データを格納するので、情報処理端末はこの先頭アドレスから画像変換後の画像データ(640×480ピクセルの画像データ)を読み出して、640×480ピクセルのLCD120に表示する(ステップS30)。これにより、本実施形態に係る画像表示処理が終了する。
【0060】
次に、上述したハードウェアである画像変換器102で実行される画像変換処理について詳しく説明する。この画像変換処理には、様々なものが存在するが、ここでは単純に、画像を縮小する場合には、画像データの値の一部を間引くことにより解像度変換を行い、画像を拡大する場合には、適当な画像データの値を挿入することにより解像度変換を行う手法を説明する。なお、画像変換処理はこれ以外の様々な手法を採用することができる。
【0061】
図19は画像を縮小する場合の画像変換処理の内容を説明するための図である。この図19に示すように、例えば、画像の一辺を1/2に縮小する場合には、出力画像データの座標(0,0)に、入力画像データの座標(0,0)の値を格納し、出力画像データの座標(1,0)に、入力画像データの座標(2,0)の値を格納し、出力画像データの座標(0,1)に、入力画像データの座標(0,2)の値を格納し、出力画像データの座標(1,1)に、入力画像データの座標(2,2)の値を格納する。
【0062】
図20は画像を拡大する場合の画像変換処理の内容を説明するための図である。この図20に示すように、例えば、画像の一辺を2倍に拡大する場合には、出力画像データの座標(0,0)に、入力画像データの座標(0,0)の値を格納し、出力画像データの座標(1,0)に、入力画像データの座標(0,0)の値を格納し、出力画像データの座標(0,1)に、入力画像データの座標(0,0)の値を格納し、出力画像データの座標(1,1)に、入力画像データの座標(0,0)の値を格納する。
【0063】
同様に、出力画像データの座標(2,0)、(3,0)、(2,1)、(3,1)のそれぞれに、入力画像データの座標(1,0)の値を格納し、出力画像データの座標(0,2)、(1,2)、(0,3)、(1,3)のそれぞれに、入力画像データの座標(0,1)の値を格納し、出力画像データの座標(2,2)、(3,2)、(2,3)、(3,3)のそれぞれに、入力画像データの座標(1,1)の値を格納する。
【0064】
次に、このような処理を実現するために、画像変換器102で実行される処理内容を詳しく説明する。図21は、上述した画像表示処理を受けて、画像変換器102でハードウェアにより実行される画像変換処理の内容を説明するフローチャートを示す図である。
【0065】
この図21に示すように、画像変換器102は、まず、ステップS28で、CPU100から出力された、画像データの入力サイズと、画像データの出力サイズと、出力画像データを格納するメモリ104内の先頭アドレスと、インデックスデータとを受信して、取得する(ステップS50)。
【0066】
次に、画像変換器102は、入力サイズ/出力サイズを倍率αとして、算出する(ステップS52)。続いて、画像変換器102は、変数Xの初期値を0にし、変数Yの初期値も0にする(ステップS54)。
【0067】
次に、画像変換器102は、インデックスデータを参照して、入力画像データの座標(α×X,α×Y)の値を取得する(ステップS56)。具体的には、画像変換器102は、インデックスデータにおける画像データの上端のラインにおける左端の位置を原点(0,0)とし、座標(α×X,α×Y)の位置の値を取得する。
【0068】
次に、ステップS58で取得した値を、座標(X,Y)の出力画像データとして、メモリ104に格納する(ステップS58)。具体的には、画像変換器102は、出力画像データの先頭アドレスとして指定された位置を原点(0,0)とし、座標(X、Y)の位置に、取得した値を格納する。
【0069】
なお、実際には、これらステップS56及びステップS58の処理は、赤(R)、緑(G)、青(B)の各色毎に行われる。なぜなら、これら赤(R)、緑(G)、青(B)の各色毎に値を定めることにより、1つの画素の色が定まるからである。
【0070】
次に、画像変換器102は、X座標の値が、ラインの右端に達しているかどうかを判断する(ステップS60)。ここでは、ラインの右端の位置は、出力画像データの幅が640ピクセルであるので、X座標としては、639ピクセルの位置である。X座標の値がラインの右端に達していない場合(ステップS60:No)には、Xに1を加えて(ステップS62)、上述したステップS56からを繰り返す。
【0071】
一方、X座標の値がラインの右端に達している場合(ステップS60:Yes)には、Y座標の値が最後のライン(下端のライン)に達しているかどうかを判断する(ステップS64)。ここでは、最後のラインの位置は、出力画像データの高さが480ピクセルであるので、Y座標としては479ピクセルの位置である。Y座標の値が最後のラインに達していない場合(ステップS64:No)には、Xの値を0に戻し(ステップS66)、Yの値に1を加えた後(ステップS68)、上述したステップS56からを繰り返す。
【0072】
以上のように、本実施形態に係る情報処理端末によれば、画像表示処理において、切り出した画像データを一旦メモリ104に展開する必要がなくなり、また、黒帯データを付加した画像データを一旦メモリ104に展開する必要がなくなるので、画像表示処理において使用されるメモリ104の領域を削減することができる。
【0073】
また、本実施形態に係る情報処理端末によれば、画像表示処理に必要なCPU100の処理負荷を軽減することができ、処理の高速化を図ることができる。例えば、3072×2048ピクセルの画像データを、640×480ピクセルのLCD120に画像データを表示する場合を想定する。この場合、従来の手法では、次のような処理が発生する。
(A1)3072×2048ピクセルの画像データを読み込んで、メモリ104に展開する。
(A2)3072×2048ピクセルの画像データを、メモリ104上の別の領域にコピーする。
(A3)コピーした画像データに、3072×256ピクセルの黒帯データを付加して、3072×2304ピクセルの画像データにする。つまり、上下に128ラインの黒帯データを付加する。
(A4)この黒帯を付加した3072×2304ピクセルの画像データを、640×480ピクセルの画像データに、画像変換器が変換する。
【0074】
これに対して、本実施形態では、次のような処理しか発生しない。
(B1)3072×2048ピクセルの画像データを読み込んで、メモリ104に展開する。
(B2)3072×1ピクセルの黒帯のデータを、メモリ104上に生成する。
(B3)2304ライン分のインデックスデータを生成する。
(B4)2304ライン分のインデックスデータに基づいて、640×480ピクセルの画像データを、画像変換器が生成する。
【0075】
このことから分かるように、本実施形態によれば、大量の画像データをコピーしたり、生成したりする(A2)、(A3)の処理が発生しないので、その分、CPU100の処理負荷を軽減することができる。
【0076】
〔第2実施形態〕
上述した第1実施形態では、画像データIM20、IM30、IM40、IM50をメモリ104の連続した領域に格納することとしている。すなわち、上述した第1実施形態では、画像データIM20、IM30、IM40、IM50をメモリ104の連続した領域に展開しなければならないという制約があり、メモリ104上に大きな空き領域を確保する必要がある。しかし、通常よく用いられているメモリ管理手法では、メモリ104に小さい空き領域が飛び飛びに発生しやすい傾向があり、上述した第1実施形態に係る情報処理端末では、メモリ104のメモリ領域を有効に活用することが困難なことも想定される。
【0077】
そこで、第2実施形態では、メモリ104上で飛び飛びに発生した空き領域を有効に活用して、画像データIM20、IM30、IM40、IM50をメモリ104に展開することができるようにしたものである。すなわち、1ライン分の画像データを格納できる連続した領域さえあれば、この領域に1ライン分の画像データを格納し、その画像データを格納したアドレスについてインデックスデータを用いて管理するようにしたものである。以下、上述した第1実施形態と異なる部分のみを説明する。
【0078】
図22は、本実施形態に係る画像表示処理の内容を説明するフローチャートを示す図であり、上述した第1実施形態における図18に対応する図である。
【0079】
この図22に示すように、本実施形態に係る情報処理端末は、ステップS210において、画像データをメモリに展開する際には、メモリ104上の飛び飛びの領域も有効に活用して、画像データを展開する。具体的には、1ライン以上の画像データを格納できる連続した空き領域をメモリ104上から見つけ出し、この空き領域に画像データを各ライン毎に飛び飛びで格納していく。そして、画像データをメモリ104上に格納する際には、その格納したアドレスを各ライン毎に、オリジナルインデックスデータとして格納して、管理できるようにしておく。
【0080】
図23は、この際に生成されるオリジナルインデックスデータIND200の構成の一例を示す図であり、図24は、メモリ104内のメモリ領域配置と画像縮小処理の全体の流れを説明する図であり、図25は、メモリ104に展開される画像データIM20を示す図である。本実施形態においては、このオリジナルインデックスデータIND200も、メモリ104上に生成され格納される。
【0081】
これら図23乃至図26の例では、最初の1ライン目の画像データがアドレス「0080000」から始まる連続した領域に格納されている。続く2ライン目からの画像データは、アドレス「0100100」からアドレス「010FD00」の連続した領域に格納されている。そして、最後から2番目のラインの画像データは、アドレス「0120000」から始まる連続した領域に格納されており、最後のラインの画像データは、アドレス「0120100」から始まる連続した領域に格納されている。このように、1ライン分の空き領域があれば、それが飛び飛びであっても有効に活用して、画像データを展開するのである。
【0082】
そして、図22に示すように、情報処理端末は、縦横比の変換が必要でなく、画像切り出し処理も必要でない場合(ステップS12:No、ステップS14:No)には、ステップS216において、画像データのインデックスデータを生成する。
【0083】
図26は、ステップS216で生成されるインデックスデータIND220の一例を示す図である。この図26から分かるように、ステップS216で生成されるインデックスデータ220は、ステップS210で生成したオリジナルインデックスデータIND200と同じである。このため、本実施形態においては、メモリ104上に格納されているオリジナルインデックスデータIND200を、そのまま、インデックスデータIND220として用いることにしている。
【0084】
一方、縦横比の変換が必要であり、画像切り出し処理は必要でない場合(ステップS12:Yes、ステップS22:No)には、情報処理端末は、ステップS224において、画像データのインデックスデータを生成する。
【0085】
図27は、メモリ104内のメモリ領域配置の一例と画像縮小処理の全体の流れを説明する図であり、図28は、メモリ104に展開される画像データIM30の一例を示す図であり、図29は、ステップS224で生成されるインデックスデータIND230の一例を示す図である。
【0086】
これら図27乃至図29に示すように、画像データIM30が飛び飛びの領域を有効に活用してメモリ104上に展開されており、この画像データIM30のオリジナルインデックスデータIND300もメモリ104上に格納されている。ステップS224においては、画像変換器102に出力する画像データの横と縦の比を3:2にするために、黒帯の画像データIM31を付加して、インデックスデータIND230を生成する。具体的には、オリジナルインデックスデータIND300の上下に、黒帯の画像データIM31のアドレス「0200000」を付加したインデックスデータIND230を生成する。
【0087】
一方、縦横比の変換が必要でなく、画像切り出し処理は必要である場合(ステップS12:No、ステップS14:Yes)には、情報処理端末は、ステップS218において、画像データのインデックスデータを生成する。
【0088】
図30は、メモリ104内のメモリ領域配置の一例と画像切り出し処理の全体の流れを説明する図であり、図31は、メモリ104に展開される画像データIM40の一例を示す図であり、図32は、ステップS218で生成されるインデックスデータIND240の一例を示す図である。
【0089】
これら図30乃至図32に示すように、画像データIM40が飛び飛びの領域を有効に活用してメモリ104上に展開されており、この画像データIM40のオリジナルインデックスデータIND400もメモリ104上に格納されている。ステップS218においては、ユーザが切り出した部分の画像データについて、インデックスデータIND240を生成する。この例においては、ユーザが切り出した部分の画像データは、オリジナルインデックスデータIND400を参照すると、アドレス「0100350」〜アドレス「0105750」から始まる領域の部分と、アドレス「0110050」及びアドレス「0110150」から始まる領域の部分であるので、これらのアドレスに基づいて、インデックスデータIND240を生成する。
【0090】
一方、縦横比の変換が必要であり、画像切り出し処理も必要である場合(ステップS12:Yes、ステップS22:Yes)には、情報処理端末は、ステップS226において、画像データのインデックスデータを生成する。
【0091】
図33は、メモリ104内のメモリ領域配置の一例と画像切り出し処理の全体の流れを説明する図であり、図34は、メモリ104に展開される画像データIM50の一例を示す図であり、図35は、ステップS226で生成されるインデックスデータIND250の一例を示す図である。
【0092】
これら図33乃至図35に示すように、画像データIM50が飛び飛びの領域を有効に活用してメモリ104上に展開されており、この画像データIM50のオリジナルインデックスデータIND500もメモリ104上に格納されている。ステップS226においては、画像変換器102に出力する画像データの横と縦の比を3:2にするために、ユーザが切り出した部分の画像データに、黒帯の画像データIM51を付加して、インデックスデータIND250を生成する。この例においては、ユーザが切り出した部分の画像データは、オリジナルインデックスデータIND500を参照すると、アドレス「010830」〜アドレス「0108A30」から始まる領域の部分と、アドレス「0120030」〜アドレス「0120A30」から始まる領域の部分であるので、これらのアドレスの上下に、黒帯の画像データIM51のアドレス「0200030」を付加することにより、インデックスデータIND250を生成する。
【0093】
そして、上述した第1実施形態と同様に、これらステップS216、ステップS218、ステップS224、又は、ステップS226で生成したインデックスデータIND220、IND230、IND240、IND250を、画像データの入力サイズと、画像データの出力サイズと、出力画像データを格納するメモリ104内の先頭アドレスとともに、画像変換器102に出力する(ステップS28)。
【0094】
この図22に示した画像表示処理を受けて、画像変換器102で実行される画像変換処理は、上述した第1実施形態における図21と同様である。
【0095】
以上のように、本実施形態に係る情報処理端末によれば、元の画像データをメモリ104に展開する際に、1ライン分以上の画像データを格納できる空き領域があれば、この領域を有効に活用して、元の画像データを格納することができる。このため、メモリ104に形成されてしまう小さい空き領域でも、画像データを構成する各ラインのデータを格納することができるようになり、メモリ104の空き領域の有効活用が可能となる。換言すれば、元の画像データをメモリ104に展開する際に、各ラインの左端のアドレスをインデックスとして保持しているオリジナルインデックスデータを生成することにより、各ラインの画像データの格納場所を自由にすることができる。しかも、格納領域の順序も自由であるので、実際の画像の各ラインにおける上下の位置関係と、メモリ104上における各ラインの格納位置(アドレス)の上下関係とが、入れ替わっていても問題がなくなる。したがって、極めて自由度の高い画像データのメモリ展開を実現することができる。
【0096】
なお、本発明は上記実施形態に限定されず種々に変形可能である。例えば、上述した実施形態では、CPU100により実行される画像表示処理と、画像変換器102と、メモリ104とにより、1つの画像変換システムを構成したが、これとは異なる構成で同様の処理を実現するようにしてもよい。例えば、上述した画像変換器102をハードウェアではなく、ソフトウェアとCPUにより構成するようにしてもよい。すなわち、CPUが所定のプログラムを読み込んで、画像変換器102と同等の処理を実現するようにしてもよい。但し、上述した実施形態のように、画像変換処理をハードウェアである画像変換器102により実現し、それ以外の処理をソフトウェアにより実現した方が、ソフトウェアの処理負荷が軽くなるので、処理全体の高速化を図ることができる。
【0097】
また、上述した実施形態では、入力画像データの各ラインを特定する情報であるラインアドレス情報として、各ラインの左端のアドレスを用いたが、これに限るものではない。例えば、各ラインの右端や中心のアドレスを用いてもよいし、これ以外の方法で特定するようにしてもよい。
【0098】
同様に、1ライン分の黒帯データのラインを特定する情報である黒帯ラインアドレス情報として、黒帯データの左端のアドレスを用いたが、これに限るものではない。例えば、黒帯データの右端や中心のアドレスを用いてもよいし、これ以外の方法で特定するようにしてもよい。
【0099】
また、上述した実施形態では、画像表示処理において、画像変換処理をする場合を説明したが、画像変換処理が必要な他の処理においても、本発明を適用することができる。さらには、例えば、プリンタなどの画像出力装置に本発明を適用してもよい。この場合、帯データとしては、黒帯データではなく、印刷用紙の色に合わせて白帯データを用いることとなる。すなわち、帯データの色は、画像データが出力される背景の色やユーザの好みなどに応じて、任意に選択することができる。
【0100】
また、上述の実施形態で説明した画像表示処理については、この画像表示処理を実行するためのプログラムをフレキシブルディスク、CD−ROM(Compact Disc-Read Only Memory)、ROM、メモリカード等の記録媒体に記録して、記録媒体の形で頒布することが可能である。この場合、この記録媒体に記録された画像表示のプログラムを情報処理端末に読み込ませ、実行させることにより、上述した実施形態を実現することができる。
【0101】
また、情報処理端末は、オペレーティングシステムや別のアプリケーションプログラム等の他のプログラムを備える場合がある。この場合、情報処理端末の備える他のプログラムを活用し、記録媒体には、その情報処理端末が備えるプログラムの中から、上述した実施形態と同等の処理を実現するプログラムを呼び出すような命令を記録するようにしてもよい。
【0102】
さらに、このようなプログラムは、記録媒体の形ではなく、ネットワークを通じて搬送波として頒布することも可能である。ネットワーク上を搬送波の形で伝送されたプログラムは、情報処理端末に取り込まれて、このプログラムを実行することにより上述した実施形態を実現することができる。
【0103】
また、記録媒体にプログラムを記録する際や、ネットワーク上を搬送波として伝送される際に、プログラムの暗号化や圧縮化がなされている場合がある。この場合には、これら記録媒体や搬送波からプログラムを読み込んだ情報処理端末は、そのプログラムの復号や伸張化を行った上で、実行する必要がある。
【図面の簡単な説明】
【0104】
【図1】従来の画像変換処理を説明するための図(縦横比不変、画像データ縮小)。
【図2】従来の画像変換処理を説明するための図(縦横比変換、画像データ縮小)。
【図3】従来の画像変換処理を説明するための図(縦横比不変、画像データ切り出し)。
【図4】従来の画像変換処理を説明するための図(縦横比変換、画像データ切り出し)。
【図5】第1実施形態に係る情報処理端末の構成を説明するブロック図。
【図6】第1実施形態に係る画像変換処理を説明するための図(縦横比不変、画像データ縮小)。
【図7】図6の画像変換処理で処理される画像データの一例を示す図。
【図8】図6の画像変換処理で生成されるインデックスデータの一例を示す図。
【図9】第1実施形態に係る画像変換処理を説明するための図(縦横比変換、画像データ縮小)。
【図10】図9の画像変換処理で処理される画像データの一例を示す図。
【図11】図9の画像変換処理で生成されるインデックスデータの一例を示す図。
【図12】第1実施形態に係る画像変換処理を説明するための図(縦横比不変、画像データ切り出し)。
【図13】図12の画像変換処理で処理される画像データの一例を示す図。
【図14】図12の画像変換処理で生成されるインデックスデータの一例を示す図。
【図15】第1実施形態に係る画像変換処理を説明するための図(縦横比変換、画像データ切り出し)。
【図16】図15の画像変換処理で処理される画像データの一例を示す図。
【図17】図15の画像変換処理で生成されるインデックスデータの一例を示す図。
【図18】第1実施形態に係る情報処理端末で実行される画像表示処理の内容を説明するフローチャートを示す図。
【図19】第1実施形態に係る画像変換器で実行される画像変換処理の一例を説明する図(画像データ縮小)。
【図20】第1実施形態に係る画像変換器で実行される画像変換処理の一例を説明する図(画像データ拡大)。
【図21】第1実施形態に係る画像変換器で実行される画像変換処理の内容を説明するフローチャートを示す図。
【図22】第2実施形態に係る情報処理端末で実行される画像表示処理の内容を説明するフローチャートを示す図。
【図23】図25に示す画像データをメモリに展開した場合におけるオリジナルインデックスデータの構成の一例を示す図。
【図24】図25に示す画像データについての画像変換処理の一例を説明するための図(縦横比不変、画像データ縮小)。
【図25】図24の画像変換処理で処理される画像データの一例を示す図。
【図26】図24の画像変換処理で生成されるインデックスデータの一例を示す図。
【図27】図28に示す画像データについての画像変換処理の一例を説明するための図(縦横比変換、画像データ縮小)。
【図28】図27の画像変換処理で処理される画像データの一例を示す図。
【図29】図27の画像変換処理で生成されるインデックスデータの一例を示す図。
【図30】図31に示す画像データについての画像変換処理の一例を説明するための図(縦横比不変、画像データ切り出し)。
【図31】図30の画像変換処理で処理される画像データの一例を示す図。
【図32】図30の画像変換処理で生成されるインデックスデータの一例を示す図。
【図33】図34に示す画像データについての画像変換処理の一例を説明するための図(縦横比変換、画像データ切り出し)。
【図34】図33の画像変換処理で処理される画像データの一例を示す図。
【図35】図33の画像変換処理で生成されるインデックスデータの一例を示す図。
【符号の説明】
【0105】
100 CPU
102 画像変換器
104 メモリ
106 ハードディスク
110 内部バス
120 LCD
122 LCDコントローラ
【技術分野】
【0001】
本発明は、画像変換システムに関し、特に、画像変換処理に必要なメモリ領域の削減を図った画像変換システムに関する。
【背景技術】
【0002】
デジタルカメラ等の普及により、デジタルの画像データを情報処理端末が扱うケースが多くなってきている。このようなデジタルの画像データを扱う情報処理端末は、ユーザの要求により、或いは、画面に表示させるために、画像データの解像度変換を行い、縮小した画像データや、拡大した画像データを生成することがある。例えば、表示画面が横640ピクセル×縦480ピクセルの場合、横3072ピクセル×縦2304ピクセルの画像データは、横640ピクセル×縦480ピクセルの画像データに変換した上で(サイズを縮小した上で)、表示画面で表示する必要がある。
【0003】
また、画像データや、表示画面の縦横比には、3:2、16:9、4:3(いずれも横:縦)などの様々なものが存在する。このため、画像データの縦横比と、表示画面の縦横比が異なる場合には、情報処理端末は、表示画面の縦横比に合うように、画像データの縦横比を変換して、表示画面で表示する必要がある。
【0004】
より詳しく説明すると、まず、図1は、縦横比が同一のまま、画像データを縮小する場合の画像縮小処理を説明する図である。この図1に示すように、画像データを縮小する場合、情報処理端末は、メモリ10に画像データIM1を展開しておき、この画像データIM1の入力サイズと、縮小した画像データIM2の出力サイズと、画像データIM1が格納されているメモリ10内の先頭アドレスと、縮小した画像データを格納するメモリ10の先頭アドレスとを、画像変換器20に出力する。これらを取得した画像変換器20は、指定された先頭アドレスから順次、画像データIM1を取得して、画像の縮小を行い、縮小された画像データを、指定された先頭アドレスに順次格納する。これにより、メモリ10には、縮小された画像データIM2が格納される。
【0005】
図2は、縦横比が異なる場合の画像縮小処理を説明する図である。この図2に示すように、情報処理端末は、メモリ10に画像データIM3を展開しておき、表示画面の縦横比に合うように、この画像データIM3の上下にそれぞれ黒帯データを追加して、メモリ10上に、画像データIM4を生成する。続いて、情報処理端末は、この画像データIM4の入力サイズと、縮小した画像データIM5の出力サイズと、画像データIM4が格納されているメモリ10内の先頭アドレスと、画像データIM5を格納するメモリ10の先頭アドレスとを、画像変換器20に出力する。これらを取得した画像変換器20は、指定された先頭アドレスから順次、画像データIM4を取得して、画像の縮小を行い、縮小された画像データを、指定された先頭アドレスに順次格納する。これにより、メモリ10には、縮小された黒帯付きの画像データIM5が格納される。
【0006】
図3は、縦横比が同一の場合の画像切り出し処理を説明する図である。この図3に示すように、情報処理端末は、メモリ10に画像データIM6を展開しておき、ユーザに指定された部分を切り出して、画像データIM7としてメモリ10に格納する。続いて、情報処理端末は、この画像データIM7の入力サイズと、拡大した画像データIM8の出力サイズと、画像データIM7が格納されているメモリ10内の先頭アドレスと、画像データIM8を格納するメモリ10の先頭アドレスとを、画像変換器20に出力する。これらを取得した画像変換器20は、指定された先頭アドレスから順次、画像データIM7を取得して、画像の拡大を行い、拡大された画像データを、指定された先頭アドレスに順次格納する。これにより、メモリ10には、拡大された画像データIM8が格納される。
【0007】
図4は、縦横比が異なる場合の画像切り出し処理を説明する図である。この図4に示すように、情報処理端末は、メモリ10に画像データIM9を展開しておき、表示画面の縦横比に合うように、この画像データIM9の上下にそれぞれ黒帯データを追加して、メモリ10上に、画像データIM10を生成する。続いて、情報処理端末は、ユーザに指定された部分を切り出して、画像データIM11としてメモリ10に格納する。続いて、情報処理端末は、この画像データIM11の入力サイズと、拡大した画像データIM12の出力サイズと、画像データIM11が格納されているメモリ10内の先頭アドレスと、画像データIM12を格納するメモリ10の先頭アドレスとを、画像変換器20に出力する。これらを取得した画像変換器20は、指定された先頭アドレスから順次、画像データIM11を取得して、画像の拡大を行い、拡大された画像データを、指定された先頭アドレスに順次格納する。これにより、メモリ10には、拡大された画像データIM12が格納される。
【0008】
このような画像表示処理は、CPU等によりソフトウェアにより実行され、画像を拡大/縮小するための解像度変換は、ハードウェアにより構成された画像変換器により実行されている。また、このような画像変換処理を行うための技術は、例えば、特許文献1(特開2003−283815号公報)に開示されている。
【特許文献1】特開2003−283815号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
しかしながら、上述した画像変換処理においては、メモリ10の領域が多大に必要となる問題が生じている。すなわち、画像データの縦横比の変換を伴う場合には、画像データの上下に黒帯を付けた画像データIM4、IM10をメモリ10上に一旦形成しなければならず、その分、画像変換処理に必要なメモリ領域が増大していた。また、画像の切り出しを行う場合でも、切り出した画像データIM7をメモリ10上に一旦形成しなければならず、その分、画像変換処理に必要なメモリ領域が増大していた。
【0010】
そこで本発明は、前記課題に鑑みてなされたものであり、画像変換処理に必要なメモリ領域の削減を図った画像変換システムを提供することを目的とする。
【課題を解決するための手段】
【0011】
上記課題を解決するため、本発明に係る画像変換システムは、
画像データが展開されるメモリと、
前記メモリに展開されている画像データである入力画像データにおける各ラインのアドレスを特定する情報であるラインアドレス情報を取得する、ラインアドレス情報取得手段と、
前記ラインアドレス情報取得手段で取得した各ラインのラインアドレス情報をインデックス形式でまとめたインデックスデータを生成する、インデックスデータ生成手段と、
前記インデックスデータに基づいて、前記入力画像データの解像度の変換を行い、変換後の画像データを出力画像データとして、前記メモリに格納する、画像変換器と、
を備えることを特徴とする。
【0012】
この場合、前記メモリ上に、1ライン分の帯データを生成する、帯データ生成手段と、
前記帯データの1ライン分のアドレスを特定する情報である帯ラインアドレス情報を取得する、帯ラインアドレス情報取得手段と、
をさらに備えており、
前記入力画像データと前記出力画像データとの縦横比が異なる場合には、前記インデックスデータ生成手段は、前記出力画像データの縦横比に合うように、前記帯ラインアドレス情報を前記インデックスデータに付加するようにしてもよい。
【0013】
この場合、前記帯データ生成手段が生成する前記帯データは、黒の1ライン分のデータであるようにしてもよい。
【0014】
また、前記メモリに展開されている画像データの一部の領域を切り出して、これを入力画像データとする場合には、この切り出す領域を特定する、領域特定手段を、さらに備えており、
前記ラインアドレス情報取得手段は、前記領域特定手段で特定された領域内における各ラインのラインアドレス特定情報を取得するようにしてもよい。
【0015】
また、前記出力画像データを格納する前記メモリ上のアドレスを特定する格納アドレス情報を、前記画像変換器に出力する、格納アドレス情報出力手段を、さらに備えており、
前記画像変換器は、この格納アドレス情報に基づいて特定された前記メモリ上のアドレスに、前記出力画像データを格納するようにしてもよい。
【0016】
また、前記入力画像データのサイズと前記出力画像データのサイズとを、前記画像変換器に出力する、サイズ出力手段をさらに備えており、
前記画像変換器は、前記入力画像データのサイズと前記出力画像データのサイズに基づいて、前記入力画像データの解像度の変換を行うようにしてもよい。
【0017】
また、前記ラインアドレス情報は、前記入力画像データの左端のアドレスであり、前記帯ラインアドレス情報は、前記帯データの左端のアドレスであるようにしてもよい。
【0018】
また、前記画像変換器が解像度の変換を行うことのできる前記入力画像データの縦横比は、固定であるようにしてもよい。
【0019】
また、画像データを各ライン毎に前記メモリに展開する、画像データ展開手段であって、1ライン分以上の連続した空き領域が前記メモリ内にあれば、この空き領域に、各ラインの画像データを格納する、画像データ展開手段を、さらに備えるようにしてもよい。
【0020】
なお、本発明は、上述したように画像変換を行う方法としてとらえることもでき、上述したような画像変換を情報処理端末に行わせるためのプログラムとしてとらえることもでき、そのようなプログラムを記録した記録媒体としてとらえることもできる。
【発明を実施するための最良の形態】
【0021】
〔第1実施形態〕
図5は、本実施形態に係る情報処理端末の構成の一例を説明するブロック図である。この図5に示すように、本実施形態に係る情報処理端末は、CPU(Central Processing Unit)10と、画像変換器102と、メモリ104と、ハードディスク106とを備えており、これらは内部バス110を介して相互に接続されている。さらに、本実施形態に係る情報処理端末においては、内部バス110にLCDコントローラ122も接続されており、このLCDコントローラ122に、LCD(Liquid Crystal Display)120が接続されている。
【0022】
本実施形態においては、画像変換器102はハードウェアにより構成されており、例えばASIC(Application Specific IC)により構成されている。この画像変換器102は、入力された画像データの解像度変換を行い、メモリ104に出力する機能を有している。また、メモリ104はRAM(Random Access Memory)により構成されている。
【0023】
なお、本実施形態に係る画像変換器102は、解像度変換を行う画像の縦横比が3:2(横:縦)に固定されている。このため、この定められた縦横比と異なる画像の解像度変換をしようとする場合には、画像変換器102に画像データを渡す前に、画像の上下に黒帯を付加して、定められた縦横比になるように調整しなければならない。但し、この画像変換器102が解像度変換することのできる縦横比は、必ずしも固定でなくても、本発明を実現することはできる。
【0024】
ハードディスク106は、本実施形態における補助記憶装置の一例であり、LCD120は、本実施形態における表示画面の一例である。本実施形態におけるLCD120は、例えば、横640ピクセル×縦480ピクセルのサイズで構成されている。
【0025】
また、この図1に示す情報処理端末は、例えば、ハードディスク106に格納されている画像データを、LCD120で表示することができるフォトビューアという携帯用の情報処理端末を想定しているが、これ以外でも、ディスクトップ型のコンピュータや、ノート型のコンピュータ等であってもよい。
【0026】
次に、この情報処理端末で実行される画像変換処理について説明する。図6乃至図8は、本実施形態に係る情報処理端末で実行される縦横比が同一の場合の画像縮小処理の内容を説明するための図である。具体的には、図6は、画像縮小処理の全体の流れを説明する図であり、図7は、変換される画像データの一例を示す図であり、図8は、この画像縮小処理で生成されるインデックスデータの一例を示す図である。
【0027】
図6に示すように、情報処理端末は、元の画像データIM20をメモリ104に展開する。そして、この画像データIM20に基づいて、図8に示すようなインデックスデータIND20を生成する。すなわち、画像データIM20における各ラインの左端の画像データが格納されているアドレスを一覧形式でまとめて、インデックスデータIND20を生成する。この例では、図7から分かるように画像データIM20の第1のラインの左端のアドレスは、「0100000」であり、第2のラインの左端のアドレスは、「0100100」であり、最後のラインの左端のアドレスは「010FF00」である。したがって、図8のようなインデックスデータIND20が生成されることとなる。
【0028】
そして、情報処理端末は、このインデックスデータIND20と、画像データIM20のサイズ(入力サイズ)と、縮小した画像データIM21のサイズ(出力サイズ)と、縮小した画像データIM21を格納するメモリ104内の先頭アドレスとを、画像変換器102に出力する。
【0029】
これらを取得した画像変換器102では、入力サイズと出力サイズとに基づいて、倍率を算出し、また、インデックスデータIND20に基づいて、各ラインの画像データを取得して、縮小した画像データを生成し、指定された先頭アドレスから順次、画像データを格納していく。具体的には、アドレス「0100000」から画像データを取得して、算出された倍率で解像度の変換を行って、画像データを縮小する。そして、指定された先頭アドレスに縮小した画像データを格納する。次に、アドレス「0100001」から画像データを取得して、算出された倍率で解像度の変換を行って、画像データを縮小する。そして、指定された先頭アドレスの次のアドレスに縮小した画像データを格納する。この処理を1ライン分繰り返し、第1のラインが終了した場合には、第2のラインの左端であるアドレス「0100100」からこれと同様の処理を繰り返す。そして、最後のラインまでこの処理を行うことにより、縮小した画像データIM21が、メモリ104内に形成される。
【0030】
本実施形態では、この画像データIM21は、LCD120と同じ640×480ピクセルになっており、情報処理端末は、この画像データIM21をLCD120に表示することができる。
【0031】
次に、図9乃至図11に基づいて、本実施形態に係る情報処理端末で実行される縦横比が異なる場合の画像縮小処理の内容を説明する。具体的には、図9は、画像縮小処理の全体の流れを説明する図であり、図10は、変換される画像データの一例を示す図であり、図11は、この画像縮小処理で生成されるインデックスデータの一例を示す図である。
【0032】
図9に示すように、情報処理端末は、元の画像データIM30をメモリ104に展開する。そして、画像データIM30の縦横比をLCD120に合わせるための黒帯の画像データIM31を1ライン分だけ、メモリ104に生成する。
【0033】
次に、画像データIM30に基づいて、図11に示すようなインデックスデータIND30を生成する。すなわち、画像データIM30における各ラインの左端の画像データが格納されているアドレスと、黒帯の画像データIM31の左端のアドレスとを一覧形式でまとめて、インデックスデータIND30を生成する。この例では、図10から分かるように画像データIM30の第1のラインの左端のアドレスは、「0100000」であり、第2のラインの左端のアドレスは、「0100100」であり、最後のラインの左端のアドレスは「010AF00」である。
【0034】
また、黒帯の画像データIM31の左端のアドレスは、「0200000」である。したがって、インデックスデータIND30を生成する際には、図11に示すように、黒帯を形成するための領域である画像データIM30の上下には、黒帯の画像データの左端のアドレス「0200000」が格納される。
【0035】
そして、情報処理端末は、このインデックスデータIND30と、画像データIM30のサイズ(入力サイズ)と、縮小した画像データIM32のサイズ(出力サイズ)と、縮小した画像データIM32を格納するメモリ104内の先頭アドレスとを、画像変換器102に出力する。
【0036】
これらを取得した画像変換器102では、入力サイズと出力サイズとに基づいて、倍率を算出し、また、インデックスデータIND30に基づいて、各ラインの画像データを取得して、縮小した画像データを生成し、指定された先頭アドレスから順次、画像データを格納していく。具体的には、まず、アドレス「0200000」から画像データを取得して、算出された倍率で解像度の変換を行って、取得した画像データを縮小する。そして、指定された先頭アドレスに縮小した画像データを格納する。次に、アドレス「0200001」から画像データを取得して、算出された倍率で解像度の変換を行って、取得した画像データを縮小する。そして、指定された先頭アドレスの次のアドレスに縮小した画像データを格納する。この処理を1ライン分繰り返し、第1のラインが終了した場合には、第1のラインと同じアドレスである「0200000」から、画像データIM31のデータを取得して、同様の処理を繰り返す。そして、最後のラインまでこの処理を行うことにより、黒帯が付加されて、縮小された画像データIM32が、メモリ104内に形成される。
【0037】
本実施形態では、この画像データIM32は、LCD120と同じ640×480ピクセルになっており、情報処理端末は、この画像データIM32をLCD120に表示することができる。
【0038】
次に、図12乃至図14に基づいて、本実施形態に係る情報処理端末で実行される縦横比が同一の場合の画像切り出し処理の内容を説明するための図である。具体的には、図12は、画像切り出し処理の全体の流れを説明する図であり、図13は、変換される画像データの一例を示す図であり、図14は、この画像切り出し処理で生成されるインデックスデータの一例を示す図である。
【0039】
図12に示すように、情報処理端末は、元の画像データIM40をメモリ104に展開する。続いて、ユーザに、画像データIM40から切り出す画像の領域を指定させる。但し、この切り出す画像は、実際に切り出してメモリ104に展開し直すのではなく、切り出す領域を特定するだけである。また、ここでは、元の画像データIM40の縦横比と、切り出す画像の縦横比は、同じであり、これらはLCD120の縦横比と同じである。
【0040】
次に、この画像データIM40から切り出した画像データに基づいて、図14に示すようなインデックスデータIND40を生成する。すなわち、画像データIM40から切り出す画像データにおける各ラインの左端の画像データが格納されているアドレスを一覧形式でまとめて、インデックスデータIND40を生成する。この例では、図13から分かるように画像データIM40から切り出す画像データの第1のラインの左端のアドレスは、「0100350」であり、第2のラインの左端のアドレスは、「0100450」であり、最後のラインの左端のアドレスは「0105950」である。したがって、図14のようなインデックスデータIND20が生成されることとなる。
【0041】
そして、情報処理端末は、このインデックスデータIND40と、画像データIM40から切り出す画像データのサイズ(入力サイズ)と、拡大した画像データIM41のサイズ(出力サイズ)と、拡大した画像データIM41を格納するメモリ104内の先頭アドレスとを、画像変換器102に出力する。
【0042】
これらを取得した画像変換器102では、入力サイズと出力サイズとに基づいて、倍率を算出し、また、インデックスデータIND40に基づいて、各ラインの画像データを取得して、拡大した画像データを生成し、指定された先頭アドレスから順次、画像データを格納していく。具体的には、アドレス「0100350」から画像データを取得して、算出された倍率で解像度を変換して、取得した画像データを拡大する。そして、指定された先頭アドレスに拡大した画像データを格納する。次に、アドレス「0100351」から画像データを取得して、算出された倍率で解像度を変換して、取得した画像データを拡大する。そして、指定された先頭アドレスの次のアドレスに拡大した画像データを格納する。この処理を1ライン分繰り返し、第1のラインが終了した場合には、第2のラインの左端であるアドレス「0100450」からこれと同様の処理を繰り返す。そして、最後のライン(アドレス「0105950」のライン)までこの処理を行うことにより、切り出した画像データIM41が、メモリ104内に形成される。
【0043】
本実施形態では、この画像データIM41は、LCD120と同じ640×480ピクセルになっており、情報処理端末は、この画像データIM41をLCD120に表示することができる。
【0044】
次に、図15乃至図17に基づいて、本実施形態に係る情報処理端末で実行される縦横比が異なる場合の画像切り出し処理の内容を説明する。具体的には、図15は、画像切り出し処理の全体の流れを説明する図であり、図16は、変換される画像データの一例を示す図であり、図16は、この画像切り出し処理で生成されるインデックスデータの一例を示す図である。
【0045】
図15に示すように、情報処理端末は、元の画像データIM50をメモリ104に展開する。そして、画像データIM50の縦横比をLCD120に合わせるための黒帯の画像データIM51を1ライン分だけ、メモリ104に生成する。続いて、ユーザに、画像データIM50から切り出す画像の領域を指定させる。但し、この切り出す画像は、実際に切り出してメモリ104に展開し直すのではなく、切り出す領域を特定するだけである。また、ここでは、元の画像データIM40の縦横比と、切り出す画像の縦横比は、同じであるが、これらはLCD120の縦横比と異なる。
【0046】
次に、画像データIM50から切り出す画像データに基づいて、図17に示すようなインデックスデータIND50を生成する。すなわち、画像データIM50から切り出す画像データにおける各ラインの左端の画像データが格納されているアドレスと、切り出す画像データの幅に対応する黒帯の画像データIM51の左端のアドレスとを一覧形式でまとめて、インデックスデータIND50を生成する。この例では、図16から分かるように画像データIM50から切り出す画像データの第1のラインの左端のアドレスは、「0108030」であり、第2のラインの左端のアドレスは、「0108130」であり、最後のラインの左端のアドレスは「010A030」である。
【0047】
また、切り出す画像データの幅に対応する黒帯の画像データIM51の左端のアドレスは、「0200030」である。したがって、インデックスデータIND50を生成する際には、図17に示すように、黒帯を形成するための領域である画像データIM50の上下には、黒帯の画像データの左端のアドレス「0200030」が格納される。
【0048】
そして、情報処理端末は、このインデックスデータIND50と、画像データIM50から切り出した画像データのサイズ(入力サイズ)と、拡大した画像データIM52のサイズ(出力サイズ)と、拡大した画像データIM52を格納するメモリ104内の先頭アドレスとを、画像変換器102に出力する。
【0049】
これらを取得した画像変換器102では、入力サイズと出力サイズとに基づいて、倍率を算出し、また、インデックスデータIND50に基づいて、各ラインの画像データを取得して、拡大した画像データを生成し、指定された先頭アドレスから順次、画像データを格納していく。具体的には、まず、アドレス「0200030」から画像データを取得して、算出された倍率で解像度の変換を行い、取得した画像データを拡大する。そして、指定された先頭アドレスに拡大した画像データを格納する。次に、アドレス「0200031」から画像データを取得して、算出された倍率で解像度の変換を行って、取得した画像データを拡大する。そして、指定された先頭アドレスの次のアドレスに縮小した画像データを格納する。この処理を1ライン分繰り返し、第1のラインが終了した場合には、第1のラインと同じアドレスである「0200030」から、画像データIM51のデータを取得して、同様の処理を繰り返す。そして、最後のラインまでこの処理を行うことにより、黒帯が付加されて、拡大された画像データIM52が、メモリ104内に形成される。
【0050】
本実施形態では、この画像データIM52は、LCD120と同じ640×480ピクセルになっており、情報処理端末は、この画像データIM52をLCD120に表示することができる。
【0051】
次に、図18に基づいて、上述した画像変換処理を用いて画像データを表示する画像表示処理の内容を説明する。この画像表示処理は、例えば、ハードディスク106に格納されている画像表示処理プログラムをCPU100が読み出して実行することにより、実現される処理である。
【0052】
この図18に示すように、情報処理端末は、まず、表示する画像データをメモリ104に展開する(ステップS10)。本実施形態においては、メモリ104内における1枚分の画像データを格納することができる連続した空き領域に、画像データを展開する。次に、情報処理端末は、画像データの縦横比を変換する必要があるかどうかを判断する(ステップS12)。具体的には、本実施形態のLCD120の縦横比が、4:3(640×480)であるので、画像データの縦横比が4:3であるかどうかを判断する。
【0053】
画像データの縦横比を変換する必要がない場合(ステップS12:No)には、情報処理端末は、この画像表示処理が画像切り出し処理を伴うものであるかどうかを判断する(ステップS14)。この画像表示処理が画像切り出し処理を伴うものでない場合(ステップS14:No)には、メモリ104に展開されている画像データに基づいて、インデックスデータを生成する(ステップS16)。この処理は、上述した図6乃至図8に対応する処理である。
【0054】
一方、ステップS14で、この画像表示処理が画像切り出し処理を伴うものであると判断した場合(ステップS14:Yes)には、ユーザが切り出した部分の画像データについて、インデックスデータを生成する(ステップS18)。この処理は、上述した図12乃至図14に対応する処理である。
【0055】
これに対して、上述したステップS12で、画像データの縦横比を変換する必要があると判断した場合(ステップS12:Yes)には、1ライン分の黒帯の画像データをメモリ104に生成する(ステップS20)。つまり、画像データの幅と同じ幅の1ライン分の黒データを生成する。
【0056】
次に、情報処理端末は、この画像表示処理が画像切り出し処理を伴うものであるかどうかを判断する(ステップS22)。この画像表示処理が画像切り出し処理を伴うものでない場合(ステップS22:No)には、メモリ104に展開されている画像データと、1ライン分の黒帯の画像データとに基づいて、画像データに黒帯を付加したインデックスデータを生成する(ステップS24)。この処理は、上述した図9乃至図11に対応する処理である。
【0057】
一方、ステップS22で、この画像表示処理が画像切り出し処理を伴うものであると判断した場合(ステップS22:Yes)には、ユーザが切り出した部分の画像データと、1ライン分の黒帯の画像データとに基づいて、切り出した部分の画像データに黒帯を付加したインデックスデータを生成する(ステップS26)。この処理は、上述した図15乃至図17に対応する処理である。なお、図16からも分かるように、本実施形態では、黒帯の画像データの左端のアドレスの位置は、切り出す画像データの左端のアドレスの位置と合致するように設定するが、単純に黒帯の画像データそのものの左端に設定しても良い。この場合、図17に示したインデックスデータIND50における黒帯の画像データのアドレスは「0200000」となる。
【0058】
そして、これらステップS16、ステップS18、ステップS24、又は、ステップS25の処理の後、情報処理端末は、生成したインデックスデータと、画像データの入力サイズと、画像データの出力サイズと、出力画像データを格納するメモリ104内の先頭アドレスとを、画像変換器102に出力する(ステップS28)。本実施形態においては、この時点で縦横比の変換に必要な処理は行われているので、画像データの入力サイズとして、入力する画像データの幅(或いは高さ)を出力し、画像データの出力サイズとして、出力する画像の幅(あるいは高さ)を出力する。ここでは、LCD120に画像を表示するための処理を想定しているので、出力サイズは、幅640ピクセル(或いは高さ480ピクセル)で、固定である。
【0059】
これにより、画像変換器102は画像変換処理を行い、指定された先頭アドレスが、変換処理後の画像データの先頭アドレスになるように、メモリ104に画像データを格納するので、情報処理端末はこの先頭アドレスから画像変換後の画像データ(640×480ピクセルの画像データ)を読み出して、640×480ピクセルのLCD120に表示する(ステップS30)。これにより、本実施形態に係る画像表示処理が終了する。
【0060】
次に、上述したハードウェアである画像変換器102で実行される画像変換処理について詳しく説明する。この画像変換処理には、様々なものが存在するが、ここでは単純に、画像を縮小する場合には、画像データの値の一部を間引くことにより解像度変換を行い、画像を拡大する場合には、適当な画像データの値を挿入することにより解像度変換を行う手法を説明する。なお、画像変換処理はこれ以外の様々な手法を採用することができる。
【0061】
図19は画像を縮小する場合の画像変換処理の内容を説明するための図である。この図19に示すように、例えば、画像の一辺を1/2に縮小する場合には、出力画像データの座標(0,0)に、入力画像データの座標(0,0)の値を格納し、出力画像データの座標(1,0)に、入力画像データの座標(2,0)の値を格納し、出力画像データの座標(0,1)に、入力画像データの座標(0,2)の値を格納し、出力画像データの座標(1,1)に、入力画像データの座標(2,2)の値を格納する。
【0062】
図20は画像を拡大する場合の画像変換処理の内容を説明するための図である。この図20に示すように、例えば、画像の一辺を2倍に拡大する場合には、出力画像データの座標(0,0)に、入力画像データの座標(0,0)の値を格納し、出力画像データの座標(1,0)に、入力画像データの座標(0,0)の値を格納し、出力画像データの座標(0,1)に、入力画像データの座標(0,0)の値を格納し、出力画像データの座標(1,1)に、入力画像データの座標(0,0)の値を格納する。
【0063】
同様に、出力画像データの座標(2,0)、(3,0)、(2,1)、(3,1)のそれぞれに、入力画像データの座標(1,0)の値を格納し、出力画像データの座標(0,2)、(1,2)、(0,3)、(1,3)のそれぞれに、入力画像データの座標(0,1)の値を格納し、出力画像データの座標(2,2)、(3,2)、(2,3)、(3,3)のそれぞれに、入力画像データの座標(1,1)の値を格納する。
【0064】
次に、このような処理を実現するために、画像変換器102で実行される処理内容を詳しく説明する。図21は、上述した画像表示処理を受けて、画像変換器102でハードウェアにより実行される画像変換処理の内容を説明するフローチャートを示す図である。
【0065】
この図21に示すように、画像変換器102は、まず、ステップS28で、CPU100から出力された、画像データの入力サイズと、画像データの出力サイズと、出力画像データを格納するメモリ104内の先頭アドレスと、インデックスデータとを受信して、取得する(ステップS50)。
【0066】
次に、画像変換器102は、入力サイズ/出力サイズを倍率αとして、算出する(ステップS52)。続いて、画像変換器102は、変数Xの初期値を0にし、変数Yの初期値も0にする(ステップS54)。
【0067】
次に、画像変換器102は、インデックスデータを参照して、入力画像データの座標(α×X,α×Y)の値を取得する(ステップS56)。具体的には、画像変換器102は、インデックスデータにおける画像データの上端のラインにおける左端の位置を原点(0,0)とし、座標(α×X,α×Y)の位置の値を取得する。
【0068】
次に、ステップS58で取得した値を、座標(X,Y)の出力画像データとして、メモリ104に格納する(ステップS58)。具体的には、画像変換器102は、出力画像データの先頭アドレスとして指定された位置を原点(0,0)とし、座標(X、Y)の位置に、取得した値を格納する。
【0069】
なお、実際には、これらステップS56及びステップS58の処理は、赤(R)、緑(G)、青(B)の各色毎に行われる。なぜなら、これら赤(R)、緑(G)、青(B)の各色毎に値を定めることにより、1つの画素の色が定まるからである。
【0070】
次に、画像変換器102は、X座標の値が、ラインの右端に達しているかどうかを判断する(ステップS60)。ここでは、ラインの右端の位置は、出力画像データの幅が640ピクセルであるので、X座標としては、639ピクセルの位置である。X座標の値がラインの右端に達していない場合(ステップS60:No)には、Xに1を加えて(ステップS62)、上述したステップS56からを繰り返す。
【0071】
一方、X座標の値がラインの右端に達している場合(ステップS60:Yes)には、Y座標の値が最後のライン(下端のライン)に達しているかどうかを判断する(ステップS64)。ここでは、最後のラインの位置は、出力画像データの高さが480ピクセルであるので、Y座標としては479ピクセルの位置である。Y座標の値が最後のラインに達していない場合(ステップS64:No)には、Xの値を0に戻し(ステップS66)、Yの値に1を加えた後(ステップS68)、上述したステップS56からを繰り返す。
【0072】
以上のように、本実施形態に係る情報処理端末によれば、画像表示処理において、切り出した画像データを一旦メモリ104に展開する必要がなくなり、また、黒帯データを付加した画像データを一旦メモリ104に展開する必要がなくなるので、画像表示処理において使用されるメモリ104の領域を削減することができる。
【0073】
また、本実施形態に係る情報処理端末によれば、画像表示処理に必要なCPU100の処理負荷を軽減することができ、処理の高速化を図ることができる。例えば、3072×2048ピクセルの画像データを、640×480ピクセルのLCD120に画像データを表示する場合を想定する。この場合、従来の手法では、次のような処理が発生する。
(A1)3072×2048ピクセルの画像データを読み込んで、メモリ104に展開する。
(A2)3072×2048ピクセルの画像データを、メモリ104上の別の領域にコピーする。
(A3)コピーした画像データに、3072×256ピクセルの黒帯データを付加して、3072×2304ピクセルの画像データにする。つまり、上下に128ラインの黒帯データを付加する。
(A4)この黒帯を付加した3072×2304ピクセルの画像データを、640×480ピクセルの画像データに、画像変換器が変換する。
【0074】
これに対して、本実施形態では、次のような処理しか発生しない。
(B1)3072×2048ピクセルの画像データを読み込んで、メモリ104に展開する。
(B2)3072×1ピクセルの黒帯のデータを、メモリ104上に生成する。
(B3)2304ライン分のインデックスデータを生成する。
(B4)2304ライン分のインデックスデータに基づいて、640×480ピクセルの画像データを、画像変換器が生成する。
【0075】
このことから分かるように、本実施形態によれば、大量の画像データをコピーしたり、生成したりする(A2)、(A3)の処理が発生しないので、その分、CPU100の処理負荷を軽減することができる。
【0076】
〔第2実施形態〕
上述した第1実施形態では、画像データIM20、IM30、IM40、IM50をメモリ104の連続した領域に格納することとしている。すなわち、上述した第1実施形態では、画像データIM20、IM30、IM40、IM50をメモリ104の連続した領域に展開しなければならないという制約があり、メモリ104上に大きな空き領域を確保する必要がある。しかし、通常よく用いられているメモリ管理手法では、メモリ104に小さい空き領域が飛び飛びに発生しやすい傾向があり、上述した第1実施形態に係る情報処理端末では、メモリ104のメモリ領域を有効に活用することが困難なことも想定される。
【0077】
そこで、第2実施形態では、メモリ104上で飛び飛びに発生した空き領域を有効に活用して、画像データIM20、IM30、IM40、IM50をメモリ104に展開することができるようにしたものである。すなわち、1ライン分の画像データを格納できる連続した領域さえあれば、この領域に1ライン分の画像データを格納し、その画像データを格納したアドレスについてインデックスデータを用いて管理するようにしたものである。以下、上述した第1実施形態と異なる部分のみを説明する。
【0078】
図22は、本実施形態に係る画像表示処理の内容を説明するフローチャートを示す図であり、上述した第1実施形態における図18に対応する図である。
【0079】
この図22に示すように、本実施形態に係る情報処理端末は、ステップS210において、画像データをメモリに展開する際には、メモリ104上の飛び飛びの領域も有効に活用して、画像データを展開する。具体的には、1ライン以上の画像データを格納できる連続した空き領域をメモリ104上から見つけ出し、この空き領域に画像データを各ライン毎に飛び飛びで格納していく。そして、画像データをメモリ104上に格納する際には、その格納したアドレスを各ライン毎に、オリジナルインデックスデータとして格納して、管理できるようにしておく。
【0080】
図23は、この際に生成されるオリジナルインデックスデータIND200の構成の一例を示す図であり、図24は、メモリ104内のメモリ領域配置と画像縮小処理の全体の流れを説明する図であり、図25は、メモリ104に展開される画像データIM20を示す図である。本実施形態においては、このオリジナルインデックスデータIND200も、メモリ104上に生成され格納される。
【0081】
これら図23乃至図26の例では、最初の1ライン目の画像データがアドレス「0080000」から始まる連続した領域に格納されている。続く2ライン目からの画像データは、アドレス「0100100」からアドレス「010FD00」の連続した領域に格納されている。そして、最後から2番目のラインの画像データは、アドレス「0120000」から始まる連続した領域に格納されており、最後のラインの画像データは、アドレス「0120100」から始まる連続した領域に格納されている。このように、1ライン分の空き領域があれば、それが飛び飛びであっても有効に活用して、画像データを展開するのである。
【0082】
そして、図22に示すように、情報処理端末は、縦横比の変換が必要でなく、画像切り出し処理も必要でない場合(ステップS12:No、ステップS14:No)には、ステップS216において、画像データのインデックスデータを生成する。
【0083】
図26は、ステップS216で生成されるインデックスデータIND220の一例を示す図である。この図26から分かるように、ステップS216で生成されるインデックスデータ220は、ステップS210で生成したオリジナルインデックスデータIND200と同じである。このため、本実施形態においては、メモリ104上に格納されているオリジナルインデックスデータIND200を、そのまま、インデックスデータIND220として用いることにしている。
【0084】
一方、縦横比の変換が必要であり、画像切り出し処理は必要でない場合(ステップS12:Yes、ステップS22:No)には、情報処理端末は、ステップS224において、画像データのインデックスデータを生成する。
【0085】
図27は、メモリ104内のメモリ領域配置の一例と画像縮小処理の全体の流れを説明する図であり、図28は、メモリ104に展開される画像データIM30の一例を示す図であり、図29は、ステップS224で生成されるインデックスデータIND230の一例を示す図である。
【0086】
これら図27乃至図29に示すように、画像データIM30が飛び飛びの領域を有効に活用してメモリ104上に展開されており、この画像データIM30のオリジナルインデックスデータIND300もメモリ104上に格納されている。ステップS224においては、画像変換器102に出力する画像データの横と縦の比を3:2にするために、黒帯の画像データIM31を付加して、インデックスデータIND230を生成する。具体的には、オリジナルインデックスデータIND300の上下に、黒帯の画像データIM31のアドレス「0200000」を付加したインデックスデータIND230を生成する。
【0087】
一方、縦横比の変換が必要でなく、画像切り出し処理は必要である場合(ステップS12:No、ステップS14:Yes)には、情報処理端末は、ステップS218において、画像データのインデックスデータを生成する。
【0088】
図30は、メモリ104内のメモリ領域配置の一例と画像切り出し処理の全体の流れを説明する図であり、図31は、メモリ104に展開される画像データIM40の一例を示す図であり、図32は、ステップS218で生成されるインデックスデータIND240の一例を示す図である。
【0089】
これら図30乃至図32に示すように、画像データIM40が飛び飛びの領域を有効に活用してメモリ104上に展開されており、この画像データIM40のオリジナルインデックスデータIND400もメモリ104上に格納されている。ステップS218においては、ユーザが切り出した部分の画像データについて、インデックスデータIND240を生成する。この例においては、ユーザが切り出した部分の画像データは、オリジナルインデックスデータIND400を参照すると、アドレス「0100350」〜アドレス「0105750」から始まる領域の部分と、アドレス「0110050」及びアドレス「0110150」から始まる領域の部分であるので、これらのアドレスに基づいて、インデックスデータIND240を生成する。
【0090】
一方、縦横比の変換が必要であり、画像切り出し処理も必要である場合(ステップS12:Yes、ステップS22:Yes)には、情報処理端末は、ステップS226において、画像データのインデックスデータを生成する。
【0091】
図33は、メモリ104内のメモリ領域配置の一例と画像切り出し処理の全体の流れを説明する図であり、図34は、メモリ104に展開される画像データIM50の一例を示す図であり、図35は、ステップS226で生成されるインデックスデータIND250の一例を示す図である。
【0092】
これら図33乃至図35に示すように、画像データIM50が飛び飛びの領域を有効に活用してメモリ104上に展開されており、この画像データIM50のオリジナルインデックスデータIND500もメモリ104上に格納されている。ステップS226においては、画像変換器102に出力する画像データの横と縦の比を3:2にするために、ユーザが切り出した部分の画像データに、黒帯の画像データIM51を付加して、インデックスデータIND250を生成する。この例においては、ユーザが切り出した部分の画像データは、オリジナルインデックスデータIND500を参照すると、アドレス「010830」〜アドレス「0108A30」から始まる領域の部分と、アドレス「0120030」〜アドレス「0120A30」から始まる領域の部分であるので、これらのアドレスの上下に、黒帯の画像データIM51のアドレス「0200030」を付加することにより、インデックスデータIND250を生成する。
【0093】
そして、上述した第1実施形態と同様に、これらステップS216、ステップS218、ステップS224、又は、ステップS226で生成したインデックスデータIND220、IND230、IND240、IND250を、画像データの入力サイズと、画像データの出力サイズと、出力画像データを格納するメモリ104内の先頭アドレスとともに、画像変換器102に出力する(ステップS28)。
【0094】
この図22に示した画像表示処理を受けて、画像変換器102で実行される画像変換処理は、上述した第1実施形態における図21と同様である。
【0095】
以上のように、本実施形態に係る情報処理端末によれば、元の画像データをメモリ104に展開する際に、1ライン分以上の画像データを格納できる空き領域があれば、この領域を有効に活用して、元の画像データを格納することができる。このため、メモリ104に形成されてしまう小さい空き領域でも、画像データを構成する各ラインのデータを格納することができるようになり、メモリ104の空き領域の有効活用が可能となる。換言すれば、元の画像データをメモリ104に展開する際に、各ラインの左端のアドレスをインデックスとして保持しているオリジナルインデックスデータを生成することにより、各ラインの画像データの格納場所を自由にすることができる。しかも、格納領域の順序も自由であるので、実際の画像の各ラインにおける上下の位置関係と、メモリ104上における各ラインの格納位置(アドレス)の上下関係とが、入れ替わっていても問題がなくなる。したがって、極めて自由度の高い画像データのメモリ展開を実現することができる。
【0096】
なお、本発明は上記実施形態に限定されず種々に変形可能である。例えば、上述した実施形態では、CPU100により実行される画像表示処理と、画像変換器102と、メモリ104とにより、1つの画像変換システムを構成したが、これとは異なる構成で同様の処理を実現するようにしてもよい。例えば、上述した画像変換器102をハードウェアではなく、ソフトウェアとCPUにより構成するようにしてもよい。すなわち、CPUが所定のプログラムを読み込んで、画像変換器102と同等の処理を実現するようにしてもよい。但し、上述した実施形態のように、画像変換処理をハードウェアである画像変換器102により実現し、それ以外の処理をソフトウェアにより実現した方が、ソフトウェアの処理負荷が軽くなるので、処理全体の高速化を図ることができる。
【0097】
また、上述した実施形態では、入力画像データの各ラインを特定する情報であるラインアドレス情報として、各ラインの左端のアドレスを用いたが、これに限るものではない。例えば、各ラインの右端や中心のアドレスを用いてもよいし、これ以外の方法で特定するようにしてもよい。
【0098】
同様に、1ライン分の黒帯データのラインを特定する情報である黒帯ラインアドレス情報として、黒帯データの左端のアドレスを用いたが、これに限るものではない。例えば、黒帯データの右端や中心のアドレスを用いてもよいし、これ以外の方法で特定するようにしてもよい。
【0099】
また、上述した実施形態では、画像表示処理において、画像変換処理をする場合を説明したが、画像変換処理が必要な他の処理においても、本発明を適用することができる。さらには、例えば、プリンタなどの画像出力装置に本発明を適用してもよい。この場合、帯データとしては、黒帯データではなく、印刷用紙の色に合わせて白帯データを用いることとなる。すなわち、帯データの色は、画像データが出力される背景の色やユーザの好みなどに応じて、任意に選択することができる。
【0100】
また、上述の実施形態で説明した画像表示処理については、この画像表示処理を実行するためのプログラムをフレキシブルディスク、CD−ROM(Compact Disc-Read Only Memory)、ROM、メモリカード等の記録媒体に記録して、記録媒体の形で頒布することが可能である。この場合、この記録媒体に記録された画像表示のプログラムを情報処理端末に読み込ませ、実行させることにより、上述した実施形態を実現することができる。
【0101】
また、情報処理端末は、オペレーティングシステムや別のアプリケーションプログラム等の他のプログラムを備える場合がある。この場合、情報処理端末の備える他のプログラムを活用し、記録媒体には、その情報処理端末が備えるプログラムの中から、上述した実施形態と同等の処理を実現するプログラムを呼び出すような命令を記録するようにしてもよい。
【0102】
さらに、このようなプログラムは、記録媒体の形ではなく、ネットワークを通じて搬送波として頒布することも可能である。ネットワーク上を搬送波の形で伝送されたプログラムは、情報処理端末に取り込まれて、このプログラムを実行することにより上述した実施形態を実現することができる。
【0103】
また、記録媒体にプログラムを記録する際や、ネットワーク上を搬送波として伝送される際に、プログラムの暗号化や圧縮化がなされている場合がある。この場合には、これら記録媒体や搬送波からプログラムを読み込んだ情報処理端末は、そのプログラムの復号や伸張化を行った上で、実行する必要がある。
【図面の簡単な説明】
【0104】
【図1】従来の画像変換処理を説明するための図(縦横比不変、画像データ縮小)。
【図2】従来の画像変換処理を説明するための図(縦横比変換、画像データ縮小)。
【図3】従来の画像変換処理を説明するための図(縦横比不変、画像データ切り出し)。
【図4】従来の画像変換処理を説明するための図(縦横比変換、画像データ切り出し)。
【図5】第1実施形態に係る情報処理端末の構成を説明するブロック図。
【図6】第1実施形態に係る画像変換処理を説明するための図(縦横比不変、画像データ縮小)。
【図7】図6の画像変換処理で処理される画像データの一例を示す図。
【図8】図6の画像変換処理で生成されるインデックスデータの一例を示す図。
【図9】第1実施形態に係る画像変換処理を説明するための図(縦横比変換、画像データ縮小)。
【図10】図9の画像変換処理で処理される画像データの一例を示す図。
【図11】図9の画像変換処理で生成されるインデックスデータの一例を示す図。
【図12】第1実施形態に係る画像変換処理を説明するための図(縦横比不変、画像データ切り出し)。
【図13】図12の画像変換処理で処理される画像データの一例を示す図。
【図14】図12の画像変換処理で生成されるインデックスデータの一例を示す図。
【図15】第1実施形態に係る画像変換処理を説明するための図(縦横比変換、画像データ切り出し)。
【図16】図15の画像変換処理で処理される画像データの一例を示す図。
【図17】図15の画像変換処理で生成されるインデックスデータの一例を示す図。
【図18】第1実施形態に係る情報処理端末で実行される画像表示処理の内容を説明するフローチャートを示す図。
【図19】第1実施形態に係る画像変換器で実行される画像変換処理の一例を説明する図(画像データ縮小)。
【図20】第1実施形態に係る画像変換器で実行される画像変換処理の一例を説明する図(画像データ拡大)。
【図21】第1実施形態に係る画像変換器で実行される画像変換処理の内容を説明するフローチャートを示す図。
【図22】第2実施形態に係る情報処理端末で実行される画像表示処理の内容を説明するフローチャートを示す図。
【図23】図25に示す画像データをメモリに展開した場合におけるオリジナルインデックスデータの構成の一例を示す図。
【図24】図25に示す画像データについての画像変換処理の一例を説明するための図(縦横比不変、画像データ縮小)。
【図25】図24の画像変換処理で処理される画像データの一例を示す図。
【図26】図24の画像変換処理で生成されるインデックスデータの一例を示す図。
【図27】図28に示す画像データについての画像変換処理の一例を説明するための図(縦横比変換、画像データ縮小)。
【図28】図27の画像変換処理で処理される画像データの一例を示す図。
【図29】図27の画像変換処理で生成されるインデックスデータの一例を示す図。
【図30】図31に示す画像データについての画像変換処理の一例を説明するための図(縦横比不変、画像データ切り出し)。
【図31】図30の画像変換処理で処理される画像データの一例を示す図。
【図32】図30の画像変換処理で生成されるインデックスデータの一例を示す図。
【図33】図34に示す画像データについての画像変換処理の一例を説明するための図(縦横比変換、画像データ切り出し)。
【図34】図33の画像変換処理で処理される画像データの一例を示す図。
【図35】図33の画像変換処理で生成されるインデックスデータの一例を示す図。
【符号の説明】
【0105】
100 CPU
102 画像変換器
104 メモリ
106 ハードディスク
110 内部バス
120 LCD
122 LCDコントローラ
【特許請求の範囲】
【請求項1】
画像データが展開されるメモリと、
前記メモリに展開されている画像データである入力画像データにおける各ラインのアドレスを特定する情報であるラインアドレス情報を取得する、ラインアドレス情報取得手段と、
前記ラインアドレス情報取得手段で取得した各ラインのラインアドレス情報をインデックス形式でまとめたインデックスデータを生成する、インデックスデータ生成手段と、
前記インデックスデータに基づいて、前記入力画像データの解像度の変換を行い、変換後の画像データを出力画像データとして、前記メモリに格納する、画像変換器と、
を備えることを特徴とする画像変換システム。
【請求項2】
前記メモリ上に、1ライン分の帯データを生成する、帯データ生成手段と、
前記帯データの1ライン分のアドレスを特定する情報である帯ラインアドレス情報を取得する、帯ラインアドレス情報取得手段と、
をさらに備えており、
前記入力画像データと前記出力画像データとの縦横比が異なる場合には、前記インデックスデータ生成手段は、前記出力画像データの縦横比に合うように、前記帯ラインアドレス情報を前記インデックスデータに付加する、
ことを特徴とする請求項1に記載の画像変換システム。
【請求項3】
前記帯データ生成手段が生成する前記帯データは、黒の1ライン分のデータである、ことを特徴とする請求項2に記載の画像変換システム。
【請求項4】
前記メモリに展開されている画像データの一部の領域を切り出して、これを入力画像データとする場合には、この切り出す領域を特定する、領域特定手段を、さらに備えており、
前記ラインアドレス情報取得手段は、前記領域特定手段で特定された領域内における各ラインのラインアドレス特定情報を取得する、
ことを特徴とする請求項1乃至請求項3のいずれかに記載の画像変換システム。
【請求項5】
前記出力画像データを格納する前記メモリ上のアドレスを特定する格納アドレス情報を、前記画像変換器に出力する、格納アドレス情報出力手段を、さらに備えており、
前記画像変換器は、この格納アドレス情報に基づいて特定された前記メモリ上のアドレスに、前記出力画像データを格納する、
ことを特徴とする請求項1乃至請求項4のいずれかに記載の画像変換システム。
【請求項6】
前記入力画像データのサイズと前記出力画像データのサイズとを、前記画像変換器に出力する、サイズ出力手段をさらに備えており、
前記画像変換器は、前記入力画像データのサイズと前記出力画像データのサイズに基づいて、前記入力画像データの解像度の変換を行う、ことを特徴とする請求項1乃至請求項5のいずれかに記載の画像変換システム。
【請求項7】
前記ラインアドレス情報は、前記入力画像データの左端のアドレスであり、前記帯ラインアドレス情報は、前記帯データの左端のアドレスである、ことを特徴とする請求項2乃至請求項6のいずれかに記載の画像変換システム。
【請求項8】
前記画像変換器が解像度の変換を行うことのできる前記入力画像データの縦横比は、固定である、ことを特徴とする請求項1乃至請求項7のいずれかに記載の画像変換システム。
【請求項9】
画像データを各ライン毎に前記メモリに展開する、画像データ展開手段であって、1ライン分以上の連続した空き領域が前記メモリ内にあれば、この空き領域に、各ラインの画像データを格納する、画像データ展開手段を、さらに備えることを特徴とする請求項1乃至請求項8のいずれかに記載の画像変換システム。
【請求項10】
画像データをメモリに展開するステップと、
前記メモリに展開されている画像データである入力画像データにおける各ラインのアドレスを特定する情報であるラインアドレス情報を取得するステップと、
前記取得した各ラインのラインアドレス情報をインデックス形式でまとめたインデックスデータを生成するステップと、
ハードウェアにより構成された画像変換器において、前記インデックスデータに基づいて、前記入力画像データの解像度の変換を行い、変換後の画像データを出力画像データとして、前記メモリに格納するステップと、
を備えることを特徴とする画像変換方法。
【請求項11】
前記メモリ上に、1ライン分の帯データを生成するステップと、
前記帯データの1ライン分のアドレスを特定する情報である帯ラインアドレス情報を取得するステップと、
前記入力画像データと前記出力画像データとの縦横比が異なる場合には、前記出力画像データの縦横比に合うように、前記帯ラインアドレス情報を前記インデックスデータに付加するステップと、
をさらに備えることを特徴とする請求項10に記載の画像変換方法。
【請求項12】
前記帯データを生成するステップでは、黒の1ライン分の帯データを生成する、ことを特徴とする請求項11に記載の画像変換方法。
【請求項13】
前記メモリに展開されている画像データの一部の領域を切り出して、これを入力画像データとする場合には、この切り出す領域を特定するステップを、さらに備えており、
前記ラインアドレス情報を取得するステップでは、前記特定された領域内における各ラインのラインアドレス特定情報を取得する、
ことを特徴とする請求項10乃至請求項12のいずれかに記載の画像変換方法。
【請求項14】
前記出力画像データを格納する前記メモリ上のアドレスを特定する格納アドレス情報を、前記画像変換器に出力するステップを、さらに備えており、
前記画像変換器は、この格納アドレス情報に基づいて特定された前記メモリ上のアドレスに、前記出力画像データを格納する、
ことを特徴とする請求項10乃至請求項13のいずれかに記載の画像変換方法。
【請求項15】
前記入力画像データのサイズと前記出力画像データのサイズとを、前記画像変換器に出力するステップを、さらに備えており、
前記画像変換器は、前記入力画像データのサイズと前記出力画像データのサイズに基づいて、前記入力画像データの解像度の変換を行う、ことを特徴とする請求項10乃至請求項14のいずれかに記載の画像変換方法。
【請求項16】
前記ラインアドレス情報は、前記入力画像データの左端のアドレスであり、前記帯ラインアドレス情報は、前記帯データの左端のアドレスである、ことを特徴とする請求項11乃至請求項14のいずれかに記載の画像変換方法。
【請求項17】
前記画像変換器が解像度の変換を行うことのできる前記入力画像データの縦横比は、固定である、ことを特徴とする請求項10乃至請求項16のいずれかに記載の画像変換方法。
【請求項18】
画像データをメモリに展開する前記ステップでは、前記画像データを各ライン毎に前記メモリに展開するとともに、1ライン分以上の連続した空き領域が前記メモリ内にあれば、この空き領域に、各ラインの画像データを格納することを特徴とする請求項10乃至請求項17のいずれかに記載の画像変換方法。
【請求項19】
入力画像データの解像度変換を行うためにハードウェアにより構成された画像変換器を有する情報処理端末で実行されるプログラムであって、
画像データをメモリに展開するステップと、
前記メモリに展開されている画像データを前記入力画像データとして、この入力画像データにおける各ラインのアドレスを特定する情報であるラインアドレス情報を取得するステップと、
前記取得した各ラインのラインアドレス情報をインデックス形式でまとめたインデックスデータを生成するステップと、
を前記情報処理端末に実行させ、
前記画像変換器に、前記インデックスデータに基づいて、前記入力画像データの解像度の変換を行わせて、変換後の画像データを出力画像データとして、前記メモリに格納させる、ことを特徴とするプログラム。
【請求項20】
入力画像データの解像度変換を行うためにハードウェアにより構成された画像変換器を有する情報処理端末で実行されるプログラムが記録された記録媒体であって、
画像データをメモリに展開するステップと、
前記メモリに展開されている画像データを前記入力画像データとして、この入力画像データにおける各ラインのアドレスを特定する情報であるラインアドレス情報を取得するステップと、
前記取得した各ラインのラインアドレス情報をインデックス形式でまとめたインデックスデータを生成するステップと、
を前記情報処理端末に実行させ、
前記画像変換器に、前記インデックスデータに基づいて、前記入力画像データの解像度の変換を行わせて、変換後の画像データを出力画像データとして、前記メモリに格納させる、ことを特徴とするプログラムが記録された記録媒体。
【請求項1】
画像データが展開されるメモリと、
前記メモリに展開されている画像データである入力画像データにおける各ラインのアドレスを特定する情報であるラインアドレス情報を取得する、ラインアドレス情報取得手段と、
前記ラインアドレス情報取得手段で取得した各ラインのラインアドレス情報をインデックス形式でまとめたインデックスデータを生成する、インデックスデータ生成手段と、
前記インデックスデータに基づいて、前記入力画像データの解像度の変換を行い、変換後の画像データを出力画像データとして、前記メモリに格納する、画像変換器と、
を備えることを特徴とする画像変換システム。
【請求項2】
前記メモリ上に、1ライン分の帯データを生成する、帯データ生成手段と、
前記帯データの1ライン分のアドレスを特定する情報である帯ラインアドレス情報を取得する、帯ラインアドレス情報取得手段と、
をさらに備えており、
前記入力画像データと前記出力画像データとの縦横比が異なる場合には、前記インデックスデータ生成手段は、前記出力画像データの縦横比に合うように、前記帯ラインアドレス情報を前記インデックスデータに付加する、
ことを特徴とする請求項1に記載の画像変換システム。
【請求項3】
前記帯データ生成手段が生成する前記帯データは、黒の1ライン分のデータである、ことを特徴とする請求項2に記載の画像変換システム。
【請求項4】
前記メモリに展開されている画像データの一部の領域を切り出して、これを入力画像データとする場合には、この切り出す領域を特定する、領域特定手段を、さらに備えており、
前記ラインアドレス情報取得手段は、前記領域特定手段で特定された領域内における各ラインのラインアドレス特定情報を取得する、
ことを特徴とする請求項1乃至請求項3のいずれかに記載の画像変換システム。
【請求項5】
前記出力画像データを格納する前記メモリ上のアドレスを特定する格納アドレス情報を、前記画像変換器に出力する、格納アドレス情報出力手段を、さらに備えており、
前記画像変換器は、この格納アドレス情報に基づいて特定された前記メモリ上のアドレスに、前記出力画像データを格納する、
ことを特徴とする請求項1乃至請求項4のいずれかに記載の画像変換システム。
【請求項6】
前記入力画像データのサイズと前記出力画像データのサイズとを、前記画像変換器に出力する、サイズ出力手段をさらに備えており、
前記画像変換器は、前記入力画像データのサイズと前記出力画像データのサイズに基づいて、前記入力画像データの解像度の変換を行う、ことを特徴とする請求項1乃至請求項5のいずれかに記載の画像変換システム。
【請求項7】
前記ラインアドレス情報は、前記入力画像データの左端のアドレスであり、前記帯ラインアドレス情報は、前記帯データの左端のアドレスである、ことを特徴とする請求項2乃至請求項6のいずれかに記載の画像変換システム。
【請求項8】
前記画像変換器が解像度の変換を行うことのできる前記入力画像データの縦横比は、固定である、ことを特徴とする請求項1乃至請求項7のいずれかに記載の画像変換システム。
【請求項9】
画像データを各ライン毎に前記メモリに展開する、画像データ展開手段であって、1ライン分以上の連続した空き領域が前記メモリ内にあれば、この空き領域に、各ラインの画像データを格納する、画像データ展開手段を、さらに備えることを特徴とする請求項1乃至請求項8のいずれかに記載の画像変換システム。
【請求項10】
画像データをメモリに展開するステップと、
前記メモリに展開されている画像データである入力画像データにおける各ラインのアドレスを特定する情報であるラインアドレス情報を取得するステップと、
前記取得した各ラインのラインアドレス情報をインデックス形式でまとめたインデックスデータを生成するステップと、
ハードウェアにより構成された画像変換器において、前記インデックスデータに基づいて、前記入力画像データの解像度の変換を行い、変換後の画像データを出力画像データとして、前記メモリに格納するステップと、
を備えることを特徴とする画像変換方法。
【請求項11】
前記メモリ上に、1ライン分の帯データを生成するステップと、
前記帯データの1ライン分のアドレスを特定する情報である帯ラインアドレス情報を取得するステップと、
前記入力画像データと前記出力画像データとの縦横比が異なる場合には、前記出力画像データの縦横比に合うように、前記帯ラインアドレス情報を前記インデックスデータに付加するステップと、
をさらに備えることを特徴とする請求項10に記載の画像変換方法。
【請求項12】
前記帯データを生成するステップでは、黒の1ライン分の帯データを生成する、ことを特徴とする請求項11に記載の画像変換方法。
【請求項13】
前記メモリに展開されている画像データの一部の領域を切り出して、これを入力画像データとする場合には、この切り出す領域を特定するステップを、さらに備えており、
前記ラインアドレス情報を取得するステップでは、前記特定された領域内における各ラインのラインアドレス特定情報を取得する、
ことを特徴とする請求項10乃至請求項12のいずれかに記載の画像変換方法。
【請求項14】
前記出力画像データを格納する前記メモリ上のアドレスを特定する格納アドレス情報を、前記画像変換器に出力するステップを、さらに備えており、
前記画像変換器は、この格納アドレス情報に基づいて特定された前記メモリ上のアドレスに、前記出力画像データを格納する、
ことを特徴とする請求項10乃至請求項13のいずれかに記載の画像変換方法。
【請求項15】
前記入力画像データのサイズと前記出力画像データのサイズとを、前記画像変換器に出力するステップを、さらに備えており、
前記画像変換器は、前記入力画像データのサイズと前記出力画像データのサイズに基づいて、前記入力画像データの解像度の変換を行う、ことを特徴とする請求項10乃至請求項14のいずれかに記載の画像変換方法。
【請求項16】
前記ラインアドレス情報は、前記入力画像データの左端のアドレスであり、前記帯ラインアドレス情報は、前記帯データの左端のアドレスである、ことを特徴とする請求項11乃至請求項14のいずれかに記載の画像変換方法。
【請求項17】
前記画像変換器が解像度の変換を行うことのできる前記入力画像データの縦横比は、固定である、ことを特徴とする請求項10乃至請求項16のいずれかに記載の画像変換方法。
【請求項18】
画像データをメモリに展開する前記ステップでは、前記画像データを各ライン毎に前記メモリに展開するとともに、1ライン分以上の連続した空き領域が前記メモリ内にあれば、この空き領域に、各ラインの画像データを格納することを特徴とする請求項10乃至請求項17のいずれかに記載の画像変換方法。
【請求項19】
入力画像データの解像度変換を行うためにハードウェアにより構成された画像変換器を有する情報処理端末で実行されるプログラムであって、
画像データをメモリに展開するステップと、
前記メモリに展開されている画像データを前記入力画像データとして、この入力画像データにおける各ラインのアドレスを特定する情報であるラインアドレス情報を取得するステップと、
前記取得した各ラインのラインアドレス情報をインデックス形式でまとめたインデックスデータを生成するステップと、
を前記情報処理端末に実行させ、
前記画像変換器に、前記インデックスデータに基づいて、前記入力画像データの解像度の変換を行わせて、変換後の画像データを出力画像データとして、前記メモリに格納させる、ことを特徴とするプログラム。
【請求項20】
入力画像データの解像度変換を行うためにハードウェアにより構成された画像変換器を有する情報処理端末で実行されるプログラムが記録された記録媒体であって、
画像データをメモリに展開するステップと、
前記メモリに展開されている画像データを前記入力画像データとして、この入力画像データにおける各ラインのアドレスを特定する情報であるラインアドレス情報を取得するステップと、
前記取得した各ラインのラインアドレス情報をインデックス形式でまとめたインデックスデータを生成するステップと、
を前記情報処理端末に実行させ、
前記画像変換器に、前記インデックスデータに基づいて、前記入力画像データの解像度の変換を行わせて、変換後の画像データを出力画像データとして、前記メモリに格納させる、ことを特徴とするプログラムが記録された記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【公開番号】特開2006−109399(P2006−109399A)
【公開日】平成18年4月20日(2006.4.20)
【国際特許分類】
【出願番号】特願2005−97144(P2005−97144)
【出願日】平成17年3月30日(2005.3.30)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
【公開日】平成18年4月20日(2006.4.20)
【国際特許分類】
【出願日】平成17年3月30日(2005.3.30)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
[ Back to top ]