説明

画像処理装置

【課題】可逆圧縮と非可逆圧縮とが混在する画像処理を行う場合において、DMAを用いたデータ転送に必要なデータアクセス量の低減と、回路構成の削減を図ることを課題とする。
【解決手段】圧縮前データを記憶した記憶部と、圧縮前データの可逆圧縮および非可逆圧縮を行う圧縮処理部と、圧縮前データの読み出しと圧縮後データの書き込みとを記憶部に行うメモリコントローラと、圧縮前データを圧縮処理部へ転送する制御を行う制御部とを備え、圧縮処理部は、1つのDMAを備え、可逆圧縮と非可逆圧縮とを同時に実行し、制御部は、DMAによって、主走査ライン方向の所定数の画素と副走査ライン方向の所定数の画素からなる矩形領域内の圧縮前データを、順次矩形領域ごとに圧縮処理部へ転送させ、1つの矩形領域内においては、1つの主走査ラインごとに順次圧縮前データを転送し、転送された各矩形領域のデータごとに順次圧縮処理を行わせることを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、画像処理装置に関し、特に、文字,図形,写真等が混在したデータを圧縮および伸張するのに適した機能を有する画像処理装置に関する。
【背景技術】
【0002】
静止画像・動画像を問わずイメージデータを扱うディジタル機器において、イメージデータの圧縮率向上と画質の向上は常に要求される重要な要素である。
しかし、圧縮率と画質とは相反する性質があり、一般的に、圧縮率を高めれば画質が劣化し、画質を高めれば圧縮率が低下することが多い。
そこで、画質劣化を抑えた上で圧縮率を高める様々な技術開発が行われている。
【0003】
例えば、イメージデータの特徴を解析する処理を画素毎もしくは領域毎に行い、写真や文字・網点などといった特徴抽出を行い、抽出された特徴に対応して領域判定を行い、その領域判定結果に基づいて、領域ごとに圧縮方式を変える方法がある。
具体的には、対象となる1つのイメージデータを領域判定結果に基づいて、領域分割し、写真の領域と判定された領域では、非可逆圧縮方式であるJPEGやJPEG2000、JPEG-XRなどを用いて圧縮処理を行い、主として文字が存在する領域と判定された領域では、可逆圧縮方式であるランレングス方式、FAXなどで利用されるMH・MR・MMRやJBIGなどを用いて圧縮処理を行う。すなわち、領域ごとに適切な異なる形式で圧縮処理を行う。
【0004】
可逆圧縮方式では、主走査方向にデータを取得して連続する画素を順番に処理すると濃度変化が少なくなる確率が高くなるため圧縮率を高めることが可能である。ただし、このような順番処理を実現するためには、イメージデータに付随する指示データ(イメージデータの属性)も同様に取得する必要がある。ここで、指示データとは、イメージデータの属性、たとえば、写真領域や文字領域、カラー/モノクロ領域など、イメージの特徴を意味するデータである。
【0005】
一方、非可逆圧縮方式では、矩形領域単位でデータを取得して圧縮処理する方式が多く、指示データも可逆圧縮とは異なる方法で取得される。
1つのイメージデータを圧縮する場合、複数の異なる処理を実行するので、イメージデータそのものとそれに付随する指示データを、従来は、多数のDMA、たとえば4つのDMAを用いて、複数の圧縮処理を実行することが行われている。
【0006】
また、特許文献1には、1回のDMA転送により画像データをブロック単位で転送し、そのブロック単位で画像処理を行い、1水平ラインでの処理終了後、垂直ラインを移動させて新たな水平ラインで処理を行うことにより、画像処理モジュール内のバッファ容量をブロック単位程度の小規模容量に抑えることを可能にした画像処理装置が開示されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2002−328881号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、従来のように、多数のDMAを用いて圧縮処理をする場合には、圧縮処理に必要な回路規模も大きくなり、メインメモリ(DRAM)へのアクセス回数が多くなり、メインメモリI/Fの帯域幅を圧迫することになる。
また、特許文献1に記載のものでは、ブロック単位ごとの処理により、バッファ容量を少なくすることが可能であるが、異なる複数の画像圧縮処理を実行する場合については考慮されていない。
したがって、異なる圧縮処理を実行する場合には、それぞれ1つのブロック単位の画像データごとに、別々に各圧縮処理を実行しなければならず、回路を共通化することが困難であり、異なる圧縮処理に対応するために必要な回路の規模が大きくなる。
【0009】
そこで、この発明は、以上のような事情を考慮してなされたものであり、対象となる1つのイメージデータに対して複数の画像圧縮を実行する場合に、1つのDMAを用いたデータ転送を行うことにより、従来よりも回路規模を削減することのできる画像処理装置を提供することを課題とする。
【課題を解決するための手段】
【0010】
この発明は、圧縮前データを記憶した記憶部と、圧縮前データの可逆圧縮および非可逆圧縮を行う圧縮処理部と、前記記憶部に対して、前記圧縮前データの読み出しと、前記圧縮処理部によって圧縮された圧縮後データの書き込みとを行うメモリコントローラと、前記記憶部に記憶された圧縮前データを前記圧縮処理部へ転送する制御を行う制御部とを備え、前記圧縮処理部は、1つのDMAを備え、可逆圧縮と非可逆圧縮とを同時に実行し、前記制御部は、前記DMAによって、圧縮前データのうち、主走査ライン方向の所定数の画素と副走査ライン方向の所定数の画素からなる矩形領域内の圧縮前データを、順次矩形領域ごとに記憶部から圧縮処理部へ転送させ、1つの矩形領域内においては、1つの主走査ライン上の圧縮前データを転送した後、副走査ライン方向に移動して、次の主走査ライン上の圧縮前データを転送するように、圧縮前データの転送を行い、前記圧縮処理部により転送された各矩形領域のデータごとに順次圧縮処理を行わせることを特徴とする画像処理装置を提供するものである。
【0011】
これによれば、圧縮前データについて、可逆圧縮と非可逆圧縮の区別をすることなく、所定の矩形領域ごとに転送して、その矩形領域ごとに圧縮処理を行うので、可逆圧縮と非可逆圧縮との両方を実施する圧縮方式において、従来に比べて、データ転送方式を統一化し、データの転送を行うDMAを1つとすることができ、記憶部へのアクセス量を低減させることができ、圧縮処理に必要な回路構成の削減をすることができる。
【0012】
また、記憶部に記憶された圧縮すべき圧縮前データは、画像データと、各画像データの画素ごとに対応付けられ、かつ可逆圧縮および非可逆圧縮のうちいずれを実行すべきかを示す指示データとからなり、前記画像データおよび指示データは、前記DMAにより前記矩形領域ごとに、記憶部から圧縮処理部へ転送され、圧縮処理部は、転送された指示データを可逆圧縮し、転送された画像データに対して対応する指示データに基づいて可逆圧縮または非可逆圧縮を実行することを特徴とする画像処理装置を提供するものである。
【0013】
これによれば、可逆圧縮と非可逆圧縮とが混在する圧縮処理を実行するときに用いられる指示データと画像データとを、どちらも矩形領域ごとに転送するようにしているので、データ転送処理が1つに統一され、従来よりも記憶部へのアクセス量の低減をすることができ、ハードウェア構成が削減できる。
【0014】
また、前記圧縮処理部は、アクセス調停部をさらに備え、可逆圧縮すべき画像データと、非可逆圧縮すべき画像データとを区別して圧縮するために、前記DMAによって前記記憶部から取得された画像データに対して、前記アクセス調停部が、画像データを区別するための置換処理を時分割で行うことを特徴とする。
これによれば、データの置換処理を時分割に行わない場合に比べて、圧縮処理に必要な回路構成を削減することができる。
【0015】
さらに、前記圧縮処理部は、指示データの可逆圧縮を行う第1圧縮コアと、非可逆圧縮を行うべき画像データに対して非可逆圧縮を行う第2圧縮コアと、可逆圧縮を行うべき画像データに対して可逆圧縮を行う第3圧縮コアとを備え、各圧縮コアは、それぞれ与えられた前記矩形領域ごとの指示データまたは画像データに対して圧縮処理を実行することを特徴とする。
これによれば、圧縮すべき画像データおよび指示データに対して、それぞれに必要な圧縮処理を並行して実行させることができる。
【0016】
また、圧縮された圧縮後データの可逆伸張および非可逆伸張を行う伸張処理部をさらに備え、伸張処理部は、1つのDMAと、前記圧縮後データのうち指示データの可逆伸張処理を行う第1可逆伸張コアと、前記圧縮後データのうち画像データに対して可逆伸張および非可逆伸張を行う第2可逆伸張コアと、非可逆伸張コアとを備えたことを特徴とする。
これによれば、圧縮後データの伸張処理を、1つのDMAと、可逆伸張または非可逆伸張に必要な回路を用いて行うので、圧縮処理と同様に、伸張処理についても、データアクセス量の低減と、回路構成の削減ができる。
【0017】
以下の実施例において、この発明の圧縮処理部は、3つの圧縮モジュール(11-1,11-2,11-3)に相当し、記憶部はDRAMに相当し、制御部はCPUに相当し、アクセス調停部はアービタに相当し、第1圧縮コアは可逆圧縮コア11-2に相当し、第2圧縮コアは非可逆圧縮コア11-1に相当し、第3圧縮コアは可逆圧縮コア(11-3R,G,B)に相当する。
また、伸張処理部は、3つの伸張モジュール(101-1,2,3)に相当する。
【発明の効果】
【0018】
この発明によれば、可逆圧縮と非可逆圧縮とが混在する画像処理を行う場合において、可逆圧縮および非可逆圧縮にかかわらず、所定の矩形領域ごとに圧縮すべきデータを圧縮処理部に転送するようにし、その転送処理を1つのDMAで行うので、圧縮すべきデータが記憶された記憶部に対するデータアクセス量を低減させ、圧縮処理に必要な回路構成を削減させることができる。
【図面の簡単な説明】
【0019】
【図1】従来の画像処理装置の圧縮処理に関する構成ブロック図である。
【図2】従来において、画像データを非可逆圧縮処理する場合の説明図である。
【図3】従来の圧縮処理の一実施例のフローチャートである。
【図4】従来において、DRAMからSRAMへのデータ転送の説明図である。
【図5】従来において、DRAMからSRAMへのデータ転送の説明図である。
【図6】従来において、置換処理と非可逆圧縮コアへのデータ転送の説明図である。
【図7】従来の可逆圧縮処理の説明図である。
【図8】従来の圧縮処理の一実施例のフローチャートである。
【図9】従来において、DRAMからSRAMへのデータ転送の説明図である。
【図10】従来において、DRAMからSRAMへのデータ転送の説明図である。
【図11】従来において、置換処理と可逆圧縮コアへのデータ転送の説明図である。
【図12】従来の可逆圧縮処理の説明図である。
【図13】従来の圧縮処理の一実施例のフローチャートである。
【図14】従来において、指示データをDRAMからSRAMへ転送する場合の説明図である。
【図15】この発明の画像処理装置における圧縮処理に関する機能ブロックの一実施例の構成図である。
【図16】この発明の圧縮処理モジュールの機能ブロックの構成図である。
【図17】この発明の圧縮処理の一実施例のフローチャートである。
【図18】この発明において、置換処理と可逆圧縮コアへのデータ転送の説明図である。
【図19】この発明において、アービタによって行われる調停処理を説明するタイムチャートである。
【図20】従来とこの発明のデータアクセス量の比較説明図である。
【図21】従来の画像処理装置の伸張処理に関する構成ブロック図である。
【図22】従来の画像データを非可逆伸張処理する構成ブロックの一実施例の説明図である。
【図23】従来の図22に示す非可逆伸張処理のフローチャートである。
【図24】従来の指示データを可逆伸張処理する構成ブロックの一実施例の説明図である。
【図25】従来の図24に示す可逆伸張処理のフローチャートである。
【図26】従来の可逆圧縮画像データを可逆伸張処理する構成ブロックの一実施例の説明図である。
【図27】従来の図26に示す可逆伸張処理のフローチャートである。
【図28】従来の画像データ生成の一実施例の説明図である。
【図29】この発明の伸張処理を実行する機能ブロックの一実施例の構成図である。
【図30】この発明の伸張処理の機能ブロックの構成図である。
【図31】この発明の伸張処理のフローチャートである。
【発明を実施するための形態】
【0020】
以下、図面を使用して本発明の実施の形態を説明する。なお、以下の実施例の記載によって、この発明が限定されるものではない。
【0021】
<従来技術における画像処理装置の構成>
図1に、従来の画像処理装置の一実施例の圧縮処理に関する主要部分の構成ブロック図を示す。
CPU1は、DRAM(図示しないメインメモリ)に格納されたプログラムデータをメモリコントローラ3を介して読み出し、読み出された命令を解釈して動作する。
命令にはDMA起動・終了やインターラプト処理などがあり、これらを順番に読み出すことで、CPU1はシステム全体を制御している。
【0022】
インターラプトコントローラ2は、各機能ブロックからイベント信号を受信し、CPU1に対してイベント発生を通知するものである。
イベント信号の例として、たとえば、DMA完了の通知、Slaveモジュールとの通信エラーなどによるDMA中止の通知などのDMAブロックからインターラプトコントローラ2に対して出力する通知信号がある。
これらの通知信号は、インターラプトコントローラ2の中のレジスタに通知情報が保持され、CPU1が該当するレジスタを読み出すことにより、何のイベントが発生したのかを判定することができる。CPU1は判定したイベントの種類によって、次に動作すべき内容を決定する。
【0023】
メモリコントローラ3は、接続されたDRAMデバイスに対して、読み出しと書込みの制御をするモジュールである。
メモリコントローラ3は、スレーブモジュールとして動作し、マスターモジュールであるCPUや各DMAからの要求に従って、指示されたアドレスから指示されたデータサイズのデータをDRAMデバイスに対し、読み出しまたは書き込みを行うものである。
読み出し要求によって読み出されたデータは要求されたマスターに転送し、書き込み要求により書き込むべきデータはマスターから取得しDRAMデバイスに対して書き込みを行う。この他にも、DRAMのデータが消えないようにするために、リフレッシュ制御なども行う。
【0024】
画像処理モジュール(DMA5)8は、DMA(Direct Memory Access)機能と画像処理機能を持つモジュールであり、CPU1からのDMA起動命令によってDRAMから画像データを取得し、データバッファである図示しないSRAMへ保存する。
さらに、SRAMに保存された画像データを読み出し、CPUからの指示に従って画像処理を行い、出力バッファであるSRAMに書き込む。
画像処理が完了すると、再びDMA5がDRAMに対して書き込みを行う。
以上を繰り返し、全ての画像データに対する処理を完了すると、インターラプトコントローラ2に対して完了通知を送り、インターラプトコントローラ2を介してCPU1に処理が完了したことを通知する。
ここで実行される画像処理としては、たとえば、圧縮処理・伸張処理などの処理が行われる。
【0025】
指示データ生成モジュール(DMA6)9は、DMA機能を持ち、指示データを生成するモジュールである。
指示データとは、以下に説明する圧縮形式を特定するためのデータである。
ここでは、まず、CPU1からのDMA起動命令によってDRAMから画像データを取得し、SRAMに格納する。
次に、SRAMに保存した画像データを読み出し、CPUからの指示に従って画像解析を行う。画像解析の結果、各画素(RGB各8bit合計24bitを1画素とする)毎に、4bitの圧縮方法指示データ(単に、指示データとも呼ぶ)を生成する。
【0026】
つまり、1画素24bitの画像データにつき、4bitの圧縮指示データを生成する。たとえば、100MBの画像データの場合は、指示データは16.7MBのサイズとなる。
指示データ生成処理が完了すると、DMA6はDRAMに対して生成した指示データの書き込みを行い、全ての指示データ生成処理を完了すると、インターラプトコントローラ2に対して完了通知を行い、インターラプトコントローラ2を介してCPU1に通知する。
ここで、画像解析とは、たとえば、領域判定などの処理を意味する。画像解析の具体的処理内容は、従来から用いられているものを用いればよく、詳細はここでは省略する。
たとえば、デジタルカメラから取得されたイメージデータの場合、画像データを解析することにより、写真領域であることがわかるので、非可逆圧縮を行う指示データが生成される。
【0027】
HDDコントローラ(DMA4)7は、DMA機能を持ち、CPUからのDMA起動命令によって、図示しないハードディスクHDDに対して、DRAMデータを読み出しもしくは書き込みを行うモジュールである。
全てのデータ転送を完了すると、インターラプトコントローラ2に対して完了通知を行い、インターラプトコントローラ2を介してCPU1に通知する。ここで扱うデータは、画像データ、指示データ、圧縮データ、プログラムデータなど、HDDに格納するデータ全てが対象となる。
【0028】
画像データ非可逆圧縮モジュール(DMA1)4A、画像データ可逆圧縮モジュール(DMA2)5A、指示データ可逆圧縮モジュール(DMA3)6Aは、それぞれDMA機能を持ち、データの圧縮を行うモジュールである。
それぞれの動作の詳細については後述する。
これらの3つの各ブロックは、いずれもCPU1からのDMA起動命令によって、DRAMから画像データと指示データを取得し、全データの圧縮処理完了後、インターラプトコントローラ2に対して完了通知を行い、インターラプトコントローラ2を介してCPU1に通知する。
【0029】
<圧縮形式の説明>
次に、圧縮形式について説明する。データの圧縮形式には様々な方式が提案されている。
各圧縮形式は、それぞれアルゴリズムが異なるため、圧縮率や処理速度が異なる。
たとえば、JBIGやMMRなどの圧縮形式は、圧縮(エンコード)したデータを解凍(デコード)すると完全に元のデータに戻すことが可能となる特徴を有し、可逆圧縮形式と呼ぶ。
一方、JPEGやJPEG-2000、JPEG-XRなどは一度圧縮してしまうと、解凍しても元のデータに戻すことはできない。これを非可逆圧縮形式と呼ぶ。
非可逆圧縮形式は人間の目で見たときに感度の低い成分・情報を削除することにより圧縮率を高める処理を行い、情報を減らしているため、解凍しても元のデータに戻すことができなくなる。
ただし、圧縮形式によっては可逆圧縮・非可逆圧縮の両方に対応可能な形式もあるが、非可逆圧縮をした場合は圧縮率が高くなり、可逆圧縮をした場合は圧縮率が低くなる。
【0030】
写真などの画像データは、圧縮率を高める目的で非可逆圧縮により圧縮処理を行っても高周波成分量が多いため、比較的画質の劣化は問題とはなりにくいが、文字やパターンが多い画像データについてはブロックノイズなどの影響により画像の劣化が目立ち易くなるため、可逆圧縮を行うことが望ましい。
そこで、画像データを解析し、画素毎に最適な圧縮形式を決定することにより、良好な画質を保ちつつ圧縮率を高める方法が利用されている。
【0031】
<従来の画像圧縮処理の説明>
以下、指示データを利用した画像圧縮のハードウェア動作について説明する。
指示データの圧縮は可逆圧縮方式を用い、画像データの圧縮は指示データに従って可逆圧縮と非可逆圧縮の2つの方式を利用するものとする。
また、非可逆圧縮は、簡単のため指示データと画像データの圧縮を同じ形式を用いるものとし、圧縮モジュールは入力されたデータを、その入力された順番に、順次圧縮処理をしていくものとする。
可逆圧縮は、主走査8画素、副走査8画素の合計64画素を1つの圧縮単位として、ブロック単位で順番に処理していくものとする。
【0032】
まず、DRAM上に、画像データと圧縮指示データが格納されているとする。
画像データは、たとえば、DRAMのアドレス0x0000_0000を開始アドレスとして格納されており、画像サイズは100MBとする。
指示データは、DRAMのアドレス0x1000_0000を開始アドレスとして格納されており、そのサイズは16.7MBとする。
非可逆圧縮後の画像データは開始アドレス0x2000_0000に格納し、可逆圧縮後の画像データは開始アドレス開始アドレス0x3000_0000(R成分)・0x4000_0000(G成分)・0x5000_0000(B成分)に格納し、可逆圧縮後の指示データは開始アドレス0x6000_0000に格納するものとする。
【0033】
図2に、従来の画像データを非可逆圧縮処理する一実施例の説明図を示す。
この非可逆圧縮処理は、図1の画像データ非可逆圧縮モジュール4Aで実行される処理であり、主として、DRAMに格納している画像データおよび指示データを読み込み、圧縮データを書き込むためのDMAモジュール(DMA1)21と、指示データ、画像データおよび圧縮データをバッファリングするSRAM22と、指示データの内容により画像データを修正するデータ置換モジュール23と、非可逆圧縮コア24とからなるハードウェアにより実行される。
ここで、SRAM22のサイズは、画像データ格納用が24bit/192word(192画素分)、指示データ格納用が4bit/192word(192画素分)とする。
非可逆圧縮コア24は、1つの処理単位が64画素となるため、3つの処理単位(64×3)をSRAM22には格納可能である。
圧縮データを格納するSRAM22は、64bit/72wordとする。
データ置換モジュール23は、指示データと画像データを格納するSRAM22から1画素ずつのデータを読み取り、指示データの内容に従って画素置換処理をしてから非可逆圧縮コア24に対してデータを出力する。
非可逆圧縮コア24は64画素分のデータを受信すると圧縮処理を行い、圧縮データを出力する。
【0034】
図3に、図2に示した非可逆圧縮処理のフローチャートを示す。
図2の非可逆圧縮処理を実行するためには、まずCPU1が動作設定(S11〜S12)を行う必要がある。
ステップS11において、DMA source 動作設定を行う。
ここでは、DMA1(21)がデータを取得するDRAMの位置(アドレス)や、処理すべきデータサイズなどを設定する。この設定は、たとえば、CPU1が、原稿サイズやメインメモリ使用状況に基づいて自動的に行う。
たとえば、画像データはアドレス0x0000_0000、指示データはアドレス0x1000_0000を開始アドレスとし、サイズは画像データ・指示データ共通となるため、主走査方向100画素、副走査方向100ラインとして設定する。
【0035】
次に、ステップS12において、DMA destination 動作設定を行う。
ここでは、圧縮後のデータを、DRAMのどの位置(アドレス)に保存するかを指定する。
非可逆圧縮処理後のデータは、0x2000_0000に格納するよう指定する。サイズは画像により変化するため、指定しない。この設定も、CPU1が、原稿サイズやメインメモリ使用状況に基づいて自動的に行う。
CPU1による動作設定が完了すると、ステップS13において、CPU1によってDMA1(21)の起動を行う。
DMA起動指示があると、DMA1(21)は、処理すべきデータを要求する処理を、メモリコントローラ2に対して開始する。
【0036】
ステップS14において、DMA1(21)はまず、画像データをDRAMから読み込み、画像データ格納SRAM22に保存する。
図4に、DRAMからSRAM22に対してデータを取得するイメージ図を示す。
ここで、画像データが主走査方向(図の左右方向)について100画素であるとし、DRAM上には図4上図のように連続的にデータが格納されているものとする。
非可逆圧縮は8x8画素単位に処理が行われるとすると、SRAM22には8x8画素3つ分の容量があるため、主走査方向の24画素分、副走査方向(図の上下方向)の8ライン分の矩形領域データ(192画素)を、DRAMからSRAM22に取得する。このとき、SRAM22には、図4のように、画素データが格納される。
【0037】
次に、ステップS15において、DMA1(21)は指示データをDRAMから読み込み、指示データ格納SRAM22に保存する。
図5に、DRAMからSRAM22に対してデータを取得するイメージ図を示す。
指示データについても画像データと同様に開始アドレスより連続的にデータが格納されているものとする。
必要な指示データは非可逆圧縮を実行する画像領域に対応する矩形領域となるため、該当箇所の主走査24画素、副走査8画素分のデータを取得してSRAM22に格納する。
【0038】
画像データと指示データのSRAM22への書き込みが完了すると、ステップS16において、DMA1モジュール21からデータ置換モジュール23に対して完了通知が出力される。
データ置換モジュール23は、完了通知を受けて、置換処理を開始する。
【0039】
図6に、置換処理の一実施例の説明図を示す。
まず、データ置換モジュール23は、画像データ"001"と、対応する指示データ"1"とを、それぞれのSRAM22より取得する。指示データは、0または1の値を持つものとし、0は可逆圧縮処理を行うべき画素であることを意味し、1は非可逆圧縮処理を行うべき画素であることを意味するものとする。
指示データ値の"1"は非可逆圧縮処理を行うことを意味するため、画像データはそのまま非可逆圧縮コア24へ出力される。
次に、画像データ"002"と対応する指示データ"1"というように、順番にSRAM22から読み出し、データ処理を繰り返す。
図6において、画像データ"007"を処理する場合は、指示データ値が"0"となる。
このとき、指示データ値の"0"は可逆圧縮を行うことを意味するため、画像データ007を"0x00"に置換して、非可逆圧縮コア24に出力する。
【0040】
本置換処理を主走査8画素、副走査8ラインの合計64回繰り返すと、図6右に示すように、置換処理後のデータが非可逆圧縮コア24に転送される結果となる。
尚、簡単のため置換処理は"0x00"への単純置換としているが、実際には画質向上のために様々な方法が考えられる。
【0041】
図3の非可逆圧縮コア24へのデータ転送が完了すると、ステップS17において、圧縮コア24は圧縮処理を実行し、結果を圧縮データ格納SRAM22に保存する。
圧縮コア24が8x8画素処理を3回繰り返すと、画像データSRAM22に取得したデータは全て処理完了となるため、DMA1モジュール21に対して完了を通知する。
非可逆圧縮コア24より完了通知を受信したDMA1モジュール21は、ステップS18において、destination設定に従って圧縮されたデータのDRAMへの書き込み動作を行う。
ステップS19において、DMA1(21)によるデータ読み込みから書き込みまでの処理を、全てのデータについて非可逆圧縮処理が完了するまで繰り返し、完了すると、ステップS20において、CPU1に対して終了通知を行う。
【0042】
図7に、画像データを可逆圧縮処理する一実施例の説明図を示す。
この可逆圧縮処理は、図1の可逆圧縮モジュール5Aで実行される処理である。
基本的な構成は、図2の非可逆圧縮処理の構成と同様である。
ただし、図2の非可逆圧縮コア24を、RGBそれぞれの色成分を独立して圧縮するための可逆圧縮コア(34R,34G,34B)に置きかえる。これに伴いSRAM32の構成は、8bit/192wordが3つとなる。
【0043】
図8に、図7の可逆圧縮処理のフローチャートを示す。
図7の可逆圧縮処理を実行するためには、まずCPU1が、動作設定(S21,S22)を行う必要がある。
ステップS21において、DMA source 動作設定を行う。ここでは、画像データはアドレス0x0000_0000、指示データはアドレス0x1000_0000を開始アドレスとし、サイズは画像データ・指示データ共通となるため、主走査方向100画素、副走査方向100ラインとして設定する。
本設定は、非可逆圧縮処理と全く同じ設定であり、同じ画像データと指示データを利用して可逆圧縮処理を実行する。
【0044】
次に、ステップS22においてDMA destination 動作設定を行う。
ここでは、圧縮後のデータを、DRAMのどの位置(アドレス)に保存するかを指定する。
可逆圧縮処理後のデータは、R領域は0x3000_0000に、G領域は0x4000_0000に、B領域は0x5000_0000に格納するよう指定する。サイズは画像により変化するため、指定の必要はない。
CPU1による動作設定が完了すると、ステップS23においてCPU1によってDMA2(31)の起動を行う。
DMA起動指示があると、DMA2(31)は、処理すべきデータを要求する処理を、メモリコントローラ2に対して開始する。
【0045】
ステップS24において、DMA2(31)はまず、画像データをDRAMから読み込み、画像データ格納SRAM32に保存する。
このとき、可逆圧縮処理は、RGB色成分毎に独立で行う必要がある。従って、色成分毎にSRAM32に対して保存する。
【0046】
図9に、DRAMからSRAM32に対してデータを取得するイメージ図を示す。
図4の非可逆圧縮処理とは、画像を取得する順番が異なる。
可逆圧縮では、1ライン目の主走査100画素分のデータについて圧縮処理を完了した後、次に2ライン目、3ライン目というように、アドレス値の小さいものから順番に圧縮処理を行う。
また、DMA2(31)が読み込んだ画像データは、R/G/Bの成分毎に独立したSRAM32に格納する。
【0047】
次に、ステップS25において、DMA2は指示データをDRAMから読み込み、指示データ格納SRAM32に保存する。
図10に、DRAMからSRAM32に対してデータを取得するイメージ図を示す。
取得した指示データを3つのSRAM32に対して書き込みを行う。3つのSRAMには同じデータが書き込まれる。
これは、RGB各色成分の圧縮処理を独立に行うためであり、協調して同時に圧縮処理を行う場合は1つのSRAMに指示データを格納し、各色成分で共用利用しても構わない。
【0048】
画像データと指示データのSRAM32への書き込みが完了すると、ステップS26において、DMA2モジュール31からデータ置換モジュール33に対して完了通知が出力される。
データ置換モジュール33は、完了通知を受けて、置換処理を開始する。
図11に、置換処理の一実施例の説明図を示す。
RGB各成分それぞれについて行われる動作は、いずれも全く同じである。
まず、画像データ"001"と、対応する指示データ"1"とを、それぞれのSRAM32より取得する。
指示データ値の"1"は非可逆圧縮処理を行うことを意味するため、画像データを"0x00"に置換して可逆圧縮コア34(R,G,B)に出力する。
次に、画像データ"002"と対応する指示データ"1"というように順番に、SRAM32から読み出し、データ処理を繰り返す。
図11において、画像データ"007"を処理する場合は、指示データ値が"0"となる。
このとき、指示データ値"0"は可逆圧縮を行うことを意味するため、画像データはそのまま可逆圧縮コア34(R,G,B)へ出力する。
本置換処理を合計192回繰り返すと、図11右に示すように、置換処理後のデータが可逆圧縮コア34(R,G,B)に転送される結果となる。
【0049】
図8の可逆圧縮コアへのデータ転送(ステップS26)が完了すると、ステップS27において、圧縮コア34(R,G,B)は圧縮処理を実行し、結果を圧縮データ格納SRAM32に保存する。
圧縮コア34(R,G,B)が192画素分の処理を完了すると、画像データSRAM32に取得したデータは全て処理完了となるため、DMA2モジュール31に対して完了を通知する。
可逆圧縮コア34(R,G,B)より完了通知を受信したDMA2モジュール31は、ステップS28において、destination設定に従ってDRAMへの書き込み動作を行う。
ステップS29において、DMA2(31)によるデータ読み込みから書き込みまでの処理を全てのデータについて可逆圧縮処理が完了するまで繰り返し、完了すると、ステップS30において、CPU1に対して終了通知を行う。
【0050】
図12に、指示データを可逆圧縮処理する一実施例の説明図を示す。
この可逆圧縮処理は、図1の可逆圧縮モジュール6Aで実行される処理であり、主として、DRAMに格納している指示データを読み込み、圧縮データを書き込むためのDMAモジュール(DMA3)41と、指示データと圧縮データをバッファリングするSRAM42と、可逆圧縮コア43とからなるハードウェアにより実行される。
ここで、指示データを格納するSRAM42のサイズは、4bit/192word(192画素分)とする。
圧縮データを格納するSRAM42は、64bit/72wordとする。
可逆圧縮コア43は、データを受信すると圧縮処理を行い、圧縮データを出力する。
【0051】
図13に、図12の可逆圧縮処理のフローチャートを示す。
図12の可逆圧縮処理を実行するためには、まずCPU1が動作設定(S31,S32)を行う必要がある。
ステップS31において、DMA source 動作設定を行う。ここでは、DMA3(41)がデータを取得するDRAMの位置(アドレス)や、処理すべきデータサイズなどを設定する。
たとえば、指示データは、アドレス0x1000_0000を開始アドレスとし、サイズは主走査方向100画素、副走査方向100ラインとする。
本設定は、上記した図8の指示データ読み込みと全く同じ設定であり、同じ指示データを可逆圧縮処理する。
【0052】
次に、ステップS32において、DMA destination 動作設定を行う。
ここでは、圧縮後のデータを、DRAMのどの位置(アドレス)に保存するかを指定する。
可逆圧縮処理後のデータは、0x6000_0000に格納するよう指定する。サイズは画像により変化するため、指定の必要はない。
CPU1による動作設定が完了すると、ステップS33において、CPU1によってDMA3(41)の起動を行う。
DMA起動指示があると、DMA3(41)は、処理すべきデータを要求する処理を、メモリコントローラ2に対して開始する。
【0053】
ステップS34において、DMA3(41)はまず、指示データをDRAMから読み込み、指示データ格納SRAM42に保存する。
図14に、DRAMからSRAM42に対してデータを取得するイメージ図を示す。
指示データのSRAM42への書き込みが完了すると、ステップS35において、DMA3モジュール41から可逆圧縮コア43に対して完了通知が出力される。
【0054】
可逆圧縮コア43は、完了通知を受けて、圧縮処理を開始する。
ステップS36において、圧縮結果は、圧縮データ格納SRAM42に保存する。
全SRAMデータの処理が完了すると、DMA3モジュール41に対して、完了を通知する。
【0055】
可逆圧縮コア43より完了通知を受信したDMA3モジュール41は、ステップS37において、destination設定に従って、DRAMへの書き込み動作を行う。
ステップS38において、DMA3(41)によるデータ読み込みから書き込みまでの処理を、全てのデータについて可逆圧縮処理が完了するまで繰り返し、完了すると、ステップS39において、CPU1に対して終了通知を行う。
【0056】
図2,図7および図12に示したDMA(1,2,3)は、CPU1からの起動指示によって並列的に動作することが可能である。
従って、CPU1は各DMA(1,2,3)を起動し、全てのDMAからの処理完了通知を受けると、圧縮処理が完了したと判断する。
圧縮処理が完了したとき、画像データの非可逆圧縮データ・可逆圧縮データ、指示データの可逆圧縮データの3種類の圧縮データが、DRAM上に格納されている。
【0057】
以上のハードウェア構成は機能毎に分割されているため、単純な構成によりシステムを構築することが可能である。
しかし、圧縮対象となるデータである画像データと指示データに対して、画像データは2回、指示データは3回読み出すことになるので、DRAMへのアクセス回数が多く、アクセスによる読み出しと書き込みのデータ量は非常に多くなる。
DRAMへのアクセスは、CPUやDMA以外にも、他のモジュール(たとえば、画像処理モジュールや外部I/Fモジュール)から行われるので、適切なシステムパフォーマンスを確保するためには、DRAMへのアクセス量を減らし、できるだけ短時間で効率的に画像処理を行う必要がある。
そこで、この発明では、次のようなハードウェア構成によりデータアクセス効率を高めることを提案する。
【0058】
<この発明の画像処理装置の圧縮処理部分の構成>
図15に、この発明の画像処理装置において、圧縮処理を実行する機能ブロックの一実施例の構成図を示す。
ここでは、図1に示した3つのDMA1、DMA2、DMA3を、一つのDMA7に統一している。すなわち、1つのDMA7が、3つのDMA(1,2,3)の機能を実行している。
図15の構成において、図1に示した従来の画像圧縮処理と同等の処理を実現する。
以下、この発明の画像処理装置の圧縮処理の具体的な処理内容について説明する。
【0059】
図15において、CPU1,インターラプトコントローラ2,メモリコントローラ3,HDDコントローラ7,画像処理モジュール8,指示データ生成モジュール9は、図1に示したものと同じ機能を実行するものである。
図15の圧縮処理モジュール11は、3つの圧縮コアモジュール(11-1,11-2,11-3)を備え、DRAMから画像データと指示データを読み込んで、画像データ非可逆圧縮コア11-1により画像データのうち写真等の所定領域の非可逆圧縮と、画像データ可逆圧縮コア11-2により同じ画像データのうち文字等が存在する領域の可逆圧縮と、指示データ可逆圧縮コア11-3により指示データの可逆圧縮とを実行するものである。また、圧縮コア11-3は、RGB3つのコアから構成される。
この圧縮処理モジュール11は、図16に示すように1つのDMAモジュール(DMA7)12を備えて、図1に示した3つのDMA(1,2,3)が行っていたのと同等のデータ転送を行って、3種の異なるデータ圧縮を行うものである。この圧縮処理モジュール11は、図1の従来の構成に比べて、DRAMへの画像データアクセス量が半分程度となるという効果がある。
【0060】
図16に、図15の圧縮処理モジュール11の機能ブロックの構成図を示す。
ここで、圧縮処理モジュール11は、DMAモジュール(DMA7)12,SRAM13,アービタ14,データ置換モジュール15,圧縮コアモジュール(11-1,2,3)とから構成される。
SRAM13は、指示データ,画像データ,および合計5つの圧縮データを格納するメモリである。
アービタ14は、SRAMへアクセスするモジュールを決定する部分であり、データ置換処理モジュール群や可逆圧縮コア11-2などSRAMアクセスモジュールに対してアクセス許可を発行する部分である。
【0061】
データ置換モジュール15は、非可逆圧縮データを作成する第1のデータ置換1モジュール(15-1)と、可逆圧縮データを作成する第2のデータ置換2モジュール(15-2R,2G,2B)とから構成される。
第1のデータ置換モジュール(15-1)は、データ置換モジュール23と同じ処理を行う部分である。
第2のデータ置換モジュール(15-2R,2G,2B)は、データ置換モジュール33と同じ処理を行う部分である。
【0062】
非可逆圧縮コア(11-1)は、データ置換後の画像データを非可逆圧縮処理する部分であり、非可逆圧縮コア24と同じ処理を行う。
可逆圧縮コア(11-2)は、データ置換後の画像データを可逆圧縮処理する部分であり、3つの可逆圧縮コア(11-3R,3G,3B)は、可逆圧縮コア34R,34G,34Bと同じ処理を行う。
【0063】
図16に示すように、DMA7(12)は、画像データ・指示データをDRAMからSRAMへ読み込み、データ置換処理や各データの圧縮処理をした後、非可逆圧縮画像データ、可逆圧縮画像データおよび可逆圧縮指示データを、DRAMの所定のアドレスへ書き出す動作を実現するものである。
【0064】
<この発明の画像圧縮処理の説明>
図17に、この圧縮処理モジュール11の画像圧縮処理の一実施例のフローチャートを示す。
ステップS101において、CPU1はDMA source設定を行い、ステップS102において、DMA destination設定を行う。
ここで、CPU1が設定するsource設定およびdestination設定では、DMA7(12)で取り扱うすべてのデータを設定する。具体的には、たとえば次のような設定を行う。
画像データの格納アドレスを、DRAMのアドレス0x0000_0000とし、指示データの格納アドレスを、アドレス0x1000_0000として、設定する。
また、非可逆圧縮後の画像データを、開始アドレス0x2000_0000に格納するものとし、可逆圧縮後の画像データを、開始アドレス0x3000_0000(R成分)・0x4000_0000(G成分)・0x5000_0000(B成分)に格納するものとし、可逆圧縮後の指示データを、開始アドレス0x6000_0000に格納するものと設定する。
【0065】
以上の設定が完了すると、ステップS103において、CPU1は、DMA7(12)を起動する。
次に、ステップS104において、画像データを、DRAMからSRAMのサイズ分だけ読み込む。
また、ステップS105において、指示データを、DRAMからSRAMのサイズ分だけ読み込む。
ここでDRAM7(12)より取得する画像データと指示データは、図4および図5に示したものと同じものとする。
データ取得が完了すると、DMA7は、可逆圧縮コア(11-2)およびデータ置換モジュール(15-1,15-2R,15-2G,15-2B)に対して、データ取得完了を通知する。
通知を受信した各モジュール(11-2, 15-1,15-2R,15-2G,15-2B)は、同じ画像データ・指示データの書込み処理を開始する。
非可逆圧縮コアの処理順番は、図6と同じ内容となる。すなわち、主走査8画素・副走査8画素の矩形領域単位の処理である。
【0066】
しかし、画像データを可逆圧縮するコア(11-2)については、図11とは処理順番が異なる。
図11では全画像データを1ライン目から主走査方向に順次圧縮処理を実施したが、図16の構成では図18に示すように、非可逆圧縮と同様の順番で圧縮処理を行う。
つまり、主走査8画素、副走査8画素の矩形領域を1ラインずつ処理する。具体的には、画像データの番号が若い順に処理をする。
【0067】
可逆圧縮では、一般的には、連続する画像データを処理する方が圧縮効率を高めることが可能であるが、この構成のように矩形領域を圧縮する構成にすると圧縮率が低下する可能性がある。
しかし、隣接データを順次処理する確率は下がるが、8x8画素と極めて近い領域での処理であることと、可逆圧縮を行うデータは近傍画像の濃度変化が小さいことが一般的であるため、圧縮率低下は限定的になる可能性が高い。
指示データについても、可逆圧縮処理と同様に、8x8画素の矩形領域を可逆圧縮処理するものとする。
【0068】
ステップS106において、可逆圧縮コア11-2と、第1データ置換1モジュール(15-1)と、第2データ置換2モジュール(15-2R,2G,2B)とが、全て同じ指示データ格納SRAM13と画像データ格納SRAM13にアクセスするため、図16のアービタ14が、アクセス制御の調停を行う。
【0069】
図19に、アービタによって行われる調停の一実施例のタイムチャートを示す。
可逆圧縮コア11-2と、データ置換モジュール(15-1)およびデータ置換2モジュール(15-2R,2G,2B)は、DMA7(12)からデータ取得完了通知を受信すると、SRAM13にデータを要求するために、リクエスト信号(req1, req2, req3)を、すべてHighアクティブにする。アービタ14はリクエストを発行しているモジュールの1つを選択し、アドレス有効信号(avalid1, avalid2, avalid3)のうちの1つをアクティブにする。
図19では、初めに可逆圧縮コア11-2が選択され、avalid 1がアクティブとなっている。
avalidがアクティブ(High)となりSRAM13へのアクセス権を得たモジュールは、次のクロック(clock)で出力しているアドレス(address)に対応するデータ(data)を取得することが可能となる。
【0070】
SRAM I/F側は、アービタ14からのモジュール選択信号を受けて、各モジュール(11-2, 15-1,15-2R,15-2G,15-2B)から入力されるリクエスト信号を、SRAMチップセレクト信号(CS)に出力する。
アドレス信号についても、各モジュール(11-2, 15-1,15-2R,15-2G,15-2B)から選択して、アドレス信号としてSRAM13に対して出力する。
ステップS107において、SRAM13へデータを保存する。
【0071】
このような構成で、複数モジュールからの同じSRAM13への時分割アクセスを実現する。
ただし、SRAMのリードポートを3ポート用意することが可能であれば、時分割制御の必要性はなくなる。
【0072】
各圧縮コア(11-1,11-2,11-3R,G,B)は、処理が完了すると、DMA7(12)に対して完了通知を行う。
ステップS108において、DMA7(12)は完了通知を受けたものから順番に、SRAM13に格納された圧縮データを、DRAMに対して書き込み処理を行う。
DRAM書き込み完了後は、ステップS109において、全てのデータ処理が終了するまで、DMA7(12)がリード・ライトを繰り返し、全データ処理完了後、ステップS110において、CPU1に対して終了通知を行う。
【0073】
以上のような図16に示したモジュール構成を用いれば、データ圧縮時におけるDRAMへのデータアクセス量(200MB)は、図20に示すように、図1等の従来のアクセス量(333,3MB)に比べて、約133.3MBの減少となり、40%アクセス量を減らすことができる。
ここで、可逆圧縮は圧縮率50%、非可逆圧縮は圧縮率25%と仮定して、計算している。
また、この発明のDMAやアービタの回路構成は、30万ゲート程度であるので、図1に示した従来の3DMA(20万ゲートx3)の回路構成に比べて、30万ゲート程度、回路規模を削減することができる。
【0074】
<従来の伸張処理の構成>
図21に、従来技術において、伸張処理を行う構成のブロック図を示す。
矩形領域毎に可逆圧縮および非可逆圧縮された画像データと指示データは、図21のようなハードウェア構成により伸張処理され、元の画像データに復元される。
図21において、図1の圧縮モジュールと同様に、3つの伸張処理モジュール(4S,5S,6S)を備える。
すなわち、指示データを伸張する可逆伸張モジュール4S、可逆圧縮された画像データを伸張する可逆伸張モジュール5S、非可逆圧縮された画像データを伸張する非可逆伸張モジュール6Sを備える。
これらは、それぞれ独立したDMA(1,2,3)を備え、DRAMメモリからデータをリード・ライトする。
【0075】
図22に、画像データを非可逆伸張処理する構成ブロックの説明図を示す。
この非可逆伸張処理は、図21の画像データ非可逆圧縮モジュール4Sで実行される処理であり、主として、DRAMに格納している非可逆圧縮画像データを読み込み、画像データを書き込むためのDMAモジュール(DMA1)51と、圧縮データおよび画像データをバッファリングするSRAM52と、非可逆伸張コア53とからなるハードウェアにより実行される。
ここで、圧縮データを格納するSRAM52は、64bit/72wordとし、画像データ格納用が24bit/192word(192画素分)とする。
非可逆伸張コア53は圧縮データを受信すると伸張処理を行い、画像データを出力する。
【0076】
図23に、図22に示した非可逆伸張処理のフローチャートを示す。
図22の非可逆処理を実行するためには、まずCPU1が動作設定を行う必要がある。
ステップS41において、DMA source 動作設定を行う。
ここでは、DMA1(51)がデータを取得するDRAMの位置(アドレス)や、処理すべきデータサイズなどを設定する。この設定は、たとえば、CPU1が、原稿サイズやメインメモリ使用状況に基づいて自動的に行う。
たとえば、非可逆圧縮データはアドレス0x2000_0000と設定する。
【0077】
次に、ステップS42において、DMA destination 動作設定を行う。
ここでは、伸張後の画像データを、DRAMのどの位置(アドレス)に保存するかを指定する。
非可逆伸張処理後の画像データは、0x7000_0000に格納するよう指定する。サイズは圧縮前の画像データの値から主走査方向100画素、副走査方向100ラインとして設定する。
CPU1による動作設定が完了すると、ステップS43において、CPU1によってDMA1(51)の起動を行う。
DMA起動指示があると、DMA1(51)は、処理すべきデータを要求する処理を、メモリコントローラ2に対して開始する。
【0078】
ステップS44において、DMA1(51)はまず、非可逆圧縮データをDRAMから読み込み、圧縮データ格納SRAM52に保存する。
非可逆圧縮データのSRAM52への書き込みが完了すると、ステップS45において、DMA1モジュール51から非可逆伸張コア53に対して完了通知が出力される。
非可逆伸張コア53は、完了通知を受けて、伸張処理を開始する。
【0079】
ステップS46において、伸張コア53は伸張処理を実行し、結果を画像データ格納SRAM52に保存する。SRAMへの書き込みが完了するとDMA1モジュール51に対して完了を通知する。
非可逆伸張コア53より完了通知を受信したDMA1モジュール51は、ステップS47において、destination設定に従って伸張された画像データのDRAMへの書き込み動作を行う。
ステップS48において、DMA1(51)によるデータ読み込みから書き込みまでの処理を、全てのデータについて非可逆伸張処理が完了するまで繰り返し、完了すると、ステップS49において、CPU1に対して終了通知を行う。
【0080】
図24に、指示データを可逆伸張処理する一実施例の説明図を示す。
この可逆伸張処理は、図21の指示データ可逆伸張モジュール6Sで実行される処理であり、主として、DRAMに格納している可逆圧縮指示データを読み込み、伸張後の指示データを書き込むためのDMAモジュール(DMA2)61と、圧縮データと伸張後の指示データをバッファリングするSRAM62と、可逆伸張コア63とからなるハードウェアにより実行される。
ここで、圧縮データを格納するSRAM62は、64bit/72wordとする。指示データを格納するSRAM62のサイズは、4bit/192word(192画素分)とする。
可逆圧縮コア63は、データを受信すると伸張処理を行い、伸張後の指示データを出力する。
【0081】
図25に、図24の可逆伸張処理のフローチャートを示す。
図24の可逆伸張処理を実行するためには、まずCPU1が動作設定を行う必要がある。
ステップS51において、DMA source 動作設定を行う。ここでは、DMA2(61)がデータを取得するDRAMの位置(アドレス)や、処理すべきデータサイズなどを設定する。
たとえば、圧縮指示データは、アドレス0x6000_0000を開始アドレスとし、サイズは8.3MBと設定する。
【0082】
次に、ステップS52において、DMA destination 動作設定を行う。
ここでは、伸張後の指示データを、DRAMのどの位置(アドレス)に保存するかを指定する。
可逆伸張処理後のデータは、0x8000_0000に格納するよう指定する。サイズは主走査方向100画素、副走査方向100ラインに設定する。
CPU1による動作設定が完了すると、ステップS53において、CPU1によってDMA2(61)の起動を行う。
DMA起動指示があると、DMA2(61)は、処理すべきデータを要求する処理を、メモリコントローラ2に対して開始する。
【0083】
ステップS54において、DMA2(61)はまず、圧縮指示データをDRAMから読み込み、圧縮指示データ格納SRAM62に保存する。
圧縮指示データのSRAM62への書き込みが完了すると、ステップS55において、DMA3モジュール61から可逆伸張コア63に対して完了通知が出力される。
【0084】
可逆伸張コア63は、完了通知を受けて、伸張処理を開始する。
ステップS56において、伸張結果は、伸張データ格納SRAM62に保存する。
全SRAMデータの処理が完了すると、DMA2モジュール61に対して、完了を通知する。
【0085】
可逆伸張コア63より完了通知を受信したDMA2モジュール61は、ステップS57において、destination設定に従って、DRAMへの書き込み動作を行う。
ステップS58において、DMA2(61)によるデータ読み込みから書き込みまでの処理を、全てのデータについて可逆伸張処理が完了するまで繰り返し、完了すると、ステップS59において、CPU1に対して終了通知を行う。
【0086】
図26に、可逆圧縮画像データを可逆伸張処理する説明図を示す。
この可逆伸張処理は、図21の可逆伸張モジュール5Sで実行される処理である。
RGBそれぞれの色成分を独立して可逆伸張するための可逆伸張コア73は3つの伸張コアを持つ。これに伴いSRAM72の構成についても、8bit/192wordが3つである。また、図24の装置により生成した画像データと結合する必要があるため、非可逆伸張後の画像データおよび指示データを格納するSRAMを持ち、指示データを利用し、可逆伸張後の画像データと非可逆伸張後の画像データから最終的な画像データを生成する。
【0087】
図27に、図26の可逆伸張処理のフローチャートを示す。
図26の可逆伸張処理を実行するためには、まずCPU1が、動作設定を行う必要がある。
ステップS71において、DMA source 動作設定を行う。ここでは、圧縮データと指示データを、DRAMのどの位置(アドレス)から読み出すかを指定する。
可逆圧縮データは、R領域は0x3000_0000に、G領域は0x4000_0000に、B領域は0x5000_0000から読み出すよう指定する。サイズ設定はR,G,B領域それぞれ50MBとする。画像データは0x7000_0000から読み出すよう設定する。指示データは0x8000_0000から読み出すよう設定する。
【0088】
次に、ステップS72においてDMA destination 動作設定を行う。
ここでは、画像データはアドレス0x7000_0000を開始アドレスとし、サイズは主走査方向100画素、副走査方向100ラインとして設定する。つまり、DMA3によって読み出された画像データを画像処理後に同じ位置に書き戻す設定となる。
CPU1による動作設定が完了すると、ステップS73においてCPU1によってDMA3(71)の起動を行う。
DMA起動指示があると、DMA3(71)は、処理すべきデータを要求する処理を、メモリコントローラ2に対して開始する。
【0089】
ステップS74において、DMA3(71)はまず、可逆圧縮データをDRAMから読み込み、圧縮データ格納SRAM72に保存する。
このとき、可逆伸張処理は、RGB色成分毎に独立で行う必要がある。従って、色成分毎にSRAM72に対して保存する。
【0090】
次に、ステップS75において、DMA3は指示データをDRAMから読み込み、指示データ格納SRAM72に保存する。
取得した指示データをSRAM72に対して書き込みを行う。
【0091】
画像データと指示データのSRAM72への書き込みが完了すると、ステップS76において、DMA3モジュール31から可逆伸張コア73に対して完了通知が出力される。
可逆伸張コア73は、完了通知を受けて、伸張処理を開始する。
図28に、画像データ生成の一実施例の説明図を示す。
RGB各成分それぞれについて行われる動作は、いずれも全く同じである。
まず、画像データ"001"に対応する指示データ"1"を、それぞれのSRAM72より取得する。
指示データ値の"1"は非可逆伸張後の画像データを有効画像として利用することを意味するため、可逆伸張後の画像データのSRAM書き込みは行わない。
次に、画像データ"002"と対応する指示データ"1"というように順番に、SRAM32から読み出し、データ処理を繰り返す。
図28において、画像データ"007"を処理する場合は、指示データ値が"0"となる。
このとき、指示データ値"0"は可逆伸張後の画像を有効データとして扱うことを意味するため、可逆伸張後の画像データをSRAMに対して書き込む。
本置換処理を合計192回繰り返すと、図28右に示すように、可逆・非可逆伸張の両画像データを元に結合された画像データが得られる。
【0092】
ステップS77において、伸張コア(R,G,B)が192画素分の処理を完了し、SRAMへの書き込みが完了すると、DMA3モジュール61に対して完了を通知する。
可逆伸張コア64(R,G,B)より完了通知を受信したDMA3モジュール61は、ステップS78において、destination設定に従ってDRAMへの書き込み動作を行う。
ステップS79において、DMA3(61)によるデータ読み込みから書き込みまでの処理を全てのデータについて画像データ処理が完了するまで繰り返し、完了すると、ステップS80において、CPU1に対して終了通知を行う。
【0093】
図22,図24に示したDMA(1,2)は、CPU1からの起動指示によって並列的に動作することが可能である。
従って、CPU1は各DMA(1,2)を起動し、全てのDMAからの処理完了通知を受けると、図26のDMA3を起動し、完了通知を受信すると最終的な画像データが得られる。
【0094】
このような従来技術の伸張方法では、中間データとして画像データと指示データを、DRAM上に展開する必要があるため、DRAMへのメモリアクセスデータ量が大きくなってしまう。
【0095】
<この発明の伸張処理の構成>
図29に、この発明の伸張処理を実行する機能ブロックの一実施例の構成図を示す。
ここで、従来の図21とは異なり、3つの伸張モジュール(4S,5S,6S)は、独立したDMAを持たずに、1つのDMA111を共用利用する。
【0096】
図30に、この発明の伸張処理モジュール101の機能ブロックの構成図を示す。
図30のように各圧縮データをそれぞれの伸張コア(101-1,101-2,101-3)により、伸張処理を行う。
図31に、この発明の伸張処理のフローチャートを示す。
まず、CPUが動作設定を行う必要がある。ステップS121において、DMA source 動作設定を行う。
ここでは、DMAがデータを取得するDRAMの位置(アドレス)や、処理すべきデータサイズなどを設定する。この設定は、たとえば、CPUが、原稿サイズやメインメモリ使用状況に基づいて自動的に行う。
たとえば、非可逆圧縮データはアドレス0x2000_0000、可逆圧縮R成分画像はアドレス0x3000_0000、可逆圧縮G成分画像はアドレス0x4000_0000、可逆圧縮B成分画像はアドレス0x5000_0000、可逆圧縮指示データはアドレス0x6000_0000と設定する。
次に、ステップS122において、DMA destination 動作設定を行う。
ここでは、処理後の画像データを、DRAMのどの位置(アドレス)に保存するかを指定する。
処理後の画像データは、0x7000_0000に格納するよう指定する。サイズは圧縮前の画像データの値から主走査方向100画素、副走査方向100ラインとして設定する。
CPUによる動作設定が完了すると、ステップS123において、CPUによってDMAの起動を行う。
DMA起動指示があると、DMAは、処理すべきデータを要求する処理を、メモリコントローラ2に対して開始する。
ステップS124において、DMAはまず、非可逆圧縮データ、可逆圧縮画像データ、圧縮指示データをDRAMから読み込み、各SRAMに保存する。
非可逆圧縮画像データ・圧縮指示データのSRAMへの書き込みが完了すると、ステップS125において、DMAモジュールから各伸張コアに対して完了通知が出力される。
画像データを伸張する非可逆伸張コアと指示データを伸張する可逆伸張コアは、完了通知を受けて、伸張処理を開始する。
伸張処理したデータはステップS126において画像データはライトバッファSRAMへ、指示データは画像結合ブロックへ転送する。
【0097】
次に、S127において、可逆伸張を行う。伸張結果の画像データは画像結合ブロックに転送し、画素毎に有効無効を判定する。このとき、あらかじめ画像結合ブロックに保存されている指示データを利用し、画像データに対応する指示データを使って判定を行う。判定の結果、有効画素であればライトバッファへ上書きし、無効画素であれば何もせずに次の画素に進む。
画像データ格納SRAMに保存する画像データが全て処理を完了すると、DMA111はメモリに対して画像データ書き込みを行う(S128)。
ステップS129において、DMAによるデータ読み込みから書き込みまでの処理を全てのデータについて画像データ処理が完了するまで繰り返し、完了するとステップS130において、CPU1に対して終了通知を行う。
このように、1つのDMA111によって、各伸張処理が同時並行的に実行することが可能なのは、圧縮方式に関わらず、圧縮処理を矩形データ毎に行っているためである。
このように、図29および図30の構成を用いて伸張処理を行った場合、図21から図28に示した従来技術の構成により伸張処理を行った場合に比べて、DRAMへのアクセス量を、40%程度減少させることができる。
また、伸張処理の回路構成についてもDMAの回路構成は、30万ゲート程度なので、図21などに示した従来の回路構成に比べて、30万ゲート程度回路規模を削減することができる。
【符号の説明】
【0098】
1 CPU
2 インターラプトコントローラ
3 メモリコントローラ
7 HDDコントローラ
8 画像処理モジュール
9 指示データ生成モジュール
11 圧縮処理モジュール
11−1 非可逆圧縮コア
11−2 可逆圧縮コア
11−3R 可逆圧縮コア(R成分)
11−3G 可逆圧縮コア(G成分)
11−3B 可逆圧縮コア(B成分)
12 DMA7
13 SRAM
14 アービタ
15 データ置換モジュール
101 伸張処理モジュール
101−1 非可逆伸張コア
101−2 可逆伸張コア(R,G,B)
101−3 可逆伸張コア
111 DMA
112 SRAM

