(57)【要約】  【課題】  処理前のデータの破壊を招くことなく、必要メモリ容量を低減し得るデータ処理装置等を提供する。  【解決手段】  被圧縮データ記憶用の第１バッファメモリ１１と、被圧縮データを圧縮する圧縮部１３と、圧縮パラメータを設定する圧縮パラメータ設定部１４と、第１バッファメモリ１１の先頭よりも低位アドレス側から連続するアドレスを有しかつ第１バッファメモリ１１と一部を共用する圧縮データ記憶用の第２バッファメモリ１２と、第１バッファメモリ１１の共用部分の被圧縮データを圧縮部１３により圧縮させたデータ量が第２バッファメモリ１２の非共用部分のメモリ容量よりも大きいかを判定し、大きいときには圧縮パラメータ設定部１４に圧縮パラメータを再設定させ、大きくないときには本圧縮を行わせるように制御するＣＰＵ１８と、を備えたデータ処理装置１。【選択図】図１
2007060578.tif 000002
【特許請求の範囲】
【請求項１】
アドレスを有するメモリ内に、連続するアドレスを有するように確保された、被圧縮データを記憶するための第１メモリと、
前記被圧縮データを圧縮する圧縮手段と、
前記被圧縮データを圧縮したときの圧縮データ量を制御するための圧縮パラメータを設定する圧縮パラメータ設定手段と、
アドレスを有する前記メモリ内に、前記第１メモリの先頭よりも低位アドレス側から連続するアドレスを有するように、かつ、該第１メモリと一部を共用するように確保された、圧縮データを記憶するための第２メモリと、
前記第２メモリと共用する前記第１メモリの部分に記憶されている被圧縮データを、前記圧縮パラメータに基いて前記圧縮手段により圧縮させ、圧縮されたデータのデータ量（Ｖ１とする。）と、前記第２メモリにおける前記共用部分以外のメモリ容量（Ｖ２とする。）と、を比較する比較手段と、
前記比較手段による比較の結果、前記データ量Ｖ１が前記メモリ容量Ｖ２よりも大きいと判定されたときには、前記圧縮パラメータ設定手段に圧縮パラメータを再設定させ、前記データ量Ｖ１が前記メモリ容量Ｖ２以下の大きさであると判定されたときには、前記第１メモリに記憶されている被圧縮データ全体を低位アドレスから順に前記圧縮パラメータに基いて前記圧縮手段により圧縮させ、前記第２メモリに低位アドレスから順に記憶させるように制御する制御手段と、
を具備したことを特徴とするデータ処理装置。
【請求項２】
前記圧縮パラメータに基いて前記被圧縮データを圧縮したときの圧縮データ量を予測する圧縮データ量予測手段をさらに具備し、
前記第２メモリは、アドレスを有する前記メモリ内に、前記圧縮データ量予測手段により前記被圧縮データ（容量をＶ４とする。）を圧縮したときの予測圧縮データ量（Ｖ５とする。）だけ確保されたものであることを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記第２メモリは、該第２メモリにおける前記共用部分のメモリ容量をＶ３とするときに、（Ｖ２／Ｖ３）が（Ｖ５／Ｖ４）以上となるように、アドレスを有する前記メモリ内に確保されたものであることを特徴とする請求項２に記載のデータ処理装置。
【請求項４】
アドレスを有するメモリ内に、連続するアドレスを有するように、記憶容量として第１の容量（Ｖ４とする。）分だけ確保された、被圧縮データを記憶するための第１メモリと、
前記被圧縮データを所定のデータ量（Ｖ６とする。）を単位として圧縮する圧縮手段と、
前記圧縮手段により前記第１の容量Ｖ４の被圧縮データを圧縮して得られる圧縮データが第２の容量（Ｖ５とする。）以下に収まるように制御するための圧縮パラメータを設定する圧縮パラメータ設定手段と、
アドレスを有する前記メモリ内に、高位アドレス側の第３の容量（Ｖ３とする。ここに、Ｖ３≦Ｖ５を満たす。）分を前記第１メモリと共用するように、記憶容量として前記第２の容量Ｖ５分だけ確保された、圧縮データを記憶するための第２メモリと、
前記第１メモリの低位アドレス側の前記第３の容量Ｖ３分に記憶されている被圧縮データを、前記圧縮手段により前記所定のデータ量Ｖ６を単位として低位アドレス側から順に圧縮させ、各回（回数をｍで示す。ここに、ｍは１以上の整数）の圧縮が行われる毎に、それまでに得られた圧縮データ量と、（Ｖ５−Ｖ３）＋Ｖ６×（ｍ−１）と、を比較する比較手段と、
前記比較手段による比較の結果、何れかの回の圧縮において、それまでの圧縮データ量が（Ｖ５−Ｖ３）＋Ｖ６×（ｍ−１）よりも大きいと判定されたときには、前記圧縮パラメータ設定手段に圧縮パラメータを再設定させ、全ての回の圧縮において、それまでの圧縮データ量が（Ｖ５−Ｖ３）＋Ｖ６×（ｍ−１）以下であると判定されたときには、前記第１メモリに記憶されている被圧縮データ全体を低位アドレスから順に前記圧縮パラメータに基いて前記圧縮手段により圧縮させ、前記第２メモリに低位アドレスから順に記憶させるように制御する制御手段と、
を具備したことを特徴とするデータ処理装置。
【請求項５】
前記圧縮パラメータに基いて前記所定のデータ量Ｖ６の被圧縮データを圧縮したときの圧縮データ量（Ｖ２とする。）を予測する圧縮データ量予測手段をさらに具備し、
前記第２メモリは、前記圧縮データ量予測手段により予測された圧縮データ量Ｖ２だけ、前記第１メモリの先頭から低位アドレス側へ行った位置を、先頭とするものであることを特徴とする請求項４に記載のデータ処理装置。
【請求項６】
前記圧縮手段は、ＪＰＥＧ圧縮を行うものであり、前記単位は、ブロックラインであることを特徴とする請求項５に記載のデータ処理装置。
【請求項７】
アドレスを有するメモリ内に連続するアドレスを有するように確保された被圧縮データを記憶するための第１メモリと、アドレスを有する前記メモリ内に前記第１メモリの先頭よりも低位アドレス側から連続するアドレスを有するようにかつ該第１メモリと一部を共用するように確保された圧縮データを記憶するための第２メモリと、が共用する前記第１メモリの部分に記憶されている被圧縮データを、前記被圧縮データを圧縮したときの圧縮データ量を制御するための圧縮パラメータに基いて圧縮する圧縮ステップと、
前記圧縮ステップにより圧縮されたデータのデータ量（Ｖ１とする。）と、前記第２メモリにおける前記共用部分以外のメモリ容量（Ｖ２とする。）と、を比較する比較ステップと、
前記比較ステップによる比較の結果、前記データ量Ｖ１が前記メモリ容量Ｖ２よりも大きいと判定されたときには、前記圧縮パラメータを再設定し、前記データ量Ｖ１が前記メモリ容量Ｖ２以下の大きさであると判定されたときには、前記第１メモリに記憶されている被圧縮データ全体を低位アドレスから順に前記圧縮パラメータに基いて圧縮させ、前記第２メモリに低位アドレスから順に記憶させるように制御する制御ステップと、
をコンピュータに実行させるためのデータ処理プログラム。
【請求項８】
アドレスを有するメモリ内に連続するアドレスを有するように確保された被圧縮データを記憶するための第１メモリと、アドレスを有する前記メモリ内に前記第１メモリの先頭よりも低位アドレス側から連続するアドレスを有するようにかつ該第１メモリと一部を共用するように確保された圧縮データを記憶するための第２メモリと、が共用する前記第１メモリの部分に記憶されている被圧縮データを、前記被圧縮データを圧縮したときの圧縮データ量を制御するための圧縮パラメータに基いて圧縮する圧縮ステップと、
前記圧縮ステップにより圧縮されたデータのデータ量（Ｖ１とする。）と、前記第２メモリにおける前記共用部分以外のメモリ容量（Ｖ２とする。）と、を比較する比較ステップと、
前記比較ステップによる比較の結果、前記データ量Ｖ１が前記メモリ容量Ｖ２よりも大きいと判定されたときには、前記圧縮パラメータを再設定し、前記データ量Ｖ１が前記メモリ容量Ｖ２以下の大きさであると判定されたときには、前記第１メモリに記憶されている被圧縮データ全体を低位アドレスから順に前記圧縮パラメータに基いて圧縮させ、前記第２メモリに低位アドレスから順に記憶させるように制御する制御ステップと、
を含むことを特徴とするデータ処理方法。
【請求項９】
アドレスを有するメモリ内に連続するアドレスを有するように記憶容量として第１の容量（Ｖ４とする。）分だけ確保された被圧縮データを記憶するための第１メモリと、アドレスを有する前記メモリ内に高位アドレス側の第３の容量（Ｖ３とする。）分を前記第１メモリと共用するように記憶容量として第２の容量（Ｖ５とする。）分だけ確保された圧縮データを記憶するための第２メモリと、の内の、前記第１メモリの低位アドレス側の前記第３の容量Ｖ３分に記憶されている被圧縮データを、所定のデータ量（Ｖ６とする。）を単位として、前記第１の容量Ｖ４の被圧縮データを圧縮して得られる圧縮データが前記第２の容量Ｖ５以下に収まるように制御するための圧縮パラメータに基づき、低位アドレス側から順に圧縮する圧縮ステップと、
各回（回数をｍで示す。ここに、ｍは１以上の整数）の圧縮が行われる毎に、それまでに得られた圧縮データ量と、（Ｖ５−Ｖ３）＋Ｖ６×（ｍ−１）と、を比較する比較ステップと、
前記比較ステップによる比較の結果、何れかの回の圧縮において、それまでの圧縮データ量が（Ｖ５−Ｖ３）＋Ｖ６×（ｍ−１）よりも大きいと判定したときには、前記圧縮パラメータを再設定し、全ての回の圧縮において、それまでの圧縮データ量が（Ｖ５−Ｖ３）＋Ｖ６×（ｍ−１）以下であると判定したときには、前記第１メモリに記憶されている被圧縮データ全体を低位アドレスから順に前記圧縮パラメータに基いて圧縮し、前記第２メモリに低位アドレスから順に記憶させるように制御する制御ステップと、
をコンピュータに実行させるためのデータ処理プログラム。
【請求項１０】
アドレスを有するメモリ内に連続するアドレスを有するように記憶容量として第１の容量（Ｖ４とする。）分だけ確保された被圧縮データを記憶するための第１メモリと、アドレスを有する前記メモリ内に高位アドレス側の第３の容量（Ｖ３とする。）分を前記第１メモリと共用するように記憶容量として第２の容量（Ｖ５とする。）分だけ確保された圧縮データを記憶するための第２メモリと、の内の、前記第１メモリの低位アドレス側の前記第３の容量Ｖ３分に記憶されている被圧縮データを、所定のデータ量（Ｖ６とする。）を単位として、前記第１の容量Ｖ４の被圧縮データを圧縮して得られる圧縮データが前記第２の容量Ｖ５以下に収まるように制御するための圧縮パラメータに基づき、低位アドレス側から順に圧縮する圧縮ステップと、
各回（回数をｍで示す。ここに、ｍは１以上の整数）の圧縮が行われる毎に、それまでに得られた圧縮データ量と、（Ｖ５−Ｖ３）＋Ｖ６×（ｍ−１）と、を比較する比較ステップと、
前記比較ステップによる比較の結果、何れかの回の圧縮において、それまでの圧縮データ量が（Ｖ５−Ｖ３）＋Ｖ６×（ｍ−１）よりも大きいと判定したときには、前記圧縮パラメータを再設定し、全ての回の圧縮において、それまでの圧縮データ量が（Ｖ５−Ｖ３）＋Ｖ６×（ｍ−１）以下であると判定したときには、前記第１メモリに記憶されている被圧縮データ全体を低位アドレスから順に前記圧縮パラメータに基いて圧縮し、前記第２メモリに低位アドレスから順に記憶させるように制御する制御ステップと、
を含むことを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１メモリに記憶されているデータを処理して第２メモリに記憶するようになされたデータ処理装置、データ処理プログラム、データ処理方法に関する。
【背景技術】
【０００２】
デジタルデータは、保存時の記録容量を削減するために、あるいは伝送時の通信負荷を低減するために、圧縮処理されることが多い。こうしたデジタルデータの内の、例えばデジタルカメラにより撮像して得られる画像データは、ＪＰＥＧ圧縮等を行ってメモリカードなどに保存することが一般的である。
【０００３】
ところで、デジタルカメラの場合には、従来のフィルムカメラと同様に、あと何枚の画像を記録することが可能であるかを、例えば「残り××枚撮影可能」などの表示により、ユーザに知らせるようにすることが広く行われている。このような枚数表示が正確となるためには、１枚当たりのＪＰＥＧ画像ファイルサイズを一定に保つ必要がある。これに対して、ＪＰＥＧ画像ファイルサイズは、その画像の特性に依存している。例えば、木々の画像は高周波成分が多いために、ＪＰＥＧ圧縮してもデータ量は大きくなる。これに対して、例えば、青空のように平坦な画像の場合は、高周波成分が小さく、ＪＰＥＧ圧縮するとデータ量が小さくなる。
【０００４】
従って、撮影可能枚数を正確に算出することができるようにするために、画像に応じて圧縮パラメータを適切に制御し、データ量を一定にするようになっている。
【０００５】
このような技術としては、例えば特開２０００−１１４９８０号公報に、まず試し圧縮を少なくとも１回行うことによりＪＰＥＧ圧縮データ量を制御するための圧縮パラメータ（スケールファクタ）を決定して、決定された圧縮パラメータにより本圧縮処理を行う技術が記載されている。
【０００６】
具体的には、メモリから被圧縮データを読み出して、予め定められた圧縮パラメータを用いてまず試し圧縮を行い、圧縮データのデータ量を算出する。なお、このときには、メモリからの被圧縮データの入力は行うが、圧縮データはデータ量の算出に用いるのみであり、メモリへの出力は行わない。次に、得られた試し圧縮で得られたデータ量を目標とするデータ量とを比較して、目標とするデータ量を得られると推定される圧縮パラメータを算出する。その後、算出した圧縮パラメータを用いてＪＰＥＧ圧縮処理（本圧縮処理）を行い、圧縮後のＪＰＥＧデータをメモリに記憶する。そして、該公報に記載された技術では、圧縮前の撮像データを一時記憶するためのバッファと、圧縮後のＪＰＥＧデータを一次記憶するバッファと、をＳＤＲＡＭメモリ上に別個に確保する必要がある。つまり、被圧縮データが例えば６Ｍバイト（メガバイト）であり、圧縮データが２Ｍバイトである場合には、合計８Ｍバイトのメモリ容量（記憶容量）を確保する必要があった。
【特許文献１】特開２０００−１１４９８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、近年の撮像素子はますますの高画素化が進んでいるために、圧縮処理を行う前後のデータ、つまり、被圧縮データと、圧縮データと、の両方を記憶するためのメモリ（例えばＳＤＲＡＭなど）も大きなメモリ容量のものを用いる必要があって、コストアップの要因となっている。
【０００８】
そこで、圧縮処理に用いるメモリ容量を削減する技術が望まれている。上述したような特開２０００−１１４９８０号公報に記載された技術では、被圧縮データを格納するためのメモリと、圧縮データを格納するためのメモリと、の両方が別個に必要であったが、圧縮処理を行った後には被圧縮データは不要となるために、圧縮前の撮像データを格納するメモリと、圧縮後のＪＰＥＧデータを格納するメモリと、を共用することができれば、必要なメモリ容量の削減を行うことが可能になると考えられる。
【０００９】
例えば、ＪＰＥＧ圧縮においては、画像データを８×８画素単位で読み出して圧縮処理を行うために、画像データは順次処理されることになる。このとき、処理後のメモリ領域は不要となるために、不要になった部分に圧縮処理後のデータを上書きすることにより、メモリの削減を図ることが可能になる。
【００１０】
しかし、上述したような従来の圧縮データ量制御、つまり、画像全体の圧縮データ量が一定になるように圧縮パラメータをチューニングする技術（特に、ＪＰＥＧ圧縮の例のように、画像全体の情報に基づいて、画像全体に適用される１つの圧縮パラメータが決定される技術）では、圧縮後のＪＰＥＧデータを圧縮前の撮像データに重ね書きして行くと、未処理の圧縮前撮像データを破壊する可能性がある。
【００１１】
つまり、被圧縮画像の読み出し順序に沿った前半に高周波成分が多く含まれ、後半が平坦であるような画像の場合には、前半により多くの圧縮データが出力され、逆に後半に出力される圧縮データ量は少なくなるために、いわゆるメモリ追い越しが発生して、被圧縮データを破壊してしまう可能性がある。
【００１２】
こうして、処理前のデータの破壊を招くことなく、必要メモリ容量を低減可能なデータ処理の手段が望まれていた。
【００１３】
本発明は上記事情に鑑みてなされたものであり、処理前のデータの破壊を招くことなく、必要メモリ容量を低減し得るデータ処理装置、データ処理プログラム、データ処理方法を提供することを目的としている。
【課題を解決するための手段】
【００１４】
上記の目的を達成するために、第１の発明によるデータ処理装置は、アドレスを有するメモリ内に連続するアドレスを有するように確保された被圧縮データを記憶するための第１メモリと、前記被圧縮データを圧縮する圧縮手段と、前記被圧縮データを圧縮したときの圧縮データ量を制御するための圧縮パラメータを設定する圧縮パラメータ設定手段と、アドレスを有する前記メモリ内に前記第１メモリの先頭よりも低位アドレス側から連続するアドレスを有するようにかつ該第１メモリと一部を共用するように確保された圧縮データを記憶するための第２メモリと、前記第２メモリと共用する前記第１メモリの部分に記憶されている被圧縮データを前記圧縮パラメータに基いて前記圧縮手段により圧縮させ圧縮されたデータのデータ量（Ｖ１とする。）と前記第２メモリにおける前記共用部分以外のメモリ容量（Ｖ２とする。）とを比較する比較手段と、前記比較手段による比較の結果前記データ量Ｖ１が前記メモリ容量Ｖ２よりも大きいと判定されたときには前記圧縮パラメータ設定手段に圧縮パラメータを再設定させ前記データ量Ｖ１が前記メモリ容量Ｖ２以下の大きさであると判定されたときには前記第１メモリに記憶されている被圧縮データ全体を低位アドレスから順に前記圧縮パラメータに基いて前記圧縮手段により圧縮させ前記第２メモリに低位アドレスから順に記憶させるように制御する制御手段と、を具備したものである。
【００１５】
また、第２の発明によるデータ処理装置は、上記第１の発明によるデータ処理装置において、前記圧縮パラメータに基いて前記被圧縮データを圧縮したときの圧縮データ量を予測する圧縮データ量予測手段をさらに具備し、前記第２メモリは、アドレスを有する前記メモリ内に、前記圧縮データ量予測手段により前記被圧縮データ（容量をＶ４とする。）を圧縮したときの予測圧縮データ量（Ｖ５とする。）だけ確保されたものである。
【００１６】
さらに、第３の発明によるデータ処理装置は、上記第２の発明によるデータ処理装置において、前記第２メモリが、該第２メモリにおける前記共用部分のメモリ容量をＶ３とするときに、（Ｖ２／Ｖ３）が（Ｖ５／Ｖ４）以上となるように、アドレスを有する前記メモリ内に確保されたものである。
【００１７】
第４の発明によるデータ処理装置は、アドレスを有するメモリ内に連続するアドレスを有するように記憶容量として第１の容量（Ｖ４とする。）分だけ確保された被圧縮データを記憶するための第１メモリと、前記被圧縮データを所定のデータ量（Ｖ６とする。）を単位として圧縮する圧縮手段と、前記圧縮手段により前記第１の容量Ｖ４の被圧縮データを圧縮して得られる圧縮データが第２の容量（Ｖ５とする。）以下に収まるように制御するための圧縮パラメータを設定する圧縮パラメータ設定手段と、アドレスを有する前記メモリ内に高位アドレス側の第３の容量（Ｖ３とする。ここに、Ｖ３≦Ｖ５を満たす。）分を前記第１メモリと共用するように記憶容量として前記第２の容量Ｖ５分だけ確保された圧縮データを記憶するための第２メモリと、前記第１メモリの低位アドレス側の前記第３の容量Ｖ３分に記憶されている被圧縮データを前記圧縮手段により前記所定のデータ量Ｖ６を単位として低位アドレス側から順に圧縮させ各回（回数をｍで示す。ここに、ｍは１以上の整数）の圧縮が行われる毎にそれまでに得られた圧縮データ量と（Ｖ５−Ｖ３）＋Ｖ６×（ｍ−１）とを比較する比較手段と、前記比較手段による比較の結果何れかの回の圧縮においてそれまでの圧縮データ量が（Ｖ５−Ｖ３）＋Ｖ６×（ｍ−１）よりも大きいと判定されたときには前記圧縮パラメータ設定手段に圧縮パラメータを再設定させ全ての回の圧縮においてそれまでの圧縮データ量が（Ｖ５−Ｖ３）＋Ｖ６×（ｍ−１）以下であると判定されたときには前記第１メモリに記憶されている被圧縮データ全体を低位アドレスから順に前記圧縮パラメータに基いて前記圧縮手段により圧縮させ前記第２メモリに低位アドレスから順に記憶させるように制御する制御手段と、を具備したものである。
【００１８】
第５の発明によるデータ処理装置は、上記第４の発明によるデータ処理装置において、前記圧縮パラメータに基いて前記所定のデータ量Ｖ６の被圧縮データを圧縮したときの圧縮データ量（Ｖ２とする。）を予測する圧縮データ量予測手段をさらに具備し、前記第２メモリは、前記圧縮データ量予測手段により予測された圧縮データ量Ｖ２だけ、前記第１メモリの先頭から低位アドレス側へ行った位置を、先頭とするものである。
【００１９】
第６の発明によるデータ処理装置は、上記第５の発明によるデータ処理装置において、前記圧縮手段はＪＰＥＧ圧縮を行うものであり、前記単位はブロックラインである。
【００２０】
第７の発明によるデータ処理プログラムは、アドレスを有するメモリ内に連続するアドレスを有するように確保された被圧縮データを記憶するための第１メモリと、アドレスを有する前記メモリ内に前記第１メモリの先頭よりも低位アドレス側から連続するアドレスを有するようにかつ該第１メモリと一部を共用するように確保された圧縮データを記憶するための第２メモリと、が共用する前記第１メモリの部分に記憶されている被圧縮データを、前記被圧縮データを圧縮したときの圧縮データ量を制御するための圧縮パラメータに基いて圧縮する圧縮ステップと、前記圧縮ステップにより圧縮されたデータのデータ量（Ｖ１とする。）と、前記第２メモリにおける前記共用部分以外のメモリ容量（Ｖ２とする。）と、を比較する比較ステップと、前記比較ステップによる比較の結果、前記データ量Ｖ１が前記メモリ容量Ｖ２よりも大きいと判定されたときには、前記圧縮パラメータを再設定し、前記データ量Ｖ１が前記メモリ容量Ｖ２以下の大きさであると判定されたときには、前記第１メモリに記憶されている被圧縮データ全体を低位アドレスから順に前記圧縮パラメータに基いて圧縮させ、前記第２メモリに低位アドレスから順に記憶させるように制御する制御ステップと、をコンピュータに実行させるためのプログラムである。
【００２１】
第８の発明によるデータ処理方法は、アドレスを有するメモリ内に連続するアドレスを有するように確保された被圧縮データを記憶するための第１メモリと、アドレスを有する前記メモリ内に前記第１メモリの先頭よりも低位アドレス側から連続するアドレスを有するようにかつ該第１メモリと一部を共用するように確保された圧縮データを記憶するための第２メモリと、が共用する前記第１メモリの部分に記憶されている被圧縮データを、前記被圧縮データを圧縮したときの圧縮データ量を制御するための圧縮パラメータに基いて圧縮する圧縮ステップと、前記圧縮ステップにより圧縮されたデータのデータ量（Ｖ１とする。）と、前記第２メモリにおける前記共用部分以外のメモリ容量（Ｖ２とする。）と、を比較する比較ステップと、前記比較ステップによる比較の結果、前記データ量Ｖ１が前記メモリ容量Ｖ２よりも大きいと判定されたときには、前記圧縮パラメータを再設定し、前記データ量Ｖ１が前記メモリ容量Ｖ２以下の大きさであると判定されたときには、前記第１メモリに記憶されている被圧縮データ全体を低位アドレスから順に前記圧縮パラメータに基いて圧縮させ、前記第２メモリに低位アドレスから順に記憶させるように制御する制御ステップと、を含む方法である。
【００２２】
第９の発明によるデータ処理プログラムは、アドレスを有するメモリ内に連続するアドレスを有するように記憶容量として第１の容量（Ｖ４とする。）分だけ確保された被圧縮データを記憶するための第１メモリと、アドレスを有する前記メモリ内に高位アドレス側の第３の容量（Ｖ３とする。）分を前記第１メモリと共用するように記憶容量として第２の容量（Ｖ５とする。）分だけ確保された圧縮データを記憶するための第２メモリと、の内の、前記第１メモリの低位アドレス側の前記第３の容量Ｖ３分に記憶されている被圧縮データを、所定のデータ量（Ｖ６とする。）を単位として、前記第１の容量Ｖ４の被圧縮データを圧縮して得られる圧縮データが前記第２の容量Ｖ５以下に収まるように制御するための圧縮パラメータに基づき、低位アドレス側から順に圧縮する圧縮ステップと、各回（回数をｍで示す。ここに、ｍは１以上の整数）の圧縮が行われる毎に、それまでに得られた圧縮データ量と、（Ｖ５−Ｖ３）＋Ｖ６×（ｍ−１）と、を比較する比較ステップと、前記比較ステップによる比較の結果、何れかの回の圧縮において、それまでの圧縮データ量が（Ｖ５−Ｖ３）＋Ｖ６×（ｍ−１）よりも大きいと判定したときには、前記圧縮パラメータを再設定し、全ての回の圧縮において、それまでの圧縮データ量が（Ｖ５−Ｖ３）＋Ｖ６×（ｍ−１）以下であると判定したときには、前記第１メモリに記憶されている被圧縮データ全体を低位アドレスから順に前記圧縮パラメータに基いて圧縮し、前記第２メモリに低位アドレスから順に記憶させるように制御する制御ステップと、をコンピュータに実行させるためのプログラムである。
【００２３】
第１０の発明によるデータ処理方法は、アドレスを有するメモリ内に連続するアドレスを有するように記憶容量として第１の容量（Ｖ４とする。）分だけ確保された被圧縮データを記憶するための第１メモリと、アドレスを有する前記メモリ内に高位アドレス側の第３の容量（Ｖ３とする。）分を前記第１メモリと共用するように記憶容量として第２の容量（Ｖ５とする。）分だけ確保された圧縮データを記憶するための第２メモリと、の内の、前記第１メモリの低位アドレス側の前記第３の容量Ｖ３分に記憶されている被圧縮データを、所定のデータ量（Ｖ６とする。）を単位として、前記第１の容量Ｖ４の被圧縮データを圧縮して得られる圧縮データが前記第２の容量Ｖ５以下に収まるように制御するための圧縮パラメータに基づき、低位アドレス側から順に圧縮する圧縮ステップと、各回（回数をｍで示す。ここに、ｍは１以上の整数）の圧縮が行われる毎に、それまでに得られた圧縮データ量と、（Ｖ５−Ｖ３）＋Ｖ６×（ｍ−１）と、を比較する比較ステップと、前記比較ステップによる比較の結果、何れかの回の圧縮において、それまでの圧縮データ量が（Ｖ５−Ｖ３）＋Ｖ６×（ｍ−１）よりも大きいと判定したときには、前記圧縮パラメータを再設定し、全ての回の圧縮において、それまでの圧縮データ量が（Ｖ５−Ｖ３）＋Ｖ６×（ｍ−１）以下であると判定したときには、前記第１メモリに記憶されている被圧縮データ全体を低位アドレスから順に前記圧縮パラメータに基いて圧縮し、前記第２メモリに低位アドレスから順に記憶させるように制御する制御ステップと、を含む方法である。
【発明の効果】
【００２４】
本発明のデータ処理装置、データ処理プログラム、データ処理方法によれば、処理前のデータの破壊を招くことなく、必要メモリ容量を低減することが可能となる。
【発明を実施するための最良の形態】
【００２５】
以下、図面を参照して本発明の実施の形態を説明する。
【００２６】
［実施形態１］
図１から図３は本発明の実施形態１を示したものであり、図１はデータ処理装置の基本的な構成を示すブロック図である。
【００２７】
このデータ処理装置１は、第１バッファメモリ１１と、第２バッファメモリ１２と、圧縮部１３と、圧縮パラメータ設定部１４と、ゲート１５と、データ出力可否切換部１６と、圧縮データ量計測カウンタ１７と、ＣＰＵ１８と、を含んでいる。
【００２８】
第１バッファメモリ１１は、被圧縮データを記憶するための第１メモリである。
【００２９】
第２バッファメモリ１２は、圧縮データを記憶するための第２メモリであり、後で図２を参照して説明するように、第１バッファメモリ１１とメモリ領域の一部を共用するようになっている。
【００３０】
圧縮部１３は、第１バッファメモリ１１から被圧縮データを読み出して、圧縮処理を行うものである。ここでは、被圧縮データが撮像素子から出力された画像データであり、圧縮処理がＪＰＥＧである場合を例に説明するが、これらに限るものではない。
【００３１】
圧縮パラメータ設定部１４は、圧縮データのデータ量を制御するための圧縮パラメータを設定する圧縮パラメータ設定手段である。ＪＰＥＧにおいては、圧縮パラメータとして、ＤＣＴ係数を量子化するための量子化テーブルとして与えられる量子化パラメータと、ハフマン符号化テーブルとして与えられる符号化パラメータと、が含まれることになる。ただし、実用上は、圧縮データ量の制御は、量子化パラメータを制御することにより行われることが多い。
【００３２】
ゲート１５は、試し圧縮の際には、第２バッファメモリ１２への圧縮データの書き込みを禁止するために閉じ、本圧縮の際には、第２バッファメモリ１２への圧縮データの書き込みを許容するために開くものである。
【００３３】
データ出力可否切換部１６は、試し圧縮の際にゲート１５を閉じさせ、本圧縮の際にゲート１５を開かせるように切換制御するものである。
【００３４】
圧縮データ量計測カウンタ１７は、ゲート１５よりも圧縮部１３側に配設されていて、試し圧縮時に圧縮部１３から出力される圧縮データのデータ量を計測するためのカウンタである。
【００３５】
ＣＰＵ１８は、上述したような、圧縮部１３、圧縮パラメータ設定部１４、ゲート１５、データ出力可否切換部１６、圧縮データ量計測カウンタ１７を含むこのデータ処理装置１全体を制御するための制御手段であり、比較手段、圧縮データ量予測手段を兼ねたものとなっている。
【００３６】
次に、図２は、第１バッファメモリ１１および第２バッファメモリ１２の構成を示す図である。
【００３７】
この図２においては、メモリの論理アドレスが、上側が低位アドレス側、下側が高位アドレス側となっていて、同一行においては、左側がより低位アドレス、右側がより高位アドレスとなっているものとする。
【００３８】
まず、第１バッファメモリ１１に記憶されている被圧縮データは、Ａ→Ｂ→Ｃの順に走査して読み出されるようになっている。つまり、図示上の、ある８×８画素単位のデータを左端から右へ向かって読み、右端に至ったところで、次の８×８画素単位のデータを左端から右端へ向かって読む、といった動作を繰り返すことによりメモリ走査される。
【００３９】
同様に、第２バッファメモリ１２に記憶される圧縮データは、Ｄ→Ｅ→Ｆの順に（すなわち論理アドレスの順に）書き込まれるようになっている。
【００４０】
そして、第１バッファメモリ１１のメモリ容量（記憶容量）がＶ４バイト（Ｂｙｔｅ）であり、第２バッファメモリ１２のメモリ容量がＶ５バイトであって、第２バッファメモリ１２の高位アドレス側のＶ３バイト（第２共用部）が、第１バッファメモリ１１の低位アドレス側のＶ３バイト（第１共用部）と共用されるようになっている。従って、第２バッファメモリ１２の低位アドレス側には、第１バッファメモリ１１とは共用されないＶ２バイト（＝（Ｖ５−Ｖ３）バイト）の第２非共用部が設けられている。一方、第１バッファメモリの高位アドレス側には、（Ｖ４−Ｖ３）バイトの第１非共用部が設けられている。なお、第１バッファメモリ１１の第１共用部に記憶されているＶ３バイトの被圧縮データを圧縮したときのデータ量は、Ｖ１バイトになるものとする。
【００４１】
ここに、上述した各メモリ容量には、最も適切であると考えられる関係、つまり、メモリ不足に陥る可能性を低くしながら（つまり、圧縮パラメータを再設定して試し圧縮を行わなければならない可能性を低くしながら）、メモリ共用部分を多くする（つまり、全体のメモリ量を小さくする）ことができると考えられる関係があり、ここでは以下に説明するように設定されているものとする。
【００４２】
まず、第１バッファメモリ１１のメモリ容量Ｖ４は、撮像素子の画素数に応じて一意的に決まるものである。
【００４３】
次に、第２バッファメモリ１２のメモリ容量Ｖ５は、目標とする圧縮データ量に応じて定まり、ここでは、例えば、データ処理装置１が適用されるデジタルカメラ等において設定し得る最高画質の圧縮率に対応する圧縮データ量であるとする。
【００４４】
このとき、第２バッファメモリ１２の、第２非共用部のメモリ容量Ｖ２と、第２共用部のメモリ容量Ｖ３と、が次の数式１に示すような関係を満たすようにする。 
［数１］
Ｖ３：Ｖ２＝Ｖ４：Ｖ５
【００４５】
また、Ｖ３＋Ｖ２＝Ｖ５の関係式が成り立つために、第２非共用部のメモリ容量Ｖ２と、第２共用部のメモリ容量Ｖ３とは、次の数式２に示すように決定される。 
［数２］
Ｖ２＝（Ｖ５×Ｖ５）／（Ｖ４＋Ｖ５）
Ｖ３＝（Ｖ４×Ｖ５）／（Ｖ４＋Ｖ５）
【００４６】
例えば、被圧縮データ（つまりＶ４）が１２Ｍ（ここに、「Ｍ」は１０２４×１０２４を表すものとする。以下同様。）バイト、目標とする圧縮データ量（つまりＶ５）が４Ｍバイトであるとすると、数式２により、Ｖ２は１Ｍバイト、Ｖ３は３Ｍバイトとなることが分かる。
【００４７】
そして、このようなメモリ容量の設定が、最高画質（低圧縮率）の記録モードにおいて行われているために、ユーザ操作によって、より低画質（高圧縮率）の記録モードに設定されているような場合には、低画質であればあるほど、メモリ追い越しが起こり難くなる。従って、圧縮パラメータを再設定する必要がなくなり、より高速に処理を行うことが可能となる。
【００４８】
なお、ここでは数式２に示すように第２非共用部のメモリ容量Ｖ２と第２共用部のメモリ容量Ｖ３とを決定している（つまり、（Ｖ２／Ｖ３）が（Ｖ５／Ｖ４）と等しくなるようにしている）が、圧縮パラメータを再設定する必要性をより低減するためには、数式２に示したよりも、第２非共用部のメモリ容量Ｖ２をやや多くし、その分だけ第２共用部のメモリ容量Ｖ３を少なくするようにすればよい（つまり、（Ｖ２／Ｖ３）が（Ｖ５／Ｖ４）よりも大きくなるようにすればよい）。
【００４９】
続いて、図３は、データ処理装置の作用を示すフローチャートである。
【００５０】
この処理を開始すると、まず、ＣＰＵ１８の制御に基づき、圧縮パラメータ設定部１４が予め定められた圧縮パラメータαを圧縮部１３に設定し、圧縮部１３が第１バッファメモリ１１から全ての被圧縮データを順次読み出して、圧縮パラメータαを用いて圧縮を行う。この圧縮は、圧縮データ量を見積もるための試し圧縮であるために、このときには、データ出力可否切換部１６の制御により、ゲート１５は閉じた状態となっている。そして、圧縮データ量計測カウンタ１７が、圧縮部１３から出力される圧縮データのデータ量をカウントし、全ての圧縮データのカウントを終了したときのカウント値が、圧縮パラメータαに対応する圧縮データ量となる（ステップＳ１）。
【００５１】
次に、ＣＰＵ１８は、圧縮パラメータαに対して得られた圧縮データ量の情報に基づいて、第１バッファメモリ１１に記憶されている全ての被圧縮データを圧縮処理したときに、目標とするデータ量の圧縮データが得られるような圧縮パラメータβを算出する（ステップＳ２）。
【００５２】
続いて、ＣＰＵ１８は、算出した圧縮パラメータβを圧縮パラメータ設定部１４を介して圧縮部１３に設定させる。そして、ＣＰＵ１８は、第１バッファメモリ１１に記憶されている被圧縮データの内の、第２バッファメモリ１２としても共用される部分（第１共用部）の被圧縮データ、つまり、第１バッファメモリ１１の先頭（最も低位アドレスの）位置からＶ３バイト分の被圧縮データを、第１バッファメモリ１１から読み出させて、圧縮部１３により、圧縮パラメータβを用いて圧縮させる。このときにも、ゲート１５は閉じたままである。そして、圧縮データ量計測カウンタ１７により、Ｖ３バイト分の被圧縮データを圧縮して得られたデータ量Ｖ１を計測する。（ステップＳ３）。
【００５３】
次に、ＣＰＵ１８は、計測されたデータ量Ｖ１と、第２バッファメモリ１２の第２非共用部のメモリ容量Ｖ２とを比較して、Ｖ１＞Ｖ２であるか否か、つまりメモリ不足が生じているか否かを判定する（ステップＳ４）。
【００５４】
ここで、メモリ不足が生じている（Ｖ１＞Ｖ２である）と判定された場合には、圧縮データ量をより小さくしてメモリ不足が解消されるように圧縮パラメータを変更して（ステップＳ５）、ステップＳ３へ戻り、変更した圧縮パラメータに基づき、上述したような処理を行う。
【００５５】
こうして、ステップＳ４において、メモリ不足ではない（Ｖ１≦Ｖ２である）と判定された場合には、第１バッファメモリ１１の第１共用部に記憶されている被圧縮データを全て圧縮処理して第２バッファメモリ１２の第２非共用部に書き込んだとしても、第１バッファメモリ１１の第１共用部への書込は行われておらず、未処理の第１バッファメモリ１１のメモリ破壊が生じることはないことになる。従って、ＣＰＵ１８は、データ出力可否切換部１６を介してゲート１５を開き、圧縮部１３により圧縮処理（本圧縮処理）を行わせて、第２バッファメモリ１２に書き込ませる（ステップＳ６）。
【００５６】
こうして、本圧縮処理が終了したら、この処理が終了となる。
【００５７】
なお、上述では、第１共用部の被圧縮データを圧縮しても、第２非共用部からあふれることがないのを確認した後に、本圧縮を行うようにしているが、これに限らず、圧縮データ量をリアルタイムでカウントしながら、ゲート１５を開いた状態で第２非共用部の先頭から圧縮データを順次書き込んでいき、第１共用部の被圧縮データを圧縮したデータが第２非共用部からあふれそうになる場合にのみ、あふれる前にゲート１５を閉じて第１共用部へのデータの書き込みを阻止するようにしても構わない。このような構成を採用すると、第１共用部の被圧縮データを圧縮したデータが第２非共用部からあふれない場合に、そのまま継続して圧縮処理を続けることが可能となるために、処理のパスを減らして、高速化を図ることが可能となる。
【００５８】
このような実施形態１によれば、被圧縮データを記憶するための第１バッファメモリと圧縮データを記憶するための第２バッファメモリとを少なくとも一部共用するようにしているために、必要なメモリ容量を低減することが可能となり、コストを削減することができる。このとき、第１バッファメモリの第１共用部の被圧縮データを全て圧縮して第２バッファメモリに書き込んでも第２非共用部に収まるように構成されているために、第１バッファメモリに記憶されている未処理の被圧縮データが破壊されることはないと保証され、確実にデータ圧縮を行うことが可能となる。
【００５９】
そして、第２バッファメモリにおける第２非共用部のメモリ容量Ｖ２と、第２共用部のメモリ容量Ｖ３とを、数式２に示すように決定することにより、メモリ不足に陥る可能性を低くしながら（つまり、圧縮パラメータを再設定して試し圧縮を行わなければならない可能性を低くしながら）、メモリ共用部分を多くする（つまり、全体のメモリ量を小さくする）ことができる。
【００６０】
［実施形態２］
図４から図６は本発明の実施形態２を示したものである。この実施形態２において、上述の実施形態１と同様である部分については同一の符号を付して説明を省略し、主として異なる点についてのみ説明する。
【００６１】
例えばＪＰＥＧ圧縮においては、画像を８×８画素の画素ブロックに分割し、各画素ブロック単位で圧縮処理を行うようになっている。そして、ブロック単位での処理を行うためには、８ライン（ブロックライン）分の画素データを読み出さなければならない。そこで本実施形態は、このような処理手順の特徴を生かして、メモリ容量を低減するようにしたものとなっている。
【００６２】
なお、以下では、圧縮方式としてＪＰＥＧを例に挙げて説明することにする。
【００６３】
まず、図６を参照して、本実施形態のメモリ構成について説明する。図６は、第１バッファメモリ１１および第２バッファメモリ１２の構成を示す図である。なお、この図６においても、上述した図２と同様に、メモリの論理アドレスが、上側が低位アドレス側、下側が高位アドレス側となっていて、同一行においては、左側がより低位アドレス、右側がより高位アドレスとなっているものとする。
【００６４】
具体例として、被圧縮画像データが、横４０９６×縦３０７２の画素数の１バイト白黒画像データ（つまり、総データ量が１２Ｍバイトであり、第１バッファメモリ１１のメモリ容量Ｖ４が１２Ｍバイト）（なお、ここでは白黒画像を例に挙げるが、カラー画像の場合にも本実施形態の構成を同様に適用可能である。）であるものとする。従って、総ブロックライン数ｎは、３０７２／８＝３８４であって、１つのブロックラインは横４０９６×縦８の画素数で構成され、データ量Ｖ６は３２Ｋ（ここに、「Ｋ」は１０２４を表すものとする。以下同様。）バイトとなる。
【００６５】
これに対応して、第２バッファメモリ１２は、上記１２Ｍバイトの被圧縮データを１／３にデータ圧縮したときに、該圧縮データを記憶することができるように、メモリ容量Ｖ５が４Ｍバイトとなるように確保されている。このとき、総ブロックライン数ｎは上述したように３８４であるために、１ブロックラインに対応する圧縮データ量は、概略１０Ｋバイト（以下では、１０Ｋバイトに付すべき「概略」を省略する。）となる。
【００６６】
そして、この第２バッファメモリ１２は、第１バッファメモリ１１の先頭よりも低位アドレス側１０Ｋバイトの位置が先頭となるように、つまり、第２バッファメモリ１２の第２非共用部のメモリ容量Ｖ２が１０Ｋバイトとなるように構成されている。従って、第２バッファメモリ１２の第２共用部の容量Ｖ３は、（４Ｍ−１０Ｋ）バイトである。
【００６７】
一方、第１バッファメモリ１１の第１共用部は、基本的には第２共用部と一致するが、上述したように、ＪＰＥＧ圧縮処理がブロックライン単位で行われるために、容量Ｖ３に対応するブロック数ｋは、（４Ｍ−１０Ｋ）／３２Ｋ＝１２８（端数は切り上げる）である。
【００６８】
なお、第２バッファメモリ１２は、図６においては、１ブロックライン毎に１０Ｋバイトのデータ領域が確保されているかのように図示されているが、ブロックライン毎に圧縮された圧縮データは、実際には、第２バッファメモリ１２の先頭から詰めて記憶されることになる。１つのブロックラインを圧縮して得られる圧縮データのデータ量は、各ブロックライン内の画像の状態によって異なるために、ｍ番目のブロックラインの圧縮データを記憶したときの第２バッファメモリ１２における記憶済みデータの終端は、先頭からｍ×１０Ｋバイトの位置となっているとは限らない。従って、図６における第２バッファメモリ１２の第２共用部（メモリ容量Ｖ３の領域）に記載した各１０Ｋは、あくまでもデータ量の目安を示したものである。
【００６９】
次に、図４は、データ処理装置の基本的な構成を示すブロック図である。
【００７０】
本実施形態のデータ処理装置１Ｂは、第１バッファメモリ１１と、第２バッファメモリ１２と、圧縮部１３と、圧縮パラメータ設定部１４と、ゲート１５と、データ出力可否切換部１６と、圧縮データ量計測カウンタ１７と、ＣＰＵ１８と、を含むとともに、さらにハードウェアロジックとして構成されたメモリ追い越し判定回路を含んでいる。このメモリ追い越し判定回路は、被圧縮データ量計測カウンタ２１と、ブロックライン量レジスタ２２と、一致判定部２３と、判定タイミング生成部２４と、被圧縮データ累積部２５と、出力バッファ量レジスタ２６と、メモリ不足判定部２７と、を含んでいる。
【００７１】
そして、圧縮部１３と、圧縮パラメータ設定部１４と、ゲート１５と、データ出力可否切換部１６とは、上述した実施形態１の図１に示したものとほぼ同様に機能するものとなっている。
【００７２】
また、第１バッファメモリ１１と第２バッファメモリ１２とは、図６を参照して上述したように構成されている。
【００７３】
なお、第１バッファメモリ１１から読み出される被圧縮データは、ＳｉｇＡとして圧縮部１３および被圧縮データ量計測カウンタ２１に入力される。また、圧縮部１３から出力される圧縮データは、ＳｉｇＢとしてゲート１５および圧縮データ量計測カウンタ１７に入力される。
【００７４】
圧縮データ量計測カウンタ１７は、圧縮データＳｉｇＢのデータ量をカウントし、カウント値をＳｉｇＨとしてメモリ不足判定部２７へ出力するものである。
【００７５】
また、被圧縮データ量計測カウンタ２１は、第１バッファメモリ１１から読み出される被圧縮データＳｉｇＡを入力して、そのデータ量を計測し、データ量信号ＳｉｇＣとして出力するカウンタである。なお、この被圧縮データ量計測カウンタ２１は、一致判定部２３から一致判定信号ＳｉｇＥが後述するように出力されると、リセットされるようになっている。
【００７６】
ブロックライン量レジスタ２２は、上述したブロックラインのデータ量を記憶し、ブロックラインデータ量信号ＳｉｇＤとして出力するレジスタである。従って、上述した例では、ブロックラインのデータ量Ｖ６が３２Ｋバイトであることを記憶し、出力することになる。
【００７７】
一致判定部２３は、被圧縮データ量計測カウンタ２１により計測しているデータ量が、ブロックライン量レジスタ２２に記憶しているブロックラインのデータ量Ｖ２に一致するか否かを判定し、一致したと判定した場合には、一致判定信号ＳｉｇＥを出力するものである。
【００７８】
判定タイミング生成部２４は、一致判定部２３により一致したと判定された場合に、上述したような圧縮部１３の圧縮処理に要する時間（図５における（Ｔ３−Ｔ２））だけ待機してから、メモリ不足が生じているか否かをメモリ不足判定部２７に判定させるためのタイミング信号ＳｉｇＧを生成して該メモリ不足判定部２７へ出力するためのものである。
【００７９】
被圧縮データ累積部２５は、一致判定部２３から一致判定信号ＳｉｇＥが出力される毎に、ブロックライン量レジスタ２２に記憶されているブロックラインのデータ量を加算し記憶し（累積し）、累積値信号ＳｉｇＦを出力するものである。ただし、この被圧縮データ累積部２５の初期値は、１ブロックラインデータ量だけマイナスとなるように、すなわち、上記例においては−３２Ｋバイトとなるように、設定されている。従って、この被圧縮データ累積部２５は、第１バッファメモリ１１の先頭から、処理中のブロックライン（ｍ番目のブロックラインであるとする）の１つ前のブロックラインまでの被圧縮データのデータ量Ｖ６×（ｍ−１）を記憶しておくものとなっている。
【００８０】
出力バッファ量レジスタ２６は、第２バッファメモリ１２の第２非共用部のメモリ容量Ｖ２を記憶しておくためのレジスタである。上記例においては、第２非共用部のメモリ容量Ｖ２が１０Ｋバイトであることを記憶することになる。そして、この第２バッファメモリ１２に記憶されているメモリ容量Ｖ２は、信号ＳｉｇＩとして読み出されるようになっている。
【００８１】
メモリ不足判定部２７は、出力バッファ量レジスタ２６に記憶されているメモリ容量Ｖ２と、被圧縮データ累積部２５から出力されるデータ量Ｖ６×（ｍ−１）と、を加算し、この加算値（Ｖ２＋Ｖ６×（ｍ−１））を、圧縮データ量計測カウンタ１７から出力される圧縮データ量と比較して、加算値よりも圧縮データ量が多い場合には、メモリ不足と判定する比較手段である。
【００８２】
ＣＰＵ１８は、上述したような、圧縮部１３、圧縮パラメータ設定部１４、ゲート１５、データ出力可否切換部１６、圧縮データ量計測カウンタ１７、被圧縮データ量計測カウンタ２１、ブロックライン量レジスタ２２、一致判定部２３、判定タイミング生成部２４、被圧縮データ累積部２５、出力バッファ量レジスタ２６、メモリ不足判定部２７を含むこのデータ処理装置１Ｂ全体を制御するための制御手段である。
【００８３】
次に、本実施形態のデータ処理装置１Ｂによるデータ圧縮時の処理の流れは、図３に示したものと同様であるために、説明を省略する。
【００８４】
続いて、図５は、データ処理装置におけるメモリ追い越し判定回路の処理の流れを示すタイミングチャートである。この図５は、図３に示したステップＳ３の処理におけるメモリ追い越し判定回路の様子の一部を示すものとなっている。なお、この図５は、信号同士のタイミングを示すものであって、時間軸の方向となっている横方向は必ずしも等しい時間間隔とはなっていない。
【００８５】
ステップＳ２において算出されたパラメータβに基づき、上述したメモリ容量Ｖ３に対応するブロック数ｋ（上記例では１２８）分の被圧縮データを圧縮したときのデータ量の見積もりが時刻Ｔ１において開始されると、被圧縮データ量計測カウンタ２１は入力される被圧縮データＳｉｇＡのカウントを行い、圧縮データ量計測カウンタ１７は入力される圧縮データＳｉｇＢのカウントを行う（ただし、圧縮部１３による圧縮処理には時間を要するために、圧縮データ量計測カウンタ１７によるカウントアップは、実際には、時刻Ｔ１から上述した時間（Ｔ３−Ｔ２）だけ経過したときから開始される。）。また、ブロックライン量レジスタ２２には予め「３２Ｋ」が、被圧縮データ累積部２５には予め「−３２Ｋ」が、出力バッファ量レジスタ２６には予め「１０Ｋ」が、それぞれ記憶されている。
【００８６】
その後、時刻Ｔ２において、被圧縮データ量計測カウンタ２１によるカウント値が３２Ｋに達すると、一致判定部２３がブロックライン量レジスタ２２に記憶されている値３２Ｋと一致すると判定する。一致判定部２３から一致判定信号ＳｉｇＥが出力されると、被圧縮データ量計測カウンタ２１のカウント値がリセットされ、被圧縮データ累積部２５に３２Ｋ（ブロックライン量レジスタ２２に記憶されている値）が加算されてここでは「０」になる。さらに、判定タイミング生成部２４は、一致判定部２３からの一致判定信号ＳｉｇＥを受けると、この一致判定が行われた時点の被圧縮データが圧縮部１３により圧縮されるまでの時間を遅延させてから、時刻Ｔ３において、タイミング信号ＳｉｇＧをメモリ不足判定部２７へ出力する。
【００８７】
このタイミング信号ＳｉｇＧを受けて、メモリ不足判定部２７は、出力バッファ量レジスタ２６に記憶されているメモリ容量Ｖ２（ＳｉｇＩとして得られる。）（図５中、丸印で示している。）と、被圧縮データ累積部２５から出力されるデータ量Ｖ６×（ｍ−１）（ＳｉｇＦとして得られる。）（図５中、丸印で示している。）と、を加算し、この加算値を、圧縮データ量計測カウンタ１７からＳｉｇＨとして出力される圧縮データ量（図５中、丸印で示している。）と比較する。この図５に示す例では、加算値は１０Ｋ（＝Ｖ２）、圧縮データ量は９Ｋであるために、メモリ不足は生じていない（ＯＫである）と判定されている。
【００８８】
その後も、２番目以降のブロックラインに対して、同様の処理を繰り返して行うことになる。
【００８９】
こうして、上述したメモリ容量Ｖ３に対応するブロック数ｋ（上記例では１２８）分の被圧縮データの圧縮を終了するまでに、メモリ不足判定部２７により一度でもメモリ不足であると判定された場合（図３のステップＳ４においてメモリ不足と判定された場合）には、試し圧縮の処理を中止して、ステップＳ５において圧縮パラメータを変更し、同様の処理を繰り返して行うことになる。
【００９０】
一方、ブロック数ｋ（上記例では１２８）分の被圧縮データの圧縮を終了するまでに、メモリ不足判定部２７が一度もメモリ不足であると判定しなかった場合には、メモリ追い越しが発生しないことが保証されるために、ステップＳ６の本圧縮の処理を行うことになる。
【００９１】
なお、第１バッファメモリ１１は１ブロックラインの処理が終了する毎に３２Ｋバイトの領域が空いて行き、第２バッファメモリ１２は１ブロックラインの処理が終了する毎に１０Ｋバイト程度の領域が埋まっていくために、ブロックラインの処理が進むほど、メモリ追い越しが発生する可能性は急激に低くなって行く。従って、メモリ容量Ｖ３に対応するブロック数ｋの処理が全て終了するのを待つことなく、メモリ追い越しが発生する可能性がほぼ０になるところで処理を中止するようにすることも可能である。
【００９２】
このような実施形態２によれば、上述した実施形態１とほぼ同様の効果を奏するとともに、ブロックライン毎にメモリ追い越しが発生するか否かを判定するようにし、第２バッファメモリの第２非共用部のメモリ容量を、１つのブロックライン分の被圧縮データを圧縮したときの目標データ量程度としているために、必要なメモリ容量をより一層削減することが可能となる。
【００９３】
そして、メモリ追い越し回路を、ハードウェアロジックにより構成したために、リアルタイム性をより高めることが可能となる。
【００９４】
なお、上述した各実施形態においては、データ処理装置を例に挙げて説明したが、既存の装置にデータ処理方法を適用することにより上述したデータ処理装置と同等の機能を果たさせるようにしても構わないし、コンピュータにデータ処理プログラムを適用することにより、上述したデータ処理装置と同等の機能を果たさせるようにしても良い。
【００９５】
また、上述した各実施形態においては、圧縮処理を行う対象のデータとして画像データを例に挙げているが、被圧縮データはこれに限るものではなく、例えば音声データであっても構わないし、その他のデータであっても広く適用することが可能である。
【００９６】
さらに、上述した各実施形態においては、データ処理として、データ圧縮を例に挙げているが、これに限るものではない。すなわち、より一般のデータ処理に関しても、処理前のデータを第１メモリに記憶させ、処理後のデータを第２メモリに記憶させる構成において、第１メモリと第２メモリとを上述したように共用させることが可能である。
【００９７】
なお、本発明は上述した実施形態に限定されるものではなく、発明の主旨を逸脱しない範囲内において種々の変形や応用が可能であることは勿論である。
【００９８】
［付記］
以上詳述したような本発明の上記実施形態によれば、以下のごとき構成を得ることができる。
【００９９】
（Ａ１）  第１非共用部と第１共用部とを有する第１メモリと、
第２非共用部と、前記第１共用部と共用される第２共用部と、を有する第２メモリと、
データ処理を行うデータ処理手段と、
前記第１共用部に記憶されているデータを前記データ処理手段によりデータ処理させ、処理後のデータ量が第２非共用部の記憶容量以下であるときには、該処理後のデータを第２非共用部に書き込むことを許可する制御手段と、
を具備したことを特徴とするデータ処理装置。
【０１００】
（Ａ２）  前記データ処理手段は、パラメータを変更することにより処理後のデータ量を異ならせることができるように構成されたものであり、
前記制御手段は、前記第１共用部に記憶されているデータを前記データ処理手段によりデータ処理させたときの処理後のデータ量が、前記第２非共用部の記憶容量よりも大きいときには、データ処理後のデータ量が該第２非共用部の記憶容量以下となるように前記パラメータを変更するものであることを特徴とする付記（Ａ１）に記載のデータ処理装置。
【０１０１】
（Ａ３）  前記データ処理手段は、データ圧縮を行う圧縮手段を含んで構成されたものであり、前記パラメータは圧縮パラメータを含むものであることを特徴とする付記（Ａ２）に記載のデータ処理装置。
【０１０２】
（Ａ４）  前記圧縮パラメータに基いてデータ圧縮したときの圧縮データ量を予測する圧縮データ量予測手段をさらに具備し、
前記第２メモリは、前記圧縮データ量予測手段により前記第１メモリの記憶容量分の被圧縮データをデータ圧縮したときに予測される圧縮データ量の記憶容量のものであることを特徴とする付記（Ａ３）に記載のデータ処理装置。
【０１０３】
（Ａ５）  前記第２メモリは、さらに、前記第１共用部の記憶容量に対する前記第２非共用部の記憶容量の比が、前記第１メモリの記憶容量に対する前記第２メモリの記憶容量の比以上となるように設定されたものであることを特徴とする付記（Ａ４）に記載のデータ処理装置。
【０１０４】
（Ａ６）  前記第１メモリと前記第２メモリとは、アドレスを有するメモリ内に、連続するアドレスを有するように各々確保されたものであって、前記第１共用部と前記第２共用部とは同一のアドレスを有し、低位アドレスから高位アドレスへ向かって順に、第２非共用部、第１共用部つまり第２共用部、第１非共用部、の順にアドレスが連続しているものであることを特徴とする付記（Ａ１）、付記（Ａ２）、付記（Ａ３）、付記（Ａ４）、または付記（Ａ５）に記載のデータ処理装置。
【０１０５】
（Ａ７）  第１非共用部と第１共用部とを有する第１メモリの前記第１共用部に記憶されているデータをデータ処理するステップと、
処理後のデータ量が、第２非共用部と、前記第１共用部と共用される第２共用部と、を有する第２メモリの、前記第２非共用部の記憶容量以下であるか否かを判定するステップと、
処理後のデータ量が前記第２非共用部の記憶容量以下であると判定されたときにのみ、該処理後のデータを該第２非共用部に書き込むことを許可するステップと、
をコンピュータに実行させるためのデータ処理プログラム。
【０１０６】
（Ａ８）  第１非共用部と第１共用部とを有する第１メモリの前記第１共用部に記憶されているデータをデータ処理するステップと、
処理後のデータ量が、第２非共用部と、前記第１共用部と共用される第２共用部と、を有する第２メモリの、前記第２非共用部の記憶容量以下であるか否かを判定するステップと、
処理後のデータ量が前記第２非共用部の記憶容量以下であると判定されたときにのみ、該処理後のデータを該第２非共用部に書き込むことを許可するステップと、
を含むことを特徴とするデータ処理方法。
【０１０７】
（Ｂ１）  アドレスを有するメモリ内に、連続するアドレスを有するように確保された第１メモリと、
前記第１メモリから読み出したデータを処理するデータ処理手段と、
アドレスを有する前記メモリ内に、前記第１メモリの先頭以上の低位アドレス側から連続するアドレスを有するように、かつ、該第１メモリと少なくとも一部を共用するように確保された、前記データ処理手段により処理されたデータを記憶するための第２メモリと、
前記第２メモリと共用する前記第１メモリの領域に記憶されているデータを低位アドレスから順に読み出して、データ処理手段に処理させ、処理後のデータを該第２メモリに低位アドレスから順に書き込んだと想定したときに該第１メモリ内のまだ読み出されていないデータを破壊することがあるか否かを判定し、破壊することがないと判定したときにのみ、該第１メモリの全データをデータ処理手段に処理させて第２メモリに書き込ませるように制御する制御手段と、
を具備したことを特徴とするデータ処理装置。
【０１０８】
（Ｂ２）  前記データ処理手段は、パラメータを変更することにより処理後のデータ量を異ならせることができるように構成されたものであり、
前記制御手段は、前記破壊をすることがあると判定したときは、該破壊をすることがないと判定され得るように、前記パラメータを変更するものであることを特徴とする付記（Ｂ１）に記載のデータ処理装置。
【０１０９】
（Ｂ３）  前記データ処理手段は、データ圧縮を行う圧縮手段を含んで構成されたものであり、前記パラメータは圧縮パラメータを含むものであることを特徴とする付記（Ｂ２）に記載のデータ処理装置。
【０１１０】
（Ｂ４）  前記圧縮パラメータに基いてデータ圧縮したときの圧縮データ量を予測する圧縮データ量予測手段をさらに具備し、
前記データ処理手段は、所定量のデータを単位として、該単位毎に処理を行うものであり、
前記第２メモリは、前記圧縮データ量予測手段により前記単位の被圧縮データをデータ圧縮したときに予測される圧縮データ量だけ、前記第１メモリの先頭から低位アドレス側へ行った位置を、先頭とするものであることを特徴とする付記（Ｂ３）に記載のデータ処理装置。
【０１１１】
（Ｂ５）  前記圧縮手段は、ＪＰＥＧ圧縮を行うものであり、前記単位は、ブロックラインであることを特徴とする付記（Ｂ４）に記載のデータ処理装置。
【０１１２】
（Ｂ６）  アドレスを有するメモリ内に連続するアドレスを有するように確保された第１メモリと、アドレスを有する前記メモリ内に前記第１メモリの先頭以上の低位アドレス側から連続するアドレスを有するようにかつ該第１メモリと少なくとも一部を共用するように確保された前記データ処理手段により処理されたデータを記憶するための第２メモリと、の内の、前記第２メモリと共用する前記第１メモリの領域に記憶されているデータを低位アドレスから順に読み出してデータ処理するステップと、
処理後のデータを前記第２メモリに低位アドレスから順に書き込んだと想定したときに前記第１メモリ内のまだ読み出されていないデータを破壊することがあるか否かを判定するステップと、
破壊することがないと判定したときにのみ、前記第１メモリの全データをデータ処理させて前記第２メモリに書き込ませるように制御するステップと、
をコンピュータに実行させるためのデータ処理プログラム。
【０１１３】
（Ｂ７）  アドレスを有するメモリ内に連続するアドレスを有するように確保された第１メモリと、アドレスを有する前記メモリ内に前記第１メモリの先頭以上の低位アドレス側から連続するアドレスを有するようにかつ該第１メモリと少なくとも一部を共用するように確保された前記データ処理手段により処理されたデータを記憶するための第２メモリと、の内の、前記第２メモリと共用する前記第１メモリの領域に記憶されているデータを低位アドレスから順に読み出してデータ処理するステップと、
処理後のデータを前記第２メモリに低位アドレスから順に書き込んだと想定したときに前記第１メモリ内のまだ読み出されていないデータを破壊することがあるか否かを判定するステップと、
破壊することがないと判定したときにのみ、前記第１メモリの全データをデータ処理させて前記第２メモリに書き込ませるように制御するステップと、
を含むことを特徴とするデータ処理方法。
【産業上の利用可能性】
【０１１４】
本発明は、第１メモリに記憶されているデータを処理して第２メモリに記憶するようになされたデータ処理装置、データ処理プログラム、データ処理方法に好適に利用することができる。
【図面の簡単な説明】
【０１１５】
【図１】本発明の実施形態１におけるデータ処理装置の基本的な構成を示すブロック図。
【図２】上記実施形態１における第１バッファメモリおよび第２バッファメモリの構成を示す図。
【図３】上記実施形態１におけるデータ処理装置の作用を示すフローチャート。
【図４】本発明の実施形態２におけるデータ処理装置の基本的な構成を示すブロック図。
【図５】上記実施形態２のデータ処理装置におけるメモリ追い越し判定回路の処理の流れを示すタイミングチャート。
【図６】上記実施形態２における第１バッファメモリおよび第２バッファメモリの構成を示す図。
【符号の説明】
【０１１６】
１，１Ｂ…データ処理装置
１１…第１バッファメモリ（第１メモリ）
１２…第２バッファメモリ（第２メモリ）
１３…圧縮部（データ処理手段、圧縮手段）
１４…圧縮パラメータ設定部（圧縮パラメータ設定手段）
１５…ゲート
１６…データ出力可否切換部
１７…圧縮データ量計測カウンタ
１８…ＣＰＵ（制御手段、比較手段、圧縮データ量予測手段）
２１…被圧縮データ量計測カウンタ
２２…ブロックライン量レジスタ
２３…一致判定部
２４…判定タイミング生成部
２５…被圧縮データ累積部
２６…出力バッファ量レジスタ
２７…メモリ不足判定部（比較手段）
【図１】
2007060578.tif 000003
【図２】
2007060578.tif 000004
【図３】
2007060578.tif 000005
【図４】
2007060578.tif 000006
【図５】
2007060578.tif 000007
【図６】
2007060578.tif 000008