(57)【要約】【課題】パラメータDMACによるレジスタへのパラメータ設定を行う際に必要な一時記憶領域を削減することができる画像処理装置を提供する。【解決手段】データが記憶された記憶手段と、設定されたパラメータが入力されるパラメータ入力手段と、現在の状態と所望の状態との設定の差分である差分パラメータを入力としてパラメータ入力手段へのパラメータ設定の際に、記憶手段のデータに現在の設定値と所望の設定値との排他的論理和の設定を行うパラメータ設定手段と、を有する。【選択図】図１
2015148851.tif 000002
【特許請求の範囲】
【請求項１】
データが記憶された記憶手段と、
設定されたパラメータが入力されるパラメータ入力手段と、
現在の状態と所望の状態との設定の差分である差分パラメータを入力として前記パラメータ入力手段へのパラメータ設定の際に、前記記憶手段のデータに現在の設定値と所望の設定値との排他的論理和の設定を行うパラメータ設定手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記パラメータ設定手段は、伸張機能を備えることにより、圧縮された差分パラメータが入力されることを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記パラメータ設定手段は、ディスクリプタとディスクリプタチェーン機能とを備えることにより、所望のパラメータ状態にするために複数の状態に遷移することを特徴とする請求項１または２記載の画像処理装置。
【請求項４】
前記パラメータ設定手段は、ディスクリプタ中の記載により、パラメータ設定を排他的論理和によるか即値によるか選択できることを特徴とする請求項３記載の画像処理装置。
【請求項５】
前記パラメータ設定手段は、ディスクリプタ中の記載により、入力する差分パラメータを圧縮にするか非圧縮にするか選択できることを特徴とする請求項３記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理を行うハードウェアに設定する画像処理用のパラメータをDMA転送する画像処理装置に関する。
【背景技術】
【０００２】
ソフトウェアからレジスタの設定を高速化する方法として、パラメータを設定するためのDMAC（Direct Memory Access Controller）を使う方法は既に知られている。画像処理を行うASIC（Application Specific Integrated Circuit）などのハードウェアに設定する画像処理用のパラメータは、ディスクリプタ情報を使用してDMA転送により、一括転送される。
【０００３】
特許文献１には、パラメータ設定の高速化を行う目的で、DMAコントローラを用いたレジスタへのパラメータ設定方法について開示されている。
また、特許文献２には、相関が強い画像データの場合に高い圧縮率を実現する目的で、排他的論理和による前ラインとの差分を抽出し、圧縮する方法について開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、従来のパラメータDMACの技術では、一時的にパラメータを置く領域を有するため、パラメータ設定転送時間、パラメータ設定を置く一時記憶領域の確保が必要である点、また、パラメータに変更が無かった場合でもパラメータを設定し直す点に問題があった。
【０００５】
また、特許文献１に開示された技術では、パラメータ設定時の効率と、パラメータ設定時に必要な一時記憶領域が大きいという問題は解消されていない。
さらに、特許文献２に開示された技術では、レジスタアクセス期間が長いという問題は解消されていない。
【０００６】
本発明は、前記課題を解決するためのものであり、その目的とするところは、パラメータDMACによるレジスタへのパラメータ設定を行う際に必要な一時記憶領域を削減することができる画像処理装置を提供することである。
【課題を解決するための手段】
【０００７】
かかる目的を達成するために、本発明は、以下の特徴を有する。
【０００８】
本発明に係る画像処理装置は、データが記憶された記憶手段と、設定されたパラメータが入力されるパラメータ入力手段と、現在の状態と所望の状態との設定の差分である差分パラメータを入力として前記パラメータ入力手段へのパラメータ設定の際に、前記記憶手段のデータに現在の設定値と所望の設定値との排他的論理和の設定を行うパラメータ設定手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、パラメータDMACによるレジスタへのパラメータ設定を行う際に必要な一時記憶領域を削減することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態に係るメインボードの全体構成を示すブロック図である。
【図２】本実施形態に係るパラメータDMACの内部構成を示すブロック図である。
【図３】レジスタインタフェースの記述例を示す図である。
【図４】CPU上で実行されるPDMACを使ってパラメータを設定するためのプログラムの一例を示す図である。
【図５】パラメータ状態と差分パラメータとの関係を示す図である。
【図６】ディスクリプタの例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本実施形態について図面により詳細に説明する。
【００１２】
図１は、本実施形態に係るメインボードの全体構成を示すブロック図である。メインボード１は、ASIC２とCPU３とHDD４とDDRメモリα５とDDRメモリβ６とを有している。
【００１３】
CPU３は、メモリ上に存在するプログラムとデータ、もしくはHDD４からDDRメモリα５上に展開したプログラムとデータを基に、ASIC２を制御する。DDRメモリα５はCPU３のDDRCα１２に接続されている。CPU３は、CPU I/F(Master)７を通してASIC２を制御することができる。
【００１４】
また、CPU３は、CPU I/F(Master)７を通じてDDRCβ８を制御し、ASIC２に接続されたDDR メモリβ６に対してデータを読み書きすることができる。ASIC２は、モジュール９とパラメータDMAC１０とDDRCβ８とがインターコネクト１１を介して接続されている。
【００１５】
モジュール９は、パラメータDMAC１０で設定されたパラメータが入力され、インターコネクト１１に接続されている。CPU３のCPU I/F(Master)７は、インターコネクト１１のCPU I/F(Slave)１３に接続されている。
なお、インターコネクト１１との接続でのM,Sの表記は、Master動作するかSlave動作するかを表している。
【００１６】
図２は、本実施形態に係るパラメータDMAC１０（以下、PDMACと称す。）の内部構成を示すブロック図である。本実施形態では省略したが、割り込み制御信号により、メモリ上に配置されたディスクリプタによる設定を行っても良い。
また、排他的論理和と圧縮とが有効な構成としたが、ディスクリプタ、レジスタ設定により、それぞれ即値、非圧縮データで動作するモードを備えても良い。
【００１７】
PDMAC１０は、レジスタコントローラ２１とパラメータリード回路２２と伸張器２３とデータライト回路２４とリードバッファ２５とライトバッファ２６とを有している。
レジスタコントローラ２１は、PDMAC１０の設定レジスタを保持する。CPU３はデータI/Fβ(slave)２８を介して含まれるレジスタの設定を変更、もしくはレジスタ値のリードを行う。
【００１８】
パラメータリード回路２２は、圧縮された差分パラメータをデータI/Fγ(master)２９を介してPDMAC_SAに指定されたアドレスから読み込み、リードバッファ２５にそのデータを書き込む。
【００１９】
伸張器２３は、リードバッファ２５から圧縮された差分パラメータを取得し、伸張する。伸張したパラメータは、ライトバッファ２６に書き込まれる。
データライト回路２４はライトバッファ２６から伸張された差分パラメータを取得し、逐次データI/Fα２７(master)を用いて各モジュールに差分パラメータを設定する。
【００２０】
なお、差分パラメータは、現状のパラメータ設定値との排他的論理和なので、差分パラメータが０の場合、設定値に変更が無いため、当該のレジスタにはデータI/Fα(master)２７を介したパラメータ設定を省略する。
【００２１】
図３は、レジスタインタフェースの記述例(スレーブ側)を示す図である。レジスタ設定のためのインタフェースで排他的論理和を入力とする場合の回路(RTL)記述例である。
【００２２】
上からｒｓｔはリセット信号であり、DEFAULT_VALUEはアドレスADDRESS_Aに保持するレジスタ値のデフォルト値である。アドレスADDRESS_Aのレジスタ値はdata_aに保持される。cpu_weはライトイネーブル信号であり、アサートにより、マスタ側からデータcpu_wdataのライト設定が来ていることを示す。
【００２３】
制御信号として新たにwrite_xorをマスタ側から入力することで、排他的論理和か即値入力かを選択できるようにしている。write_xorがアサートされている場合、それまで保持していたレジスタのデータdata_aと設定値cpu_wdataとの排他的論理和を保持する。
【００２４】
図４は、CPU３上で実行されるPDMAC１０を使ってパラメータを設定するためのプログラムの一例を示す図である。構造体diff_paramTは差分パラメータを示す構造体であり、直前の設定状態と目的の設定状況と圧縮された差分パラメータのアドレスとデータサイズとを要素として有する。
なお、data_ptrで示すDDR メモリβ６のアドレスには、圧縮された差分パラメータが書かれているものとする。
【００２５】
配列dif_paramsには、差分パラメータが設定される。プログラムを実行するまでに構造体diff_paramTの配列dif_paramsには、設定がなされているものとする。「差分パラメータ検索」部では、現在のパラメータ状態と所望のパラメータ状態が一つの差分パラメータで接続されている場合の検索方法を示している。
【００２６】
構造体dif_paramsから所望のパラメータを検索している。ここで、current_stateには現在のパラメータ状態、target_stateには所望するパラメータ状態が設定されている。この操作により、dif_params[param_num]が、ここで設定される差分パラメータとなる。
【００２７】
PDMAC実行では、PDMACのレジスタPDMAC_SA,PDMAC_SIZE,PDMAC_TAの実行に必要なレジスタ設定を行い、PDMACに起動をかける。PDMACの終了をポーリングで待った後で、現在のパラメータ状態の更新を行う。
【００２８】
図５は、システムの中で起こりうるパラメータ状態と、その状態を実現するための差分パラメータの関係を示す図である。
即値でパラメータを設定する場合、そのパラメータ状態を取り得るパラメータ状態を設定する。これに対して、本手法では、現在のパラメータ状態から次の処理を行うためのパラメータ状態にするため、差分パラメータを設定する。
【００２９】
例えば、現在のパラメータ状態の場合、PRINTER(MONO)で、次にCOPY(MONO)100%の処理を行いたい場合、PDMACには差分パラメータDを設定する。排他的論理和のパラメータのため、COPY(MONO)100%から、PRINTER(MONO)に移る場合も同じ差分パラメータDをPDMACに設定することで、遷移することができる。
【００３０】
現在のパラメータ状態と次の処理を行うためのパラメータ状態を行うための差分パラメータが無い場合、PDMACを複数起動し、順々にパラメータ状態を遷移して、所望のパラメータ状態にする（ディスクリプタチェーン機能）。
【００３１】
例えば、PRINTER(MONO)から、COPY(COLOR)200%の状態にしたい場合、差分パラメータD、差分パラメータE、差分パラメータGを順にPDMACに設定し、実行することで、遷移するこができる。
【００３２】
状態に対して差分パラメータを少なくすると、所望の状態にするためにPDMACを起動する回数が多くなる。一方、差分パラメータを多くすると、差分パラメータのデータ量が増大する。状態に対して差分パラメータをいくつ設けるかは、処理の頻度、リソースなどのトレードオフから決定されるものである。
【００３３】
図６は、PDMACがディスクリプタによるデータ転送に対応している場合のディスクリプタの設定例を示す図である。
Write_XORでは入力データが排他的論理和か即値かを設定するフラグである。Compressは、入力データが圧縮データであるか生データであるかを設定しているかを設定するフラグである。
【００３４】
このような記述をPDMACが対応することにより、ディスクリプタに記述されたデータごとに入力データの設定値を排他的論理和とするか即値とするか、入力データを圧縮データとするか生データとするかを選択的に決めることができる。これにより、ソフトウェア側で保持するデータサイズが最小になるようデータを組み替えることができる。
【００３５】
本実施形態によれば、パラメータDMACによるレジスタへのパラメータ設定を行う際に必要な一時記憶領域を削減することができる。
【００３６】
また、本実施形態によれば、あらかじめユースケースに応じたパラメータ設定を用意する。一般にあるユースケース実施後に別のユースケースを実行する際に再びパラメータ設定が必要になる。通常は、ユースケースごとのパラメータを保持し設定するのに対して、本実施形態ではユースケースとユースケースのパラメータ設定の差分を圧縮し、保存したものを設定に用いる。
【００３７】
ユースケース実施時にパラメータ設定を行う。この際、直前に実施したユースケースと実施するユースケースの圧縮済み差分パラメータは、パラメータDMACを用いて読み込ませる。圧縮済み差分パラメータをパラメータDMACが読み込み、DMACに内蔵された伸長器でデータを復元した上で、復元されたパラメータを基にレジスタインタフェースを経由してパラメータレジスタに書き込みを行う。
【００３８】
ここで、設定値がゼロの場合、パラメータ設定値に変化がないので、レジスタ書き込みを省略する。加えて、設定するパラメータ値が０以外の場合、排他的論理和による設定ができるレジスタインタフェースを経由して各レジスタに設定を行う。これにより、転送サイズの削減、転送データ量、レジスタアクセス回数の削減が実現できる。
他の効果として、一時記憶領域からパラメータDMACへの転送時間を削減する効果もある。また、ユーザがパラメータDMACへの設定を行う時間を削減する効果もある。
【００３９】
なお、上述した実施の形態は、本発明の好適な実施の形態の一例を示すものであり、本発明はそれに限定されることなく、その要旨を逸脱しない範囲内において、種々変形実施が可能である。
【符号の説明】
【００４０】
１    メインボード
２    ASIC
３    CPU
４    HDD
５    DDR メモリα
７    CPU I/F
９    モジュール
１０    パラメータDMAC
１１    インターコネクト
１２    DDRCα
２１    レジスタコントローラ
２２    パラメータリード回路
２３    伸張器
２４    データライト回路
２５    リードバッファ
２６    ライトバッファ
【先行技術文献】
【特許文献】
【００４１】
【特許文献１】特許第４９３９２６４号公報
【特許文献２】特開平１０−２４３２４１号公報
【図１】
2015148851.tif 000003
【図２】
2015148851.tif 000004
【図３】
2015148851.tif 000005
【図４】
2015148851.tif 000006
【図５】
2015148851.tif 000007
【図６】
2015148851.tif 000008