【特許請求の範囲】
【請求項1】
圧縮前データを記憶した記憶部と、
圧縮前データの可逆圧縮および非可逆圧縮を行う圧縮処理部と、
前記記憶部に対して、前記圧縮前データの読み出しと、前記圧縮処理部によって圧縮された圧縮後データの書き込みとを行うメモリコントローラと、
前記記憶部に記憶された圧縮前データを前記圧縮処理部へ転送する制御を行う制御部とを備え、
前記圧縮処理部は、1つのDMAを備え、可逆圧縮と非可逆圧縮とを同時に実行し、
前記制御部は、前記DMAによって、圧縮前データのうち、主走査ライン方向の所定数の画素と副走査ライン方向の所定数の画素からなる矩形領域内の圧縮前データを、順次矩形領域ごとに記憶部から圧縮処理部へ転送させ、1つの矩形領域内においては、1つの主走査ライン上の圧縮前データを転送した後、副走査ライン方向に移動して、次の主走査ライン上の圧縮前データを転送するように、圧縮前データの転送を行い、前記圧縮処理部により転送された各矩形領域のデータごとに順次圧縮処理を行わせることを特徴とする画像処理装置。
【請求項2】
前記記憶部に記憶された圧縮すべき圧縮前データは、画像データと、各画像データの画素ごとに対応付けられ、かつ可逆圧縮および非可逆圧縮のうちいずれを実行すべきかを示す指示データとからなり、
前記画像データおよび指示データは、前記DMAにより前記矩形領域ごとに、記憶部から圧縮処理部へ転送され、圧縮処理部は、転送された指示データを可逆圧縮し、転送された画像データに対して対応する指示データに基づいて可逆圧縮または非可逆圧縮を実行することを特徴とする請求項1の画像処理装置。
【請求項3】
前記圧縮処理部は、アクセス調停部をさらに備え、可逆圧縮すべき画像データと、非可逆圧縮すべき画像データとを区別して圧縮するために、前記DMAによって前記記憶部から取得された画像データに対して、前記アクセス調停部が、画像データを区別するための置換処理を時分割で行うことを特徴とする請求項2の画像処理装置。
【請求項4】
前記圧縮処理部は、指示データの可逆圧縮を行う第1圧縮コアと、非可逆圧縮を行うべき画像データに対して非可逆圧縮を行う第2圧縮コアと、可逆圧縮を行うべき画像データに対して可逆圧縮を行う第3圧縮コアとを備え、
各圧縮コアは、それぞれ与えられた前記矩形領域ごとの指示データまたは画像データに対して圧縮処理を実行することを特徴とする請求項3の画像処理装置。
【請求項5】
圧縮された圧縮後データの可逆伸張および非可逆伸張を行う伸張処理部をさらに備え、伸張処理部は、1つのDMAと、
前記圧縮後データのうち指示データの可逆伸張処理を行う第1可逆伸張コアと、
前記圧縮後データのうち画像データに対して可逆伸張および非可逆伸張を行う第2可逆伸張コアと、非可逆伸張コアとを備えたことを特徴とする請求項1から4のいずれかに記載の画像処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図6】
image rotate

【図11】
image rotate

【図18】
image rotate

【図28】
image rotate


【公開番号】特開2011−77837(P2011−77837A)
【公開日】平成23年4月14日(2011.4.14)
【国際特許分類】
【出願番号】特願2009−227443(P2009−227443)
【出願日】平成21年9月30日(2009.9.30)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】