JP2005033400A - Jpegデータ生成方法および装置 - Google Patents
Jpegデータ生成方法および装置 Download PDFInfo
- Publication number
- JP2005033400A JP2005033400A JP2003194841A JP2003194841A JP2005033400A JP 2005033400 A JP2005033400 A JP 2005033400A JP 2003194841 A JP2003194841 A JP 2003194841A JP 2003194841 A JP2003194841 A JP 2003194841A JP 2005033400 A JP2005033400 A JP 2005033400A
- Authority
- JP
- Japan
- Prior art keywords
- data
- size
- image information
- offset
- header
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Image Processing (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
【課題】前記画像情報と前記画像データとを無効なデータが介在しないように連結する処理が複雑化し、CPU負荷が増大する課題があった。
【解決手段】パラメータによりヘッダのサイズを決定し(ステップS2)、さらに1DMA転送のデータ量で前記ヘッダのサイズが割り切れるように、オフセットデータのサイズを算出する(ステップS3)。次に、ヘッダエンジン4へ前記オフセットデータのサイズとその他のパラメータを設定し(ステップS4)、ヘッダエンジン4を起動し(ステップS5)、ヘッダデータを記憶装置6へ記憶する。このヘッダデータは、SOI(0xFFD8)の先頭に前記サイズのオフセットデータが付加されており、無効なデータが介在することなく画像データは前記ヘッダデータに連続して記憶装置6へ書き込まれる。
【選択図】 図4
【解決手段】パラメータによりヘッダのサイズを決定し(ステップS2)、さらに1DMA転送のデータ量で前記ヘッダのサイズが割り切れるように、オフセットデータのサイズを算出する(ステップS3)。次に、ヘッダエンジン4へ前記オフセットデータのサイズとその他のパラメータを設定し(ステップS4)、ヘッダエンジン4を起動し(ステップS5)、ヘッダデータを記憶装置6へ記憶する。このヘッダデータは、SOI(0xFFD8)の先頭に前記サイズのオフセットデータが付加されており、無効なデータが介在することなく画像データは前記ヘッダデータに連続して記憶装置6へ書き込まれる。
【選択図】 図4
Description
【0001】
【発明の属する技術分野】
本発明は、JPEGデータを生成する際のCPU負荷の軽減および高速化を実現できるJPEGデータ生成方法および装置に関する。
【0002】
【従来の技術】
JPEGファイルは、画像情報(JPEGヘッダ部)と画像データ部(JPEG画像データ部)とからなる。
画像情報は、SOI(Start Of Image)、DQT(Define Quantization Table)、DHT(Define Huffman Table)、DRI(Define Restart Interval)、SOF0(Baseline DCT)、SOS(Start OfScan)などのヘッダデータから構成される。
また、画像データ部は、ECS(Entropy Coded Segment)、EOI(End Of Image)などのデータから構成される。
図5は、このJPEGファイルのデータ構成を示す構成図である。そして、画像情報はヘッダエンジンにより生成処理され、また画像データ部はストリームエンジンにより生成処理される。この場合、画像情報、画像データそれぞれのデータとなる可変長のビットストリームを専用ハードウェアで生成し、記憶装置などに記録し、これらデータを連結しJPEGファイルを生成する。そして、記憶装置には固定長(たとえば32バイト)づつ転送し記録する(例えば、特許文献1参照)。
【0003】
【特許文献1】
特開平6−85690号公報
【0004】
このように、従来では、それぞれのデータ(画像情報、画像データ)となる可変長のビットストリームを専用ハードウェアで生成し、記憶装置へ固定長で転送しJPEGデータの生成を行なっていたので、連結される画像情報(JPEGヘッダ部)と画像データ部(JPEG画像データ部)との間に、図6に示すように無効なデータが入ってしまうことになる。特に、画像情報においては、図5に示すヘッダデータDRIの有無に応じて6バイトの違いが発生する可変長であり、記憶装置へ固定長で転送した場合に図6に示すように無効なデータが入ってしまう。
【0005】
図6(a)は、100バイトの画像情報を生成し、1DMAが32バイトの転送で64ビット記憶装置に書き込みを行なったときのメモリマップを示し、4DMA転送で100バイトの画像情報が64ビット記憶装置にすべて書き込める状態を示すが、4回目の転送では、画像情報に続いて、記憶装置の書き込みアドレス0x0064から0x007Fには無効なデータが存在してしまう。
また同図(b)は、1000バイトの画像データを生成し、1DMAが32バイトの転送で64ビット記憶装置の前記図6(a)に示す画像情報の続きに書き込みを行なった場合のメモリマップであり、画像情報に続いて無効なデータが入るが、32DMA転送で1000バイトの前記画像データが64ビット記憶装置にすべて書き込める状態を示す。
【0006】
【発明が解決しようとする課題】
従来のJPEGデータの生成は以上のように行なわれていたので、画像情報と画像データとの間に無効なデータが入らないようにするためには、CPUにより有効データを切り出す処理が必要になり、画像情報と画像データの連結処理が複雑化し、CPU負荷が増大し、高速化を図るのに障害となる課題があった。
【0007】
本発明はこのような課題を解決するためになされたものであり、本発明の目的は、JPEGデータを生成する際のCPU負荷の軽減および高速化を実現できるJPEGデータ生成方法および装置を提供することにある。
【0008】
【課題を解決するための手段】
本発明に係るJPEGデータ生成方法は、画像情報を設定するパラメータをもとに算出した前記画像情報のサイズと固定長の転送サイズとから、前記画像情報の最終データを前記固定長による転送の最終データにするオフセットデータのサイズを算出する算出ステップと、前記算出ステップにより算出したサイズのオフセットデータを前記画像情報の先頭に付加する設定ステップとを備えたことを特徴とする。
【0009】
本発明のJPEGデータ生成方法は、画像情報を設定するパラメータをもとに算出した前記画像情報のサイズと固定長の転送サイズとから、前記画像情報の最終データを前記固定長による転送の最終データにするオフセットデータのサイズを算出し、前記算出したサイズのオフセットデータを前記画像情報の先頭に付加することで、前記オフセットデータを含む前記画像情報のサイズを前記固定長の転送サイズで割り切れるサイズにして、前記画像情報を固定長により転送したときに、前記画像情報と、その画像情報に連結される画像データとの間に無効なデータが入ることのないようにする。
【0010】
本発明に係るJPEGデータ生成装置は、画像情報を設定するパラメータをもとに算出した前記画像情報のサイズと固定長の転送サイズとから、前記画像情報の最終データを前記固定長による転送の最終データにするオフセットデータのサイズを算出するオフセットサイズ算出手段と、前記オフセットサイズ算出手段により算出したサイズのオフセットデータを、ヘッダエンジンが生成する画像情報の先頭に付加するオフセットデータ設定手段とを備えたことを特徴とする。
【0011】
本発明のJPEGデータ生成装置は、画像情報を設定するパラメータをもとに算出した前記画像情報のサイズと固定長の転送サイズとから、前記画像情報の最終データを前記固定長による転送の最終データにするオフセットデータのサイズをオフセットサイズ算出手段により算出し、前記算出したサイズのオフセットデータをオフセットデータ設定手段により前記画像情報の先頭に付加することで、前記オフセットデータを含む前記画像情報のサイズを前記固定長の転送サイズで割り切れるサイズにして、前記画像情報を固定長により転送したときに、前記画像情報と、その画像情報に連結される画像データとの間に無効なデータが入ることのないようにする。
【0012】
【発明の実施の形態】
次に、本発明の実施の一形態について説明する。
図1は、本発明によるJPEGデータ生成方法が適用されるJPEGデータ生成装置の実施の一形態を示すシステム構成図である。
このJPEGデータ生成装置は、ホストコンピュータ(オフセットサイズ算出手段、オフセットデータ設定手段、以下、CPUという)1、CPUバス2、JPEG画像生成ハードウェア(専用ハードウェア、以下、ストリームエンジンという)3、JPEGヘッダ生成ハードウェア(オフセットデータ設定手段、専用ハードウェア、以下、ヘッダエンジンという)4、セレクタ5、記憶装置6および画像入力装置7などを備えている。ストリームエンジン3およびヘッダエンジン4は、CPUバス2を介してCPU1と接続されている。
【0013】
CPU1は、CPUバス2上に接続されているブロックに対し、パラメータの設定や起動、終了割り込みの受け取りを行うことが出来る。
【0014】
CPUバス2は、CPU1とストリームエンジン3やヘッダエンジン4とを接続し、CPU1とストリームエンジン3、ヘッダエンジン4との間で送受される前記パラメータ、起動信号、終了割り込み信号を含む各種信号の伝送路である。
【0015】
ストリームエンジン3は画像を圧縮するための情報を設定するものであり、圧縮に必要なパラメータセットや動作終了通知用のCPUインタフェース、圧縮用画像データを入力する入力データインタフェース(InPut用DataI/F)、圧縮した画像データを32バイト単位でDMA転送出力する出力データインタフェース(OutPut用DataI/F)を有している。
ストリームエンジン3のCPUインタフェースから設定できるパラメータとしては、インターリーブフォーマット情報、割り込み許可、リスタートマーカ間隔値、量子化テーブルなどがある。
【0016】
ヘッダエンジン4はヘッダに入る画像情報を設定するものであり、ヘッダ生成に必要なパラメータセットや動作終了通知用のCPUインタフェース、生成したヘッダを32バイト単位でDMA転送出力する出力データインタフェース(OutPut用DataI/F)を備え、CPU1から与えられたパラメータに応じて、出力データの先頭にオフセットデータを0〜32バイトセットできるオフセットデータ設定機能を有している。
CPUインタフェースから設定できるパラメータとしては、インタリーブフォーマット情報、オフセットサイズ、画像横サイズ(ピクセル)、画像縦サイズ(ピクセル)、リスタートマーカ間隔値などがある。
【0017】
図2は、このヘッダエンジン4が有している前記オフセットデータ設定機能によるオフセットデータの設定についての説明図であり、図2(a)は、図6(a)に示すメモリマップを示し、100バイトのヘッダの先頭にオフセットデータがセットされていない状態を示し、また図2(b)はヘッダエンジン4が有している前記オフセットデータ設定機能により100バイトのヘッダの先頭にオフセットデータがセットされた状態を示す。
【0018】
セレクタ5は、ヘッダエンジン4の起動中は、ヘッダエンジン4の前記出力データインタフェースのデータを出力し、またヘッダエンジン4の停止中にはストリームエンジン3の前記出力データインタフェースのデータを出力する。なお、このヘッダエンジン4の起動中/停止中の状態はセレクト信号により判定できる。
【0019】
記憶装置6は、セレクタ5から出力されたデータを32バイト単位で順次記憶するものであり64ビット記憶装置である。
画像入力装置7は、圧縮する画像データをストリームエンジン3へ入力するものである。
【0020】
次に動作について説明する。
先ず、ヘッダエンジン4によるオフセットデータ設定機能について説明する。ヘッダエンジン4は、内部に32バイトのFIFOを搭載し0番地から31番地までの書込み用アドレスを持っている。ヘッダエンジン4内では、1バイトごとにヘッダデータを生成し、前記FIFOに書き込み、書込み用アドレスをインクリメントする。前記FIFOに32バイト分のデータが書き込まれた時点(FIFOの最終アドレスの31番地をアクセスした時点)で、FIFOのデータを外部の記憶装置6に1DMA書き込みを行い、FIFOのアドレスを0番地にリセットする。ヘッダエンジン4では以上の動作を繰り返し、ヘッダデータが記憶装置6に記憶される。
【0021】
FIFOに32バイト分のデータが書き込まれる前にヘッダの生成が終了した場合には、その時点でFIFOのデータを記憶装置6に書き込む。
【0022】
FIFOはシステムリセット後の値は全ビット1とし、前記CPUインタフェースからオフセットサイズ(0番地から31番地までの任意)を設定することにより、ヘッダデータを書き込む際のアドレスの初期値に反映させることが出来る。この結果、オフセットサイズに応じた個数の0xFFをヘッダデータの先頭に付加することが出来る。図2(b)は、CPUインタフェースからオフセットサイズ(0番地〜23番地)を設定することにより、24個のオフセットデータFFが記憶装置6のアドレス0x0000から0x0017に書き込まれた状態のメモリマップを示す。
【0023】
次に、以上説明したヘッダエンジン4のオフセットデータ設定機能を利用したJPEGデータ生成処理をCPU1の動作として説明する。
図4は、このJPEGデータ生成処理を示すフローチャートである。
先ず、CPU1において圧縮パラメータを決定する(ステップS1)。次に、この決定された圧縮パラメータを含む、オフセットサイズ以外のパラメータによりヘッダのサイズを決定し(ステップS2、算出ステップ)、さらに1DMA転送のデータ量である32バイトで前記ヘッダのサイズが割り切れるように、オフセットサイズを算出する(ステップS3、算出ステップ)。
【0024】
ここで、このオフセットサイズの算出の一例について説明する。
ヘッダサイズは、オフセットサイズ以外のパラメータからサイズが算出できるので、ヘッダデータの最終(SOSの最終1バイト)が1DMA転送の32バイトの最終1バイトになるように、ヘッダの先頭に付加するオフセットデータのサイズを算出する。図3は、ヘッダデータの最終(SOSの最終1バイト)が1DMA転送の32バイトの最終1バイトになるようにそのサイズが算出されたオフセットデータとヘッダデータと画像データを示すメモリマップである。
例えば、ヘッダは図5に示すようにSOI、DQT、DHT、DRI、SOF0、SOSなどの各データから構成されるため、ヘッダサイズは(SOIのデータサイズ)+(DQTのデータサイズ)+(DHTのデータサイズ)+(DRIのデータサイズ)+(SOF0のデータサイズ)+(SOSのデータサイズ)であり、SOIのデータサイズが2バイト、DQTのデータサイズが134バイト、DHTのデータサイズが420バイト、DRIのデータサイズが6バイト、SOF0のデータサイズが19バイト、SOSのデータサイズが14バイトとすれば、ヘッダサイズは2+134+420+6+19+14=595バイトとなる。従って、オフセットサイズは、32−(595/32の余り)から13バイトと算出される。
【0025】
次に、ヘッダエンジン4へ前記算出したオフセットサイズとその他のパラメータを設定し(ステップS4、設定ステップ)、ヘッダエンジン4を起動する(ステップS5)。
【0026】
セレクタ5は、ヘッダエンジン4が起動すると、ヘッダエンジン4から出力されるヘッダデータを記憶装置6へ記憶する。このヘッダデータは、SOI(0xFFD8)の先頭に前記算出したサイズのオフセットデータが付加されている。そして、図3に示すように、オフセットデータを含むヘッダデータを記憶装置6の先頭アドレスから書き込んだときに、このオフセットデータのサイズは、ヘッダデータの最終(SOSの最終1バイト)がDMA転送32バイトの最終1バイトとなるように、つまり図6に示すように最後にDMA転送される画像情報(JPEGヘッダ部)に無効なデータが入ることのないよう、オフセットデータを含むヘッダデータのバイト数が32で割り切れるようなサイズになっている。
【0027】
次に、ストリームエンジン3へ必要なパラメータを設定し(ステップS6)、ストリームエンジン3を起動する(ステップS7)。セレクタ5は、ヘッダエンジン4が停止すると、ストリームエンジン3の出力データインタフェースのデータを出力するため、ヘッダエンジン4から記憶装置6へヘッダデータが書き込まれた後ヘッダエンジン4が停止し、ストリームエンジン3が起動するとストリームエンジン3の出力データインタフェースのデータ(画像データ)が、ヘッダデータに連続して前記記憶装置6へ書き込まれる。
なお、このストリームエンジン3においても、前記ヘッダエンジン4と同様なFIFOが搭載されている。
【0028】
この結果、記憶装置6に書き込まれた画像情報(JPEGヘッダ部)と画像データとの間には、従来のように無効なデータが介在していないので、記憶装置6に書き込む手前においてヘッダデータのSOI/EOIマーカを検出するように構成することで、JPEGファイル部分のみを高速かつ容易に切り出すことが可能になる。
【0029】
以上のように、この実施の形態によれば、画像情報(JPEGヘッダ部)と画像データとの間に無効なデータが入ることのないJPEGファイルを記憶装置6に生成することの出来るため、従来のように有効なデータの切り出し処理や、画像情報(JPEGヘッダ部)と画像データとの連結処理の複雑化を回避でき、CPU負荷の軽減および高速化を実現できるJPEGデータ生成方法および装置を提供できる効果がある。
【0030】
【発明の効果】
本発明によれば、画像情報を設定するパラメータをもとに算出した前記画像情報のサイズと固定長の転送サイズとから、前記画像情報の最終データを前記固定長による転送の最終データにするオフセットデータのサイズを算出し、前記算出したサイズのオフセットデータを前記画像情報の先頭に付加するように構成したので、前記オフセットデータと前記画像情報との合計のサイズが前記固定長の転送サイズで割り切れるサイズになっており、前記画像情報を固定長により転送したときに、前記画像情報の最終データが前記固定長による転送の最終データになって、その画像情報に連結される画像データとの間に無効なデータが入らないJPEGデータを生成でき、データの切り出し処理が容易になり、また画像情報と画像データとの連結処理の複雑化を回避でき、CPU負荷の軽減および高速化を実現できる効果がある。
【図面の簡単な説明】
【図1】本発明によるJPEGデータ生成方法が適用されるJPEGデータ生成装置の実施の一形態を示すシステム構成図である。
【図2】本発明の実施の一形態のJPEGデータ生成装置におけるオフセットデータ設定機能によるオフセットデータの設定についての説明図である。
【図3】本発明の実施の一形態のJPEGデータ生成装置において算出されたオフセットデータとヘッダデータと画像データを示すメモリマップである。
【図4】本発明の実施の一形態のJPEGデータ生成装置におけるJPEGデータ生成処理を示すフローチャートである。
【図5】JPEGファイルのデータ構成を示す構成図である。
【図6】画像情報と画像データを、1DMAが32バイトの転送で64ビット記憶装置に書き込みを行なったときのメモリマップを示す。
【符号の説明】
1……CPU(オフセットサイズ算出手段、オフセットデータ設定手段)、3……ストリームエンジン(専用ハードウェア)、4……ヘッダエンジン(オフセットデータ設定手段、専用ハードウェア)、5……セレクタ、6……記憶装置。
【発明の属する技術分野】
本発明は、JPEGデータを生成する際のCPU負荷の軽減および高速化を実現できるJPEGデータ生成方法および装置に関する。
【0002】
【従来の技術】
JPEGファイルは、画像情報(JPEGヘッダ部)と画像データ部(JPEG画像データ部)とからなる。
画像情報は、SOI(Start Of Image)、DQT(Define Quantization Table)、DHT(Define Huffman Table)、DRI(Define Restart Interval)、SOF0(Baseline DCT)、SOS(Start OfScan)などのヘッダデータから構成される。
また、画像データ部は、ECS(Entropy Coded Segment)、EOI(End Of Image)などのデータから構成される。
図5は、このJPEGファイルのデータ構成を示す構成図である。そして、画像情報はヘッダエンジンにより生成処理され、また画像データ部はストリームエンジンにより生成処理される。この場合、画像情報、画像データそれぞれのデータとなる可変長のビットストリームを専用ハードウェアで生成し、記憶装置などに記録し、これらデータを連結しJPEGファイルを生成する。そして、記憶装置には固定長(たとえば32バイト)づつ転送し記録する(例えば、特許文献1参照)。
【0003】
【特許文献1】
特開平6−85690号公報
【0004】
このように、従来では、それぞれのデータ(画像情報、画像データ)となる可変長のビットストリームを専用ハードウェアで生成し、記憶装置へ固定長で転送しJPEGデータの生成を行なっていたので、連結される画像情報(JPEGヘッダ部)と画像データ部(JPEG画像データ部)との間に、図6に示すように無効なデータが入ってしまうことになる。特に、画像情報においては、図5に示すヘッダデータDRIの有無に応じて6バイトの違いが発生する可変長であり、記憶装置へ固定長で転送した場合に図6に示すように無効なデータが入ってしまう。
【0005】
図6(a)は、100バイトの画像情報を生成し、1DMAが32バイトの転送で64ビット記憶装置に書き込みを行なったときのメモリマップを示し、4DMA転送で100バイトの画像情報が64ビット記憶装置にすべて書き込める状態を示すが、4回目の転送では、画像情報に続いて、記憶装置の書き込みアドレス0x0064から0x007Fには無効なデータが存在してしまう。
また同図(b)は、1000バイトの画像データを生成し、1DMAが32バイトの転送で64ビット記憶装置の前記図6(a)に示す画像情報の続きに書き込みを行なった場合のメモリマップであり、画像情報に続いて無効なデータが入るが、32DMA転送で1000バイトの前記画像データが64ビット記憶装置にすべて書き込める状態を示す。
【0006】
【発明が解決しようとする課題】
従来のJPEGデータの生成は以上のように行なわれていたので、画像情報と画像データとの間に無効なデータが入らないようにするためには、CPUにより有効データを切り出す処理が必要になり、画像情報と画像データの連結処理が複雑化し、CPU負荷が増大し、高速化を図るのに障害となる課題があった。
【0007】
本発明はこのような課題を解決するためになされたものであり、本発明の目的は、JPEGデータを生成する際のCPU負荷の軽減および高速化を実現できるJPEGデータ生成方法および装置を提供することにある。
【0008】
【課題を解決するための手段】
本発明に係るJPEGデータ生成方法は、画像情報を設定するパラメータをもとに算出した前記画像情報のサイズと固定長の転送サイズとから、前記画像情報の最終データを前記固定長による転送の最終データにするオフセットデータのサイズを算出する算出ステップと、前記算出ステップにより算出したサイズのオフセットデータを前記画像情報の先頭に付加する設定ステップとを備えたことを特徴とする。
【0009】
本発明のJPEGデータ生成方法は、画像情報を設定するパラメータをもとに算出した前記画像情報のサイズと固定長の転送サイズとから、前記画像情報の最終データを前記固定長による転送の最終データにするオフセットデータのサイズを算出し、前記算出したサイズのオフセットデータを前記画像情報の先頭に付加することで、前記オフセットデータを含む前記画像情報のサイズを前記固定長の転送サイズで割り切れるサイズにして、前記画像情報を固定長により転送したときに、前記画像情報と、その画像情報に連結される画像データとの間に無効なデータが入ることのないようにする。
【0010】
本発明に係るJPEGデータ生成装置は、画像情報を設定するパラメータをもとに算出した前記画像情報のサイズと固定長の転送サイズとから、前記画像情報の最終データを前記固定長による転送の最終データにするオフセットデータのサイズを算出するオフセットサイズ算出手段と、前記オフセットサイズ算出手段により算出したサイズのオフセットデータを、ヘッダエンジンが生成する画像情報の先頭に付加するオフセットデータ設定手段とを備えたことを特徴とする。
【0011】
本発明のJPEGデータ生成装置は、画像情報を設定するパラメータをもとに算出した前記画像情報のサイズと固定長の転送サイズとから、前記画像情報の最終データを前記固定長による転送の最終データにするオフセットデータのサイズをオフセットサイズ算出手段により算出し、前記算出したサイズのオフセットデータをオフセットデータ設定手段により前記画像情報の先頭に付加することで、前記オフセットデータを含む前記画像情報のサイズを前記固定長の転送サイズで割り切れるサイズにして、前記画像情報を固定長により転送したときに、前記画像情報と、その画像情報に連結される画像データとの間に無効なデータが入ることのないようにする。
【0012】
【発明の実施の形態】
次に、本発明の実施の一形態について説明する。
図1は、本発明によるJPEGデータ生成方法が適用されるJPEGデータ生成装置の実施の一形態を示すシステム構成図である。
このJPEGデータ生成装置は、ホストコンピュータ(オフセットサイズ算出手段、オフセットデータ設定手段、以下、CPUという)1、CPUバス2、JPEG画像生成ハードウェア(専用ハードウェア、以下、ストリームエンジンという)3、JPEGヘッダ生成ハードウェア(オフセットデータ設定手段、専用ハードウェア、以下、ヘッダエンジンという)4、セレクタ5、記憶装置6および画像入力装置7などを備えている。ストリームエンジン3およびヘッダエンジン4は、CPUバス2を介してCPU1と接続されている。
【0013】
CPU1は、CPUバス2上に接続されているブロックに対し、パラメータの設定や起動、終了割り込みの受け取りを行うことが出来る。
【0014】
CPUバス2は、CPU1とストリームエンジン3やヘッダエンジン4とを接続し、CPU1とストリームエンジン3、ヘッダエンジン4との間で送受される前記パラメータ、起動信号、終了割り込み信号を含む各種信号の伝送路である。
【0015】
ストリームエンジン3は画像を圧縮するための情報を設定するものであり、圧縮に必要なパラメータセットや動作終了通知用のCPUインタフェース、圧縮用画像データを入力する入力データインタフェース(InPut用DataI/F)、圧縮した画像データを32バイト単位でDMA転送出力する出力データインタフェース(OutPut用DataI/F)を有している。
ストリームエンジン3のCPUインタフェースから設定できるパラメータとしては、インターリーブフォーマット情報、割り込み許可、リスタートマーカ間隔値、量子化テーブルなどがある。
【0016】
ヘッダエンジン4はヘッダに入る画像情報を設定するものであり、ヘッダ生成に必要なパラメータセットや動作終了通知用のCPUインタフェース、生成したヘッダを32バイト単位でDMA転送出力する出力データインタフェース(OutPut用DataI/F)を備え、CPU1から与えられたパラメータに応じて、出力データの先頭にオフセットデータを0〜32バイトセットできるオフセットデータ設定機能を有している。
CPUインタフェースから設定できるパラメータとしては、インタリーブフォーマット情報、オフセットサイズ、画像横サイズ(ピクセル)、画像縦サイズ(ピクセル)、リスタートマーカ間隔値などがある。
【0017】
図2は、このヘッダエンジン4が有している前記オフセットデータ設定機能によるオフセットデータの設定についての説明図であり、図2(a)は、図6(a)に示すメモリマップを示し、100バイトのヘッダの先頭にオフセットデータがセットされていない状態を示し、また図2(b)はヘッダエンジン4が有している前記オフセットデータ設定機能により100バイトのヘッダの先頭にオフセットデータがセットされた状態を示す。
【0018】
セレクタ5は、ヘッダエンジン4の起動中は、ヘッダエンジン4の前記出力データインタフェースのデータを出力し、またヘッダエンジン4の停止中にはストリームエンジン3の前記出力データインタフェースのデータを出力する。なお、このヘッダエンジン4の起動中/停止中の状態はセレクト信号により判定できる。
【0019】
記憶装置6は、セレクタ5から出力されたデータを32バイト単位で順次記憶するものであり64ビット記憶装置である。
画像入力装置7は、圧縮する画像データをストリームエンジン3へ入力するものである。
【0020】
次に動作について説明する。
先ず、ヘッダエンジン4によるオフセットデータ設定機能について説明する。ヘッダエンジン4は、内部に32バイトのFIFOを搭載し0番地から31番地までの書込み用アドレスを持っている。ヘッダエンジン4内では、1バイトごとにヘッダデータを生成し、前記FIFOに書き込み、書込み用アドレスをインクリメントする。前記FIFOに32バイト分のデータが書き込まれた時点(FIFOの最終アドレスの31番地をアクセスした時点)で、FIFOのデータを外部の記憶装置6に1DMA書き込みを行い、FIFOのアドレスを0番地にリセットする。ヘッダエンジン4では以上の動作を繰り返し、ヘッダデータが記憶装置6に記憶される。
【0021】
FIFOに32バイト分のデータが書き込まれる前にヘッダの生成が終了した場合には、その時点でFIFOのデータを記憶装置6に書き込む。
【0022】
FIFOはシステムリセット後の値は全ビット1とし、前記CPUインタフェースからオフセットサイズ(0番地から31番地までの任意)を設定することにより、ヘッダデータを書き込む際のアドレスの初期値に反映させることが出来る。この結果、オフセットサイズに応じた個数の0xFFをヘッダデータの先頭に付加することが出来る。図2(b)は、CPUインタフェースからオフセットサイズ(0番地〜23番地)を設定することにより、24個のオフセットデータFFが記憶装置6のアドレス0x0000から0x0017に書き込まれた状態のメモリマップを示す。
【0023】
次に、以上説明したヘッダエンジン4のオフセットデータ設定機能を利用したJPEGデータ生成処理をCPU1の動作として説明する。
図4は、このJPEGデータ生成処理を示すフローチャートである。
先ず、CPU1において圧縮パラメータを決定する(ステップS1)。次に、この決定された圧縮パラメータを含む、オフセットサイズ以外のパラメータによりヘッダのサイズを決定し(ステップS2、算出ステップ)、さらに1DMA転送のデータ量である32バイトで前記ヘッダのサイズが割り切れるように、オフセットサイズを算出する(ステップS3、算出ステップ)。
【0024】
ここで、このオフセットサイズの算出の一例について説明する。
ヘッダサイズは、オフセットサイズ以外のパラメータからサイズが算出できるので、ヘッダデータの最終(SOSの最終1バイト)が1DMA転送の32バイトの最終1バイトになるように、ヘッダの先頭に付加するオフセットデータのサイズを算出する。図3は、ヘッダデータの最終(SOSの最終1バイト)が1DMA転送の32バイトの最終1バイトになるようにそのサイズが算出されたオフセットデータとヘッダデータと画像データを示すメモリマップである。
例えば、ヘッダは図5に示すようにSOI、DQT、DHT、DRI、SOF0、SOSなどの各データから構成されるため、ヘッダサイズは(SOIのデータサイズ)+(DQTのデータサイズ)+(DHTのデータサイズ)+(DRIのデータサイズ)+(SOF0のデータサイズ)+(SOSのデータサイズ)であり、SOIのデータサイズが2バイト、DQTのデータサイズが134バイト、DHTのデータサイズが420バイト、DRIのデータサイズが6バイト、SOF0のデータサイズが19バイト、SOSのデータサイズが14バイトとすれば、ヘッダサイズは2+134+420+6+19+14=595バイトとなる。従って、オフセットサイズは、32−(595/32の余り)から13バイトと算出される。
【0025】
次に、ヘッダエンジン4へ前記算出したオフセットサイズとその他のパラメータを設定し(ステップS4、設定ステップ)、ヘッダエンジン4を起動する(ステップS5)。
【0026】
セレクタ5は、ヘッダエンジン4が起動すると、ヘッダエンジン4から出力されるヘッダデータを記憶装置6へ記憶する。このヘッダデータは、SOI(0xFFD8)の先頭に前記算出したサイズのオフセットデータが付加されている。そして、図3に示すように、オフセットデータを含むヘッダデータを記憶装置6の先頭アドレスから書き込んだときに、このオフセットデータのサイズは、ヘッダデータの最終(SOSの最終1バイト)がDMA転送32バイトの最終1バイトとなるように、つまり図6に示すように最後にDMA転送される画像情報(JPEGヘッダ部)に無効なデータが入ることのないよう、オフセットデータを含むヘッダデータのバイト数が32で割り切れるようなサイズになっている。
【0027】
次に、ストリームエンジン3へ必要なパラメータを設定し(ステップS6)、ストリームエンジン3を起動する(ステップS7)。セレクタ5は、ヘッダエンジン4が停止すると、ストリームエンジン3の出力データインタフェースのデータを出力するため、ヘッダエンジン4から記憶装置6へヘッダデータが書き込まれた後ヘッダエンジン4が停止し、ストリームエンジン3が起動するとストリームエンジン3の出力データインタフェースのデータ(画像データ)が、ヘッダデータに連続して前記記憶装置6へ書き込まれる。
なお、このストリームエンジン3においても、前記ヘッダエンジン4と同様なFIFOが搭載されている。
【0028】
この結果、記憶装置6に書き込まれた画像情報(JPEGヘッダ部)と画像データとの間には、従来のように無効なデータが介在していないので、記憶装置6に書き込む手前においてヘッダデータのSOI/EOIマーカを検出するように構成することで、JPEGファイル部分のみを高速かつ容易に切り出すことが可能になる。
【0029】
以上のように、この実施の形態によれば、画像情報(JPEGヘッダ部)と画像データとの間に無効なデータが入ることのないJPEGファイルを記憶装置6に生成することの出来るため、従来のように有効なデータの切り出し処理や、画像情報(JPEGヘッダ部)と画像データとの連結処理の複雑化を回避でき、CPU負荷の軽減および高速化を実現できるJPEGデータ生成方法および装置を提供できる効果がある。
【0030】
【発明の効果】
本発明によれば、画像情報を設定するパラメータをもとに算出した前記画像情報のサイズと固定長の転送サイズとから、前記画像情報の最終データを前記固定長による転送の最終データにするオフセットデータのサイズを算出し、前記算出したサイズのオフセットデータを前記画像情報の先頭に付加するように構成したので、前記オフセットデータと前記画像情報との合計のサイズが前記固定長の転送サイズで割り切れるサイズになっており、前記画像情報を固定長により転送したときに、前記画像情報の最終データが前記固定長による転送の最終データになって、その画像情報に連結される画像データとの間に無効なデータが入らないJPEGデータを生成でき、データの切り出し処理が容易になり、また画像情報と画像データとの連結処理の複雑化を回避でき、CPU負荷の軽減および高速化を実現できる効果がある。
【図面の簡単な説明】
【図1】本発明によるJPEGデータ生成方法が適用されるJPEGデータ生成装置の実施の一形態を示すシステム構成図である。
【図2】本発明の実施の一形態のJPEGデータ生成装置におけるオフセットデータ設定機能によるオフセットデータの設定についての説明図である。
【図3】本発明の実施の一形態のJPEGデータ生成装置において算出されたオフセットデータとヘッダデータと画像データを示すメモリマップである。
【図4】本発明の実施の一形態のJPEGデータ生成装置におけるJPEGデータ生成処理を示すフローチャートである。
【図5】JPEGファイルのデータ構成を示す構成図である。
【図6】画像情報と画像データを、1DMAが32バイトの転送で64ビット記憶装置に書き込みを行なったときのメモリマップを示す。
【符号の説明】
1……CPU(オフセットサイズ算出手段、オフセットデータ設定手段)、3……ストリームエンジン(専用ハードウェア)、4……ヘッダエンジン(オフセットデータ設定手段、専用ハードウェア)、5……セレクタ、6……記憶装置。
Claims (5)
- それぞれ画像情報、画像データとなる可変長のビットストリームを専用ハードウェアで生成し、記憶装置へ固定長により転送し、JPEGファイルを生成するJPEGデータ生成方法において、
前記画像情報を設定するパラメータをもとに算出した前記画像情報のサイズと前記固定長の転送サイズとから、前記画像情報の最終データを前記固定長による転送の最終データにするオフセットデータのサイズを算出する算出ステップと、
前記算出ステップにより算出したサイズのオフセットデータを、前記専用ハードウェアが生成する前記画像情報の先頭に付加する設定ステップと、
を備えたことを特徴とするJPEGデータ生成方法。 - 前記設定ステップは、先入れ先出しメモリへ前記画像情報を書き込む際のアドレスの初期値に前記算出したオフセットデータのサイズを反映させ、前記サイズに応じたオフセットデータを前記画像情報の先頭に付加することを特徴とする請求項1記載のJPEGデータ生成方法。
- それぞれ画像情報、画像データとなる可変長のビットストリームをヘッダエンジン、ストリームエンジンにより生成し、固定長により記憶装置へ転送し、JPEGファイルを生成するJPEGデータ生成装置において、
前記画像情報を設定するパラメータをもとに算出した前記画像情報のサイズと前記固定長の転送サイズとから、前記画像情報の最終データを前記固定長による転送の最終データにするオフセットデータのサイズを算出するオフセットサイズ算出手段と、
前記オフセットサイズ算出手段により算出したサイズのオフセットデータを、前記ヘッダエンジンが生成する画像情報の先頭に付加するオフセットデータ設定手段と、
を備えたことを特徴とするJPEGデータ生成装置。 - 前記ヘッダエンジンは先入れ先出しメモリを備え、前記オフセットデータ設定手段は、前記先入れ先出しメモリへ前記画像情報を書き込む際のアドレスの初期値に前記オフセットサイズ算出手段が算出した前記オフセットデータのサイズを反映させ、前記サイズに応じたオフセットデータを前記画像情報の先頭に付加することを特徴とする請求項3記載のJPEGデータ生成装置。
- 前記ヘッダエンジンの起動中は、前記ヘッダエンジンの先入れ先出しメモリに前記オフセットデータのサイズが反映されて書き込まれた画像情報を出力し、前記ヘッダエンジンの停止中にはストリームエンジンにより生成した画像データを出力するセレクタを備えたことを特徴とする請求項4記載のJPEGデータ生成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003194841A JP2005033400A (ja) | 2003-07-10 | 2003-07-10 | Jpegデータ生成方法および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003194841A JP2005033400A (ja) | 2003-07-10 | 2003-07-10 | Jpegデータ生成方法および装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005033400A true JP2005033400A (ja) | 2005-02-03 |
Family
ID=34205868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003194841A Pending JP2005033400A (ja) | 2003-07-10 | 2003-07-10 | Jpegデータ生成方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005033400A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107193838A (zh) * | 2016-03-15 | 2017-09-22 | 四川效率源信息安全技术股份有限公司 | 一种自动化检验jpeg图片是否正常的方法 |
-
2003
- 2003-07-10 JP JP2003194841A patent/JP2005033400A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107193838A (zh) * | 2016-03-15 | 2017-09-22 | 四川效率源信息安全技术股份有限公司 | 一种自动化检验jpeg图片是否正常的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0158547B2 (ja) | ||
JP2007316229A (ja) | 画像キャッシュメモリを有する画像表示装置 | |
JPH10124268A (ja) | 印字制御装置 | |
JP2001103473A (ja) | 画像パケット構造、ページ画像データ構造並びにパケット生成装置及び方法 | |
JP2008193263A (ja) | 画像処理方法、画像処理装置、画像処理プログラム、および、記録媒体 | |
JP2005033400A (ja) | Jpegデータ生成方法および装置 | |
JP3854790B2 (ja) | 画像処理装置及び方法及び記憶媒体 | |
JP3604795B2 (ja) | 印字制御装置と印字制御方法 | |
JP4446389B2 (ja) | 圧縮伸長モジュールのインターフェース装置 | |
US8520964B2 (en) | Image processing apparatus | |
JP3138693B2 (ja) | データ圧縮回路 | |
JP2000232587A (ja) | 画像処理装置および画像処理方法 | |
JP4496935B2 (ja) | オーディオ・ビデオ出力デバイス及びオーディオ・ビデオ出力方法 | |
JP3148023B2 (ja) | 2次元dmaコントローラ | |
JP2005045458A (ja) | 画像圧縮方法、画像圧縮装置 | |
JP2005025601A (ja) | マイコンのロジック開発装置 | |
JP5218015B2 (ja) | データ伸長装置 | |
TW201030526A (en) | Bridge, data compressing mthod thereof and computer system applying the same | |
JP4561230B2 (ja) | データ転送制御装置及びデータ転送方法 | |
JP2010086321A (ja) | メモリ制御システム | |
JP2004236178A (ja) | 画像伸長装置、及び電子カメラ | |
JP2004253906A (ja) | 伸長装置 | |
JPH09214710A (ja) | 画像処理装置 | |
JP2007235851A (ja) | 画像処理装置、画像処理方法、プログラムおよび記録媒体 | |
JP2001195569A (ja) | 画像データ圧縮制御方式 |