(57)【特許請求の範囲】
【請求項１】
所定のデータ数のデータブロックごとにデータを符号化するデータ符号化装置であって、
順次入力される上記データブロックのデータを、入力された順序に対応する所定の出力順序で出力するデータ列並べ替え手段と、
上記データ列並べ替え手段の入力データから、基準データと一致しない入力データで、かつ上記出力順序が最も後の入力データをブロック終了データとして検出するブロック終了データ検出手段と、
上記データ列並べ替え手段の出力データが上記ブロック終了データであるか否かを判定するブロック終了判定手段と、
上記データ列並べ替え手段の出力データに応じた符号を順次生成し、当該出力データが上記ブロック終了判定手段において上記ブロック終了データであることが判定された場合、当該出力データに応じた符号の生成に続いて第１の符号を生成し、当該出力データを含むデータブロックの符号化を終了する符号化手段と、
を有し、
上記データ列並べ替え手段は、
データ書き込み要求を受けた場合、指定されたアドレスに上記入力データを記憶し、データ読み出し要求を受けた場合、指定されたアドレスに記憶されるデータを読み出して上記符号化手段に出力する記憶手段と、
上記データ書き込み要求を上記記憶手段に出力し、上記入力データの入力順序に応じた所定の書き込みアドレスを各入力データに対応して生成し、上記入力データを上記記憶手段の対応する書き込みアドレスに記憶させる書き込み手段と、
上記データ読み出し要求を上記記憶手段に出力し、順次増大または減少する所定の読み出しアドレスを生成し、上記記憶手段の当該生成した読み出しアドレスに記憶されるデータを順次読み出す読み出し手段と、
を含み、
上記ブロック終了データ検出手段は、上記基準データと一致しない上記入力データの上記書き込みアドレスのうち、上記読み出し手段において最も後に読み出される最大または最小のアドレスをブロック終了アドレスとして検出し、
上記ブロック終了判定手段は、上記読み出しアドレスと上記ブロック終了アドレスとが一致する場合、当該読み出しアドレスから読み出されるデータが上記ブロック終了データであることを判定する、
データ符号化装置。
【請求項２】
上記ブロック終了データ検出手段は、
上記データブロックの入力開始時点において初期アドレスを保持し、アドレス保持要求を受けて、上記書き込みアドレスを上記ブロック終了アドレスとして保持するアドレス保持手段と、
上記データ列並べ替え手段の入力データと上記基準データとの不一致を検出する基準データ検出手段と、
上記書き込み手段において生成された書き込みアドレスと、上記アドレス保持手段に保持されたアドレスとの大小関係を比較するアドレス比較手段と、
上記基準データ検出手段において上記入力データと上記基準データとの不一致が検出された場合、上記アドレス比較手段における比較結果に応じて、当該入力データに対応する書き込みアドレスの保持を上記アドレス保持手段に要求するアドレス保持要求手段とを含む、
請求項１に記載のデータ符号化装置。
【請求項３】
所定のデータ数のデータブロックごとにデータを符号化するデータ符号化方法であって、
順次入力される上記データブロックのデータから、基準データと一致しないデータで、かつ当該入力データの入力順序に対応する所定の出力順序が最も後のデータをブロック終了データとして検出する第１のステップと、
上記入力データを上記出力順序で出力し、上記出力データが上記ブロック終了データでない場合、当該出力データに応じた符号を順次生成し、上記出力データが上記ブロック終了データである場合、当該出力データに応じた符号の生成に続いて第１の符号を生成し、当該出力データを含むデータブロックの符号化を終了する第２のステップと、
を有し、
上記第１のステップは、
上記入力データの入力順序に応じた記憶手段の所定の書き込みアドレスを各入力データに対応して生成する第３のステップと、
上記基準データと一致しない上記入力データの上記書き込みアドレスのうち、上記出力順序において最も後に上記記憶手段から読み出される最大または最小のアドレスをブロック終了アドレスとして検出する第４のステップと、
上記入力データを、上記記憶手段の対応する書き込みアドレスに記憶させる第５のステップと
を含み、
上記第２のステップは、
順次増大または減少する上記記憶手段の所定の読み出しアドレスを生成する第６のステップと、
上記記憶手段の上記生成された読み出しアドレスに記憶されるデータを順次読み出す第７のステップと、
上記生成された読み出しアドレスと上記ブロック終了アドレスとが一致しない場合、当該読み出しアドレスから読み出されるデータに応じた符号を順次生成し、一致する場合、当該読み出しアドレスから読み出されるデータに応じた符号の生成に続いて上記第１の符号を生成し、当該読み出しデータを含むデータブロックの符号化を終了する第８のステップと
を含む、
データ符号化方法。
【請求項４】
上記第４のステップは、
上記データブロックの入力開始時点において初期アドレスを保持する第９のステップと、
上記入力データと上記基準データとの不一致を検出する第１０のステップと、
上記第３のステップで生成された書き込みアドレスと、保持中のアドレスとの大小関係を比較する第１１のステップと、
上記第１０のステップにおいて上記入力データと上記基準データとの不一致が検出された場合、上記第１１のステップにおける比較結果に応じて、当該入力データに対応する書き込みアドレスを保持中のアドレスに置き換えて保持する第１２のステップとを反復する、
請求項３に記載のデータ符号化方法。
【請求項５】
生成した画像データを、所定のデータ数のデータブロックごとに圧縮符号化するカメラシステムであって、
所望の画像を撮影し画像データを生成する撮影手段と、
上記生成された画像データを、上記データブロックごとに所定の直交変換に基づいて変換する変換手段と、
上記直交変換されたデータブロックごとの画像データを順次入力し、当該入力画像データを入力された順序に対応する所定の出力順序で出力するデータ列並べ替え手段と、
上記データ列並べ替え手段の入力画像データから、基準データと一致しない入力画像データで、かつ上記出力順序が最も後の入力画像データをブロック終了データとして検出するブロック終了データ検出手段と、
上記データ列並べ替え手段の出力画像データが上記ブロック終了データであるか否かを判定するブロック終了判定手段と、
上記データ列並べ替え手段の出力画像データに応じた符号を順次生成し、当該出力画像データが上記ブロック終了判定手段において上記ブロック終了データであることが判定された場合、当該出力画像データに応じた符号の生成に続いて第１の符号を生成し、当該出力画像データを含むデータブロックの符号化を終了する符号化手段と、
上記符号化手段において符号化された画像データに対して所定の処理を行う処理手段と、
を有し、
上記データ列並べ替え手段は、
データ書き込み要求を受けた場合、指定されたアドレスに上記入力画像データを記憶し、データ読み出し要求を受けた場合、指定されたアドレスに記憶される画像データを読み出して上記符号化手段に出力する記憶手段と、
上記データ書き込み要求を上記記憶手段に出力し、上記入力画像データの入力順序に応じた所定の書き込みアドレスを各入力画像データに対応して生成し、上記入力画像データを上記記憶手段の対応する書き込みアドレスに記憶させる書き込み手段と、
上記データ読み出し要求を上記記憶手段に出力し、順次増大または減少する所定の読み出しアドレスを生成し、上記記憶手段の当該生成した読み出しアドレスに記憶される画像データを順次読み出す読み出し手段と、
を含み、
上記ブロック終了データ検出手段は、上記基準データと一致しない上記入力画像データの上記書き込みアドレスのうち、上記読み出し手段において最も後に読み出される最大または最小のアドレスをブロック終了アドレスとして検出し、
上記ブロック終了判定手段は、上記読み出しアドレスと上記ブロック終了アドレスとが一致する場合、当該読み出しアドレスから読み出される画像データが上記ブロック終了データであることを判定する、
カメラシステム。
【請求項６】
上記ブロック終了データ検出手段は、
上記データブロックの入力開始時点において初期アドレスを保持し、アドレス保持要求を受けて、上記書き込みアドレスを上記ブロック終了アドレスとして保持するアドレス保持手段と、
上記データ列並べ替え手段の入力画像データと上記基準データとの不一致を検出する基準データ検出手段と、
上記書き込み手段において生成された書き込みアドレスと、上記アドレス保持手段に保持されたアドレスとの大小関係を比較するアドレス比較手段と、
上記基準データ検出手段において上記入力画像データと上記基準データとの不一致が検出された場合、上記アドレス比較手段における比較結果に応じて、当該入力画像データに対応する書き込みアドレスの保持を上記アドレス保持手段に要求するアドレス保持要求手段とを含む、
請求項５に記載のカメラシステム。
【請求項７】
上記処理手段は、上記符号化された画像データに対して、記録、再生表示、伝送の少なくとも何れかの処理を行う、
請求項５に記載のカメラシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、所定のデータ数のデータブロックごとにデータを符号化するデータ符号化装置とその方法、および生成した画像データを所定のデータ数のデータブロックごとに圧縮符号化するカメラシステムに関し、例えば、８×８画素のブロックごとに画像データをＪＰＥＧ符号化するデータ符号化装置とその方法、およびカメラシステムに関するものである。
【０００２】
【従来の技術】
自然画像は隣接する画素値が相関性を有している場合が多く、ある微小な領域内で見た場合における画素値の空間的な変動（空間周波数）が小さくなり、直交変換によって画像データを空間周波数領域のデータに変換した場合、低周波側にデータが偏る傾向がある。このため、空間周波数領域のデータを符号化する場合、高周波側のデータに割り当てる符号長を低周波側のデータに比べて短くすることにより、データ全体の平均符号長を短くすることができ、情報量を圧縮することができる。
【０００３】
例えば、静止画データを圧縮符号化する国際標準化方式であるＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐによるカラー静止画像符号化方式）のＤＣＴ利用型符号化方式においては、入力の画像データが８×８画素ごとのブロックに分割され、この各ブロックに対して直交変換の１つであるＤＣＴ（Ｄｅｓｃｒｅｔｅ  ＣｏｓｉｎｅＴｒａｎｓｆｏｒｍ  ：離散コサイン変換）が実行される。これにより、１ブロックの６４個の画像データは６４個のＤＣＴ係数に変換される。このＤＣＴ係数は、各係数ごとに定められた量子化ステップで量子化された後、１個のＤＣ成分とそれ以外の６３個のＡＣ成分とがそれぞれ異なる方法でハフマン符号に符号化される。
【０００４】
ＤＣＴ係数がＤＣ成分の場合は、連続したブロック間の差分のデータがハフマン符号化される。これは、自然画像において隣接するブロック間のＤＣ成分が相関性を有している場合が多く、差分値の分散が小さくなるためである。
【０００５】
またＤＣＴ係数がＡＣ成分の場合は、空間周波数の大きさに応じた順序に並び替えられたＤＣＴ係数のデータ列が、非ゼロの係数の値とその前に連続するゼロ係数の個数との組み合わせに応じてハフマン符号に符号化される。これは、量子化後のＤＣＴ変換係数が高周波側でゼロになり易い性質を利用して圧縮効率を高めるためである。
【０００６】
ただし、ＡＣ成分の符号化処理には２つの特別な場合があり、その１つは上述のデータ列においてゼロ係数のＡＣ成分が１６個以上連続する場合である。この場合には、１６個の連続するゼロ係数に対してＺＲＬ（Ｚｅｒｏ  Ｒｕｎ  Ｌｅｎｇｔｈ  ）と呼ばれる１つの符号が生成される。またもう１つはデータ列の最後のＡＣ成分がゼロ係数の場合であり、この場合にはデータ列の最後まで連続したゼロ係数に対して、その個数に係わらずＥＯＢ（Ｅｎｄ  Ｏｆ  Ｂｌｏｃｋ）と呼ばれる符号が１つだけ生成される。
いずれの場合にも、複数のゼロ係数に対して一括して１つの符号が与えられるので、これにより圧縮効率が高められる。
【０００７】
【発明が解決しようとする課題】
ここで、従来のＪＰＥＧ符号化装置について図面を参照しながら具体的に説明する。
図１０は、従来のＪＰＥＧ符号化装置を説明するための概略的な構成図である。図１０に示すＪＰＥＧ符号化装置は、ＤＣＴ・量子化部１、ＤＣＴバッファ制御部２、ＤＣＴバッファ３、およびハフマン符号化部４を有する。
【０００８】
ＤＣＴ・量子化部１は、８×８画素ブロックごとに入力される画像データＤ＿ＩＮをＤＣＴによって変換し、この結果として得られる６４個のＤＣＴ係数を各係数ごとに定められた量子化ステップによって量子化する。そして、イネーブル信号ＤＣＴ＿ＥＮをアクティブ状態に変化させて８×８画素ブロックの先頭データの出力を通知した後に、６４個の量子化ＤＣＴ係数ＤＣＴ＿Ｋを順次ＤＣＴバッファ制御部２に出力する。
【０００９】
ＤＣＴバッファ制御部２は、ＤＣＴ・量子化部１のイネーブル信号ＤＣＴ＿ＥＮがアクティブ状態に変化した場合、イネーブル信号Ｗ＿ＥＮによってＤＣＴバッファ３を書き込み可能状態に設定し、ＤＣＴ・量子化部１のＤＣＴ係数ＤＣＴ＿Ｋに対応したジグザグスキャン順の書き込みアドレスＷ＿ＡＤＤを順次生成して、この生成したアドレスにＤＣＴ係数ＤＣＴ＿Ｋを順次書き込む。
また、ハフマン符号化部４のイネーブル信号ＨＡＦＦ＿ＥＮがアクティブ状態に変化した場合、イネーブル信号Ｒ＿ＥＮによってＤＣＴバッファ３を読み出し可能状態に設定し、読み出しアドレスＲ＿ＡＤＤを順次生成してＤＣＴバッファ３からＤＣＴ係数Ｒ＿ＤＡＴＡを読み出し、これをハフマン符号化部４に順次出力する。
【００１０】
このＤＣＴバッファ制御部２について、図１１を参照しながら更に詳しく説明する。
図１１は、このＤＣＴバッファ制御部２を説明するための概略的な構成図である。図１１に示すＤＣＴバッファ制御部２は、ラッチ回路２１、ジグザグアドレス生成部２２、およびリードアドレス生成部２３を有する。
【００１１】
ラッチ回路２１は、図示しないクロック信号に同期してＤＣＴ・量子化部１からのＤＣＴ係数ＤＣＴ＿Ｋを保持し、これを書き込みデータＷ＿ＤＡＴＡとしてＤＣＴバッファ２に出力する回路であり、これによりデータＷ＿ＤＡＴＡと書き込みアドレスＷ＿ＡＤＤとが同期してＤＣＴバッファ２に供給される。
【００１２】
ジグザグアドレス生成部２２は、ＤＣＴ・量子化部１のイネーブル信号ＤＣＴ＿ＥＮの状態を監視しており、このアクティブ状態の検出に同期して書き込みイネーブル信号Ｗ＿ＥＮをアクティブ状態に変化させ、ＤＣＴバッファ３を書き込み可能状態に設定する。更に、ＤＣＴ・量子化部１から順次入力されるＤＣＴ係数ＤＣＴ＿Ｋに対応したジグザグスキャン順の書き込みアドレスＷ＿ＡＤＤを順次生成し、この生成したアドレスに対してＤＣＴ係数Ｗ＿ＤＡＴＡを順次書き込む。６４個のＤＣＴ係数がＤＣＴバッファ３に書き込まれた後は、イネーブル信号Ｗ＿ＥＮを非アクティブ状態に戻し、再びイネーブル信号ＤＣＴ＿ＥＮの監視状態に戻る。
【００１３】
リードアドレス生成部２３は、ハフマン符号化部４のイネーブル信号ＨＡＦＦ＿ＥＮの状態を監視しており、このアクティブ状態の検出に同期して読み出しイネーブル信号Ｒ＿ＥＮをアクティブ状態に変化させ、ＤＣＴバッファ３を読み出し可能状態に設定する。更に、読み出しアドレスＲ＿ＡＤＤを順次生成してＤＣＴバッファ３からＤＣＴ係数を読み出し、この読み出したＤＣＴ係数Ｒ＿ＤＡＴＡをハフマン符号化部４に順次出力する。
【００１４】
図１２は、ＤＣＴ・量子化部１において生成されるＤＣＴ係数の生成順序と、ジグザグスキャンの順番に従ってＤＣＴバッファ２に書き込まれたＤＣＴ係数の読み出し順序の例を示す図である。
図１２ａにおいて、８×８の２次元で表現されたデータブロックの各ＤＣＴ係数に対応する数字はそれぞれ各ＤＣＴ係数が生成される順番を示しており、これらのＤＣＴ係数の空間周波数は、左から右、上段から下段へ行くほど高くなる。また、この図において点線で示した矢印はジグザグスキャンの順番を示しており、この順番に応じてＤＣＴバッファ２からデータが読み出されるように、ジグザグスキャンアドレス生成部２２において書き込みアドレスＷ＿ＡＤＤが生成される。
この図から分かるように、ジグザグスキャンの順番は、水平ライン方向および垂直ライン方向の空間周波数がこの順番に応じて均等に高くなるように設定されている。
【００１５】
また図１２ｂにおいて各ＤＣＴ係数の数字は、図１２ａにおける数字と対応しており、点線で示した矢印は、ＤＣＴバッファ２に書き込まれたＤＣＴ係数が読み出される順序を示している。ＤＣＴ係数は、図に示す２次元で表現されたデータブロックの左から右、上段から下段の順番でＤＣＴバッファ２から順次読み出される。また、このデータブロックはＤＣＴバッファ２のアドレス空間を示しており、例えば左から右、上段から下段へ行くほどにアドレス値が大きくなる。したがって、リードアドレス生成部２３においてはジグザグスキャンアドレス生成部２２のように複雑なアドレスを生成する必要はなく、例えば１番目から６４番目のＤＣＴ係数まで所定のステップで単純に増加するアドレスが生成される。
以上が図１０のＤＣＴバッファ制御部２の説明である。
【００１６】
図１０のＤＣＴバッファ３は、ＤＣＴバッファ制御部２からのイネーブル信号Ｗ＿ＥＮによって書き込み可能状態に設定された場合、ＤＣＴ・量子化部１において順次生成されるＤＣＴ係数Ｗ＿ＤＡＴＡを、書き込みアドレスＷ＿ＡＤＤで指定される記憶領域に記憶する。
またＤＣＴバッファ制御部２からのイネーブル信号Ｒ＿ＥＮによって読み出し可能状態に設定された場合、読み出しアドレスＲ＿ＡＤＤで指定される記憶領域からＤＣＴ係数Ｒ＿ＤＡＴＡを読み出して、これをハフマン符号化部４に出力する。
【００１７】
ハフマン符号化部４は、符号化を行う場合イネーブル信号ＨＡＦＦ＿ＥＮをアクティブ状態に設定し、ＤＣＴバッファ制御部２よってＤＣＴバッファ３から順次読み出されるＤＣＴ係数をハフマン符号化し、ハフマン符号Ｈ＿ＣＯＤＥを出力する。また、ＥＯＢ検出部５からブロックの符号化終了を指示する信号Ｓ＿ＥＯＢが入力された場合には符号ＥＯＢを出力する。
【００１８】
このハフマン符号化部４について、図１３を参照しながら更に詳しく説明する。
図１３は、このハフマン符号化部４を説明するための概略的な構成図である。図１３に示すハフマン符号化部４は、ゼロデータ・カウンタ４１、ハフマン符号テーブルアドレス生成部４２、ハフマン符号テーブル４３、ＺＲＬ判定部４４、およびデータコントロール部４５を有する。
【００１９】
ゼロデータ・カウンタ４１は、ＤＣＴバッファ３から読み出されたＤＣＴ係数Ｒ＿ＤＡＴＡのデータ列において、ＡＣ成分のゼロ係数が連続する個数を計数するカウンタである。１ブロックの符号化が開始される時点においてこの計数値をゼロに初期化し、ＤＣＴ係数Ｒ＿ＤＡＴＡにＡＣ成分のゼロ係数が入力されるたびに計数値を１ずつインクリメントする。そして、ＤＣＴ係数Ｒ＿ＤＡＴＡに非ゼロの係数が入力された場合にこの非ゼロの係数ＤＡＴＡと計数値Ｚ＿ＣＴとをハフマン符号テーブルアドレス生成部４２およびＺＲＬ判定部４４に出力し、その後計数値をゼロに初期化する。また、符号ＺＲＬの生成を通知する信号Ｓ＿ＺＲＬが入力された場合は、このゼロ係数の計数値から値”１６”を減算する。
【００２０】
ハフマン符号テーブルアドレス生成部４２は、ゼロデータ・カウンタ４１から出力される非ゼロ係数ＤＡＴＡと計数値Ｚ＿ＣＴとの組み合わせに応じたハフマン符号テーブル４３のアドレスＴＢＬ＿ＡＤＤを生成し、これをハフマン符号テーブル４３に出力する。
また、符号ＺＲＬの生成を指示する信号Ｓ＿ＺＲＬが入力された場合は符号ＺＲＬに対応するアドレスＴＢＬ＿ＡＤＤを、ブロックの符号化終了を指示する信号Ｓ＿ＥＯＢが入力された場合には符号ＥＯＢに対応するハフマン符号テーブル４３のアドレスＴＢＬ＿ＡＤＤをそれぞれ生成する。
【００２１】
ハフマン符号テーブル４３は、テーブルアドレスＴＢＬ＿ＡＤＤに対応するハフマン符号を所定のデータテーブルから抽出して出力する。
【００２２】
ＺＲＬ判定部４４は、ゼロ係数の計数値が値”１６”以上で、かつ非ゼロの係数が入力された場合に符号ＺＲＬの生成を指示する信号Ｓ＿ＺＲＬを生成し、これをゼロデータ・カウンタ４１、ハフマン符号テーブルアドレス生成部４２およびデータコントロール部４５に出力する。
【００２３】
データコントロール部４５は、起動信号ＳＴＡを受けてイネーブル信号ＨＡＦＦ＿ＥＮをアクティブ状態に設定し、ＤＣＴバッファ３からのＤＣＴ係数の読み込みを開始させる。
また、ＺＲＬ判定部４４から符号ＺＲＬの生成を指示する信号Ｓ＿ＺＲＬが入力された場合にはイネーブル信号ＨＡＦＦ＿ＥＮを一時的に非アクティブ状態に設定してＤＣＴバッファ３からのＤＣＴ係数の読み込みを停止させ、符号ＺＲＬの生成後に再びイネーブル信号ＨＡＦＦ＿ＥＮをアクティブ状態にもどして符号化を再開させる。
１ブロック分のＤＣＴ係数の読み込みが終了した場合、またはブロックの符号化終了を指示する信号Ｓ＿ＥＯＢが入力された場合にはイネーブル信号ＨＡＦＦ＿ＥＮを非アクティブ状態に戻し、ハフマン符号化を終了させる。
以上が図１０のハフマン符号化部４の説明である。
【００２４】
図１０のＥＯＢ判定部５は、ＤＣＴバッファ３から読み出されるＤＣＴ係数Ｒ＿ＤＡＴＡとそのアドレスＲ＿ＡＤＤに基づいて、１ブロックの最後に読み出されるＤＣＴ係数の値がゼロであるか否かを検出する。この値がゼロの場合にはブロックの符号化終了を指示する信号Ｓ＿ＥＯＢを生成して、これをハフマン符号化部４に出力する。
【００２５】
次に、上述した構成を有する図１０のＪＰＥＧ符号化装置の動作について説明する。
【００２６】
図１４は、図１０に示すＪＰＥＧ符号化装置におけるＤＣＴ係数のジグザグスキャン順への並べ替え動作を説明するためのタイミング図である。このうち、図１４ａ〜図１４ｆはＤＣＴ係数がＤＣＴバッファ３に書き込まれる動作を示すタイミング図を示し、残りの図１４ｇ〜図１４ｋはＤＣＴバッファ３からＤＣＴ係数が読み出される動作を示すタイミング図を示す。
【００２７】
クロック信号（図１４ａ）に同期して、ＤＣＴ・量子化部１のイネーブル信号ＤＣＴ＿ＥＮ（図１４ｂ）がアクティブ状態に設定されると、このアクティブ状態を検出したのジグザグアドレス生成部２２において書き込みイネーブル信号Ｗ＿ＥＮ（図１４ｄ）がアクティブ状態に設定されるとともに、ジグザグシーケンスの順番に従って書き込みアドレスＷ＿ＡＤＤ（図１４ｅ）が生成される。また、ＤＣＴ・量子化部１のＤＣＴ係数ＤＣＴ＿Ｋ（図１４ｃ）がラッチ回路２１においてラッチされたＤＣＴ係数Ｗ＿ＤＡＴＡ（図１４ｆ）と、ジグザグアドレス生成部２２において生成された書き込みアドレスＷ＿ＡＤＤの出力とがクロック信号に同期してＤＣＴバッファ３に出力される。書き込みイネーブル信号Ｗ＿ＥＮは、６４個のＤＣＴ係数がＤＣＴバッファ３に書き込まれた後に再び非アクティブ状態へ戻される。
【００２８】
クロック信号（図１４ｇ）に同期して、ハフマン符号化部４のイネーブル信号ＨＡＦＦ＿ＥＮ（図１４ｈ）がアクティブ状態に設定されると、このアクティブ状態を検出したリードアドレス生成部２３においてイネーブル信号Ｒ＿ＥＮ（図１４ｉ）がアクティブ状態に設定されるとともに、読み出しアドレスＲ＿ＡＤＤ（図１４ｊ）が順次生成される。これにより、ＤＣＴバッファ３に記憶されていたＤＣＴ係数Ｒ＿ＤＡＴＡ（図１４ｋ）が順次読み出されてハフマン符号化部４に入力される。読み出しイネーブル信号Ｒ＿ＥＮは、６４個のＤＣＴ係数がＤＣＴバッファ３から読み出された後に再び非アクティブ状態へ戻される。
【００２９】
図１５は、ＤＣＴバッファ３から読み出されてハフマン符号化部４に入力される８×８画素ブロックのＤＣＴ係数の例を示す図であり、図１６は、この図１５に示すＤＣＴ係数が入力された場合におけるハフマン符号化部４の動作を説明するためのタイミング図である。このタイミング図における時刻Ｔ１〜時刻Ｔ８の動作について説明する。
【００３０】
時刻Ｔ１：
クロック信号（図１６ａ）に同期して読み出しイネーブル信号Ｒ＿ＥＮ（図１６ｂ）がアクティブ状態に変化し、ハフマン符号化部４にＤＣＴ係数Ｒ＿ＤＡＴＡ（図１６ｃ）が入力される。ブロックの最初に入力されるこのＤＣＴ係数Ｒ＿ＤＡＴＡはＤＣ成分であり、以降に入力されるＡＣ成分とは処理が異なる。ＤＣ成分に対しては、前回入力された８×８画素ブロックのＤＣ成分との差分値に基づいてＤＣ成分用のハフマン符号テーブルのアドレスＴＢＬ＿ＡＤＤが生成され、これに応じたハフマン符号Ｈ＿ＣＯＤＥがハフマン符号テーブル４３から出力される。
【００３１】
時刻Ｔ２：
ＤＣＴ係数Ｒ＿ＤＡＴＡとして非ゼロのデータ（値”２”）が入力される。この値”２”と、値”２”の前に連続して入力されたゼロ係数の計数値Ｚ＿ＣＴ（図１６ｄ）の値”１”との組み合わせに応じたアドレスＴＢＬ＿ＡＤＤ（図１６ｇ）がハフマン符号テーブルアドレス生成部４２において生成され、これに応じたハフマン符号Ｈ＿ＣＯＤＥがハフマン符号テーブル４３から出力される。
【００３２】
時刻Ｔ３：
ＤＣＴ係数Ｒ＿ＤＡＴＡとして非ゼロのデータ（値”１”）が入力される。この値”１”と、この値”１”の前に連続して入力されたゼロ係数の計数値Ｚ＿ＣＴの値”０”との組み合わせに応じたアドレスＴＢＬ＿ＡＤＤが生成され、これに応じたハフマン符号Ｈ＿ＣＯＤＥが出力される。
【００３３】
時刻Ｔ４：
連続して入力されたゼロ係数の計数値Ｚ＿ＣＴが値”１６”に達するが、この段階では符号ＺＲＬと符号ＥＯＢの何れの符号を生成すべきか判断できないので、符号化は行われない。すなわち、このまま最後のＤＣＴ係数までゼロとなって１つの符号ＥＯＢが生成される場合と、最後のＤＣＴ係数の手前にある非ゼロのＤＣＴ係数によって１つ以上の符号ＺＲＬが生成される場合の２通りがあり、時刻Ｔ４においてはこの何れの場合になるかを判断できないため、アドレスＴＢＬ＿ＡＤＤが生成されない。
【００３４】
時刻Ｔ５：
ＤＣＴ係数Ｒ＿ＤＡＴＡとして非ゼロのデータ（値”１”）が入力される。またこの時、連続して入力されたゼロ係数の計数値Ｚ＿ＣＴが１６以上の値”３９”であるため、ＺＲＬ判定部４４において符号ＺＲＬの生成を指示する信号Ｓ＿ＺＲＬ（図１６ｅ）が生成される。これにより、符号ＺＲＬに対応するアドレスＴＢＬ＿ＡＤＤがハフマン符号テーブル４３に入力されて符号ＺＲＬが出力されるとともに、ゼロ係数の計数値Ｚ＿ＣＴから値”１６”が減算される。さらに、イネーブル信号ＨＡＦＦ＿ＥＮが非アクティブ状態に設定されて、ＤＣＴバッファ３からのＤＣＴ係数の読み込みが一時的に停止状態にされる。
【００３５】
時刻Ｔ６：
ＤＣＴ係数の読み込みが停止状態であるためＤＣＴ係数Ｒ＿ＤＡＴＡは時刻Ｔ５と同じ非ゼロのデータ（値”１”）のままであり、また、ゼロ係数の計数値Ｚ＿ＣＴは値”２３”であるため、符号ＺＲＬの生成を指示する信号Ｓ＿ＺＲＬが続けて生成される。これにより、符号ＺＲＬに対応するアドレスＴＢＬ＿ＡＤＤがハフマン符号テーブル４３に入力されて符号ＺＲＬが出力されるとともに、ゼロ係数の計数値Ｚ＿ＣＴから値”１６”が更に減算される。また、イネーブル信号ＨＡＦＦ＿ＥＮは非アクティブ状態のままであるため、ＤＣＴバッファ３からのＤＣＴ係数の読み込みが続けて停止状態にされる。
【００３６】
時刻Ｔ７：
ＤＣＴ係数の読み込みが停止状態であるためＤＣＴ係数Ｒ＿ＤＡＴＡは時刻Ｔ６と同じ非ゼロのデータ（値”１”）であるが、ゼロ係数の計数値Ｚ＿ＣＴは値”７”となり値”１６”より小さくなるので、符号ＺＲＬは生成されない。この代わりに、ＤＣＴ係数Ｒ＿ＤＡＴＡの値”１”とゼロ係数の計数値Ｚ＿ＣＴの値”７”との組み合わせに応じたアドレスＴＢＬ＿ＡＤＤが生成され、これに応じたハフマン符号Ｈ＿ＣＯＤＥが生成される。
【００３７】
時刻Ｔ８：
最後のＤＣＴ係数の値がゼロになるため、ブロックの符号化終了を指示する信号Ｓ＿ＥＯＢがＥＯＢ判定部５から出力される。これを受けたハフマン符号テーブルアドレス生成部４２において符号ＥＯＢに対応するアドレスＴＢＬ＿ＡＤＤが生成され、ハフマン符号テーブル部４３に入力される。また、データコントロール部４５においてイネーブル信号ＨＡＦＦ＿ＥＮが非アクティブ状態に戻され、これに応じてリードアドレス生成部２３においてイネーブル信号Ｒ＿ＥＮが非アクティブ状態に戻されるため、ＤＣＴバッファ３からのデータの読み出しは終了される。
【００３８】
このように従来のＪＰＥＧ符号化装置においては、たとえＡＣ成分がすべてゼロであったとしても、ジグザグスキャンの最終データの値がゼロであることが確認されるまでは符号ＺＲＬの可能性も残るため、符号ＥＯＢを生成できない。すなわち、結果として符号ＥＯＢしか生成されない場合であっても１ブロック分の６４個のＤＣＴ係数が全て確認される必要があるため、符号化に係る処理時間を短縮できない問題がある。
【００３９】
また、ＤＣＴ係数が１６個以上連続してゼロになる場合、符号ＺＲＬまたは符号ＥＯＢの何れかの符号が生成されることになるが、非ゼロのＤＣＴ係数が入力されるか、あるいは最後までゼロが連続するまでは何れの符号を生成すべきか判断できないため符号ＺＲＬは生成されない。このため、非ゼロのＤＣＴ係数が入力された場合には、一旦ＤＣＴバッファ３からのＤＣＴ係数の入力を停止させて符号ＺＲＬを生成させる必要がある。すなわち、符号ＺＲＬが生成されるたびにＤＣＴ係数の読み出しに遅延時間が発生してしまう問題がある。
【００４０】
本発明はかかる事情に鑑みてなされたものであり、その目的は、従来に比べて符号化処理を高速化できるデータ符号化装置とその方法を提供することにある。また、本発明の他の目的は、生成した画像データを従来に比べて高速に圧縮符号化できるカメラシステムを提供することにある。
【００４１】
【課題を解決するための手段】
上記の目的を達成するため、本発明のデータ符号化装置は、所定のデータ数のデータブロックごとにデータを符号化するデータ符号化装置であって、順次入力される上記データブロックのデータを、入力された順序に対応する所定の出力順序で出力するデータ列並べ替え手段と、上記データ列並べ替え手段の入力データから、基準データと一致しない入力データで、かつ上記出力順序が最も後の入力データをブロック終了データとして検出するブロック終了データ検出手段と、上記データ列並べ替え手段の出力データが上記ブロック終了データであるか否かを判定するブロック終了判定手段と、上記データ列並べ替え手段の出力データに応じた符号を順次生成し、当該出力データが上記ブロック終了判定手段において上記ブロック終了データであることが判定された場合、当該出力データに応じた符号の生成に続いて第１の符号を生成し、当該出力データを含むデータブロックの符号化を終了する符号化手段とを有する。上記データ列並べ替え手段は、データ書き込み要求を受けた場合、指定されたアドレスに上記入力データを記憶し、データ読み出し要求を受けた場合、指定されたアドレスに記憶されるデータを読み出して上記符号化手段に出力する記憶手段と、上記データ書き込み要求を上記記憶手段に出力し、上記入力データの入力順序に応じた所定の書き込みアドレスを各入力データに対応して生成し、上記入力データを上記記憶手段の対応する書き込みアドレスに記憶させる書き込み手段と、上記データ読み出し要求を上記記憶手段に出力し、順次増大または減少する所定の読み出しアドレスを生成し、上記記憶手段の当該生成した読み出しアドレスに記憶されるデータを順次読み出す読み出し手段とを含む。上記ブロック終了データ検出手段は、上記基準データと一致しない上記入力データの上記書き込みアドレスのうち、上記読み出し手段において最も後に読み出される最大または最小のアドレスをブロック終了アドレスとして検出する。上記ブロック終了判定手段は、上記読み出しアドレスと上記ブロック終了アドレスとが一致する場合、当該読み出しアドレスから読み出されるデータが上記ブロック終了データであることを判定する。
【００４２】
本発明のデータ符号化装置によれば、データ並べ替え手段において、順次入力される上記データブロックのデータが、入力された順序に対応する所定の出力順序で出力される。上記ブロック終了データ検出手段においては、上記データ列並べ替え手段の入力データから、基準データと一致しない入力データで、かつ上記出力順序が最も後の入力データが上記ブロック終了データとして検出される。上記ブロック終了判定手段においては、上記データ列並べ替え手段の出力データが上記ブロック終了データであるか否かが判定される。上記符号化手段においては、上記データ列並べ替え手段の出力データに応じた符号が順次生成され、当該出力データが上記ブロック終了判定手段において上記ブロック終了データであることが判定された場合、当該出力データに応じた符号の生成に続いて第１の符号が生成され、当該出力データを含むデータブロックの符号化が終了される。
上記データ列並べ替え手段の書き込み手段においては、上記データ書き込み要求が上記記憶手段に出力され、上記入力データの入力順序に応じた所定の書き込みアドレスが各入力データに対応して生成され、上記入力データが上記記憶手段の対応する書き込みアドレスに記憶される。上記データ列並べ替え手段の上記読み出し手段においては、上記データ読み出し要求が上記記憶手段に出力され、順次増大または減少する所定の読み出しアドレスが順次生成され、上記記憶手段の当該生成された読み出しアドレスに記憶されるデータが順次読み出される。上記ブロック終了データ検出手段においては、上記ゼロデータと一致しない上記入力データの上記書き込みアドレスのうち、上記読み出し手段において最も後に読み出される最大または最小のアドレスが上記ブロック終了アドレスとして検出される。上記ブロック終了判定手段においては、上記読み出しアドレスと上記ブロック終了アドレスとが一致する場合、当該読み出しアドレスにおいて読み出されるデータが上記ブロック終了データであることが判定される。
【００４３】
なお、上記符号化手段は、上記データ列並べ替え手段から連続して出力される上記ゼロデータの数を計数し、連続したゼロデータの上記計数値と当該連続したゼロデータに続いて出力されるゼロデータでないデータの値とに応じた符号を生成し、上記計数値が所定の値に達した場合、第２の符号を生成し、当該計数値から上記所定の値を減算しても良い。
【００４７】
本発明のデータ符号化方法は、所定のデータ数のデータブロックごとにデータを符号化するデータ符号化方法であって、順次入力される上記データブロックのデータから、基準データと一致しないデータで、かつ当該入力データの入力順序に対応する所定の出力順序が最も後のデータをブロック終了データとして検出する第１のステップと、上記入力データを上記出力順序で出力し、上記出力データが上記ブロック終了データでない場合、当該出力データに応じた符号を順次生成し、上記出力データが上記ブロック終了データである場合、当該出力データに応じた符号の生成に続いて第１の符号を生成し、当該出力データを含むデータブロックの符号化を終了する第２のステップとを有する。上記第１のステップは、上記入力データの入力順序に応じた記憶手段の所定の書き込みアドレスを各入力データに対応して生成する第３のステップと、上記基準データと一致しない上記入力データの上記書き込みアドレスのうち、上記出力順序において上記記憶手段から最も後に読み出される最大または最小のアドレスをブロック終了アドレスとして検出する第４のステップと、上記入力データを、上記記憶手段の対応する書き込みアドレスに記憶させる第５のステップとを含む。上記第２のステップは、順次増大または減少する上記記憶手段の所定の読み出しアドレスを生成する第６のステップと、上記記憶手段の上記生成された読み出しアドレスに記憶されるデータを順次読み出す第７のステップと、上記生成された読み出しアドレスと上記ブロック終了アドレスとが一致しない場合、当該読み出しアドレスから読み出されるデータに応じた符号を順次生成し、一致する場合、当該読み出しアドレスから読み出されるデータに応じた符号の生成に続いて上記第１の符号を生成し、当該読み出しデータを含むデータブロックの符号化を終了する第８のステップとを含む。
【００４８】
本発明のデータ符号化方法によれば、上記第１のステップにおいて、順次入力される上記データブロックのデータから、基準データと一致しないデータで、かつ当該入力データの入力順序に対応する所定の出力順序が最も後のデータがブロック終了データとして検出される。上記第２のステップにおいては、上記入力データが上記出力順序で出力され、上記出力データが上記ブロック終了データでない場合、当該出力データに応じた符号が順次生成され、上記出力データが上記ブロック終了データである場合、当該出力データに応じた符号の生成に続いて第１の符号が生成され、当該出力データを含むデータブロックの符号化が終了される。
上記第１のステップでは、上記入力データの入力順序に応じた上記記憶手段の所定の書き込みアドレスが各入力データに対応して生成される。そして、上記ゼロデータと一致しない上記入力データの上記書き込みアドレスのうち、上記出力順序において最も後に上記記憶手段から読み出される最大または最小のアドレスがブロック終了アドレスとして検出される。上記入力データは、上記記憶手段の対応する書き込みアドレスに記憶される。
上記第２のステップでは、順次増大または減少する上記記憶手段の所定の読み出しアドレスが順次生成される。そして、上記記憶手段の当該生成された読み出しアドレスに記憶されるデータが順次読み出される。上記読み出しアドレスと上記ブロック終了アドレスとが一致しない場合、当該読み出しアドレスから読み出されるデータに応じた符号が順次生成される。両者が一致する場合は、当該読み出しアドレスから読み出されるデータに応じた符号の生成に続いて第１の符号が生成され、当該読み出しデータを含むデータブロックの符号化が終了される。
【００４９】
なお、上記第２のステップにおいては、連続して出力される上記ゼロデータの数を計数し、連続したゼロデータの上記計数値と当該連続したゼロデータに続いて出力されるゼロデータでないデータの値とに応じた符号を生成し、上記計数値が所定の値に達した場合、第２の符号を生成し、当該計数値から上記所定の値を減算しても良い。
【００５３】
本発明のカメラシステムは、生成した画像データを、所定のデータ数のデータブロックごとに圧縮符号化するカメラシステムであって、所望の画像を撮影し画像データを生成する撮影手段と、上記生成された画像データを、上記データブロックごとに所定の直交変換に基づいて変換する変換手段と、上記直交変換されたデータブロックごとの画像データを順次入力し、当該入力画像データを入力された順序に対応する所定の出力順序で出力するデータ列並べ替え手段と、上記データ列並べ替え手段の入力画像データから、基準データと一致しない入力画像データで、かつ上記出力順序が最も後の入力画像データをブロック終了データとして検出するブロック終了データ検出手段と、上記データ列並べ替え手段の出力画像データが上記ブロック終了データであるか否かを判定するブロック終了判定手段と、上記データ列並べ替え手段の出力画像データに応じた符号を順次生成し、当該出力画像データが上記ブロック終了判定手段において上記ブロック終了データであることが判定された場合、当該出力画像データに応じた符号の生成に続いて第１の符号を生成し、当該出力画像データを含むデータブロックの符号化を終了する符号化手段と、上記符号化手段において符号化された画像データに対して所定の処理を行う処理手段とを有する。上記データ列並べ替え手段は、データ書き込み要求を受けた場合、指定されたアドレスに上記入力画像データを記憶し、データ読み出し要求を受けた場合、指定されたアドレスに記憶される画像データを読み出して上記符号化手段に出力する記憶手段と、上記データ書き込み要求を上記記憶手段に出力し、上記入力画像データの入力順序に応じた所定の書き込みアドレスを各入力画像データに対応して生成し、上記入力画像データを上記記憶手段の対応する書き込みアドレスに記憶させる書き込み手段と、上記データ読み出し要求を上記記憶手段に出力し、順次増大または減少する所定の読み出しアドレスを生成し、上記記憶手段の当該生成した読み出しアドレスに記憶される画像データを順次読み出す読み出し手段とを含む。上記ブロック終了データ検出手段は、上記基準データと一致しない上記入力画像データの上記書き込みアドレスのうち、上記読み出し手段において最も後に読み出される最大または最小のアドレスをブロック終了アドレスとして検出する。上記ブロック終了判定手段は、上記読み出しアドレスと上記ブロック終了アドレスとが一致する場合、当該読み出しアドレスから読み出される画像データが上記ブロック終了データであることを判定する。
好適には、上記処理手段は、上記符号化された画像データに対して、記録、再生表示、伝送の少なくとも何れかの処理を行う。
【００５４】
【発明の実施の形態】
＜第１の実施の形態＞
本発明に係る第１の実施の形態について、図１〜図８を参照して説明する。
図１は、本発明に係る第１の実施の形態のデータ符号化装置を説明するための概略的な構成図である。図１に示すデータ符号化装置は、変換部１０、書き込みアドレス生成部２０、記憶部３０、読み出しアドレス生成部４０、符号化部５０、ＥＯＢ検出部６０、およびＥＯＢ判定部７０を有する。
なお、書き込みアドレス生成部２０、記憶部３０および読み出しアドレス生成部４０を含むブロックは、本発明のデータ列並べ替え手段の一実施形態である。
符号化部５０は、本発明の符号化手段の一実施形態である。
ＥＯＢ検出部６０は、本発明のブロック終了データ検出手段の一実施形態である。
ＥＯＢ判定部７０は、本発明のブロック終了判定手段の一実施形態である。
【００５５】
まず、図１の各構成について説明する。
〔変換部１０〕
変換部１０は、所定のブロック単位で順次入力される入力データＤ＿ＩＮに所定の直交変換を行なって変換データＴ＿Ｋを生成し、イネーブル信号ＤＣＴ＿ＥＮをアクティブ状態に設定してブロックの先頭データの出力を通知した後に、この生成した変換データＴ＿Ｋを書き込みアドレス生成部２０に順次出力する。
この変換部１０は、例えば従来のＪＰＥＧ符号化装置におけるＤＣＴ・量子化部に相当するブロックであり、この場合、８×８画素ブロックごとに入力される画像データＤ＿ＩＮにＤＣＴを実行し、この結果として得られる６４個のＤＣＴ係数を各係数ごとに定められた量子化ステップによって量子化する。そして、イネーブル信号Ｔ＿ＥＮをアクティブ状態に変化させて８×８画素ブロックの先頭データの出力を通知した後に、６４個の量子化ＤＣＴ係数Ｔ＿Ｋを順次書き込みアドレス生成部２０に出力する。
【００５６】
〔書き込みアドレス生成部２０〕
書き込みアドレス生成部２０は、変換部１０のイネーブル信号Ｔ＿ＥＮの状態を監視しており、このアクティブ状態の検出に同期して書き込みイネーブル信号Ｗ＿ＥＮをアクティブ状態に変化させ、記憶部３０を書き込み可能状態に設定する。
更に、変換部１０から順次入力される変換データＴ＿Ｋの入力順序に対応した書き込みアドレスＷ＿ＡＤＤを順次生成し、この生成したアドレスに対して変換データＴ＿Ｋを順次書き込む。例えばＪＰＥＧ符号化の場合において、変換データＴ＿Ｋの入力順序に応じてジグザグスキャン順の書き込みアドレスＷ＿ＡＤＤを順次生成する。
１ブロック分の変換データＴ＿Ｋが記憶部３０に書き込まれた後は、イネーブル信号Ｗ＿ＥＮを非アクティブ状態に戻し、再びイネーブル信号Ｔ＿ＥＮの監視状態に戻る。
【００５７】
〔記憶部３０〕
記憶部３０は、書き込みアドレス生成部２０からのイネーブル信号Ｗ＿ＥＮによって書き込み可能状態に設定された場合、変換部１０において順次生成される変換データＷ＿ＤＡＴＡを、書き込みアドレスＷ＿ＡＤＤで指定される記憶領域に記憶する。
また読み出しアドレス生成部２０からのイネーブル信号Ｒ＿ＥＮによって読み出し可能状態に設定された場合、読み出しアドレスＲ＿ＡＤＤで指定される記憶領域から変換データＲ＿ＤＡＴＡを読み出し、これを符号化部４０に出力する。
【００５８】
〔読み出しアドレス生成部４０〕
読み出しアドレス生成部４０は、符号化部５０のイネーブル信号ＣＯＤＥ＿ＥＮの状態を監視しており、このアクティブ状態の検出に同期して読み出しイネーブル信号Ｒ＿ＥＮをアクティブ状態に変化させ、記憶部３０を読み出し可能状態に設定する。
更に、読み出しアドレスＲ＿ＡＤＤを順次生成して記憶部３０から変換データを読み出し、この読み出した変換データＲ＿ＤＡＴＡを符号化部４０に順次出力する。例えば、１ブロックの最初から最後まで順次増大または減少するアドレスを読み出しアドレスＲ＿ＡＤＤとして生成する。
１ブロック分の変換データＲ＿ＤＡＴＡを記憶部３０から読み込んだ後は、イネーブル信号Ｒ＿ＥＮを非アクティブ状態に戻し、再びイネーブル信号ＣＯＤＥ＿ＥＮの監視状態に戻る。
なお、１ブロックの変換データの読み込み途中にブロックの符号化終了を指示するＥＯＢ判定信号Ｓ＿ＥＯＢが入力された場合には、イネーブル信号Ｒ＿ＥＮＤを非アクティブ状態に戻して変換データの読み込みを終了させる。
【００５９】
〔ＥＯＢ検出部６０〕
ＥＯＢ検出部６０は、記憶部３０に書き込まれる変換データから、特定の基準データと一致しない変換データで、かつ記憶部３０から符号化部５０に読み出される順序がブロックデータのうち最も後の変換データをブロック終了データとして検出する。この基準データは、例えばＪＰＥＧ符号化においてゼロになる量子化ＤＣＴ係数に相当する。
具体的には、ゼロデータと一致しない変換データＷ＿ＤＡＴＡの書き込みアドレスＷ＿ＡＤＤから、読み出しアドレス生成部４０において最も後に読み出しアドレスＲ＿ＡＤＤとして生成されるアドレスをブロック終了アドレスＥＯＢ＿ＡＤＤとして検出し、これをＥＯＢ判定部７０に出力する。
また、読み出しアドレス生成部４０において生成される読み出しアドレスＲ＿ＡＤＤが１ブロックの最初から最後まで順次増大または減少するアドレスの場合には、ゼロデータと一致しない変換データ書き込みアドレスＷ＿ＡＤＤのうち、最大または最小のアドレスをブロック終了アドレスとして検出する。
【００６０】
このＥＯＢ検出部６０について、図２および図３を参照しながら更に詳しく説明する。
図２は、図１に示したデータ符号化装置のＥＯＢ検出部６０を説明するための概略的な構成図である。図２に示すＥＯＢ検出部６０は、アドレス保持部６０１、ゼロデータ検出部６０２、アドレス比較部６０３、およびＡＮＤ回路６０４を有する。
なお、アドレス保持部６０１はアドレス保持手段の一実施形態である。
ゼロデータ検出部６０２は、基準データ検出手段の一実施形態である。
アドレス比較部６０３は、アドレス比較手段の一実施形態である。
ＡＮＤ回路６０４は、アドレス保持要求手段の一実施形態である。
【００６１】
アドレス保持部６０１は、ブロックデータの最初の変換データＷ＿ＡＤＤが入力される時点において初期化されており、所定の初期アドレスを保持している。そして、ＡＮＤ回路６０４から出力されるイネーブル信号Ｓ６０４が論理値”１”の場合に、入力される書き込みアドレスＷ＿ＡＤＤをブロック終了アドレスＥＯＢ＿ＡＤＤとして保持し、これをＥＯＢ判定部７０に出力する。
【００６２】
ゼロデータ検出部６０２は、書き込みアドレス生成部２０から記憶部３０に出力される変換データＷ＿ＤＡＴＡとゼロデータとを比較し、両者の不一致を検出した場合に論理値”１”の信号Ｓ６０２をＡＮＤ回路６０４に出力する。
【００６３】
アドレス比較部６０３は、書き込みアドレス生成部２０において生成された書き込みアドレスＷ＿ＡＤＤと、アドレス保持部６０１に保持されたアドレスとの大小関係を比較し、比較結果に応じた信号Ｓ６０３をＡＮＤ回路６０４に出力する。
【００６４】
ＡＮＤ回路６０４は、ゼロデータ検出部６０２において変換データＷ＿ＤＡＴＡとゼロデータとの不一致が検出された場合に、アドレス比較部６０３における比較結果に応じて、この変換データＷ＿ＤＡＴＡの書き込みアドレスＷ＿ＡＤＤをアドレス保持部６０１に保持させる論理値”１”のイネーブル信号Ｓ６０４を出力する。
【００６５】
図３は、図２に示したＥＯＢ検出部６０の動作を説明するためのフローチャートである。
ブロックデータの最初の書き込みアドレスＷ＿ＡＤＤが入力される時点において、アドレス保持部６０１には所定の初期アドレスが保持されている。このアドレス保持部６０１に保持されるアドレスは、書き込みアドレスＷ＿ＡＤＤが入力されるたびに図３に示すフローチャートに従って順次更新される。そして、ブロックデータの最後の書き込みアドレスＷ＿ＡＤＤが入力された後にアドレス保持部６０１に保持された変換データが、ブロック終了アドレスとしてＥＯＢ判定部７０におけるブロックの終了判定に使用される。
【００６６】
まずステップＳＴ１において、変換データＷ＿ＤＡＴＡがゼロデータであるか否かが判定される。ゼロデータでない場合にはステップＳＴ２において書き込みアドレスＷ＿ＡＤＤとアドレス保持部６０１に保持されたアドレスＥＯＢ＿ＡＤＤとが比較され、図３の例ではアドレスＷ＿ＡＤＤがアドレスＥＯＢ＿ＡＤＤに比べて大きい場合に、アドレスＷ＿ＡＤＤがアドレスＥＯＢ＿ＡＤＤと置き換えられてアドレス保持部６０１に保持される。変換データＷ＿ＤＡＴＡがゼロデータの場合、またはアドレスＷ＿ＡＤＤがアドレスＥＯＢ＿ＡＤＤに比べて小さい場合には、アドレス保持部６０１に保持されたアドレスは更新されない。
【００６７】
したがって、ブロックデータの最後の書き込みアドレスＷ＿ＡＤＤが入力された後のアドレス保持部６０１には、ゼロデータでない変換データＷ＿ＤＡＴＡの書き込みアドレスＷ＿ＡＤＤの中で、最大の書き込みアドレスＷ＿ＡＤＤが保持される。そしてこの場合、読み出しアドレス生成部４０においては１ブロックの最初から最後まで順次増大する読み出しアドレスＲ＿ＡＤＤが生成されるので、ブロック終了アドレスＥＯＢ＿ＡＤＤとしては、ゼロデータと一致しない変換データのアドレスのうち最も後に記憶部３０から読み出される変換データのアドレスが検出される。
以上が図１のＥＯＢ検出部６０の説明である。
【００６８】
〔ＥＯＢ判定部７０〕
図１のＥＯＢ判定部７０は、読み出しアドレスＲ＿ＡＤＤとブロック終了アドレスＥＯＢ＿ＡＤＤとが一致するか否かを検出する。そして、これらのアドレスの一致が検出された場合に、この読み出しアドレスＲ＿ＡＤＤに対応する変換データＲ＿ＤＡＴＡがブロック終了データであることを判定し、ブロックの符号化終了を指示するＥＯＢ判定信号Ｓ＿ＥＯＢを読み出しアドレス生成部４０および符号化部５０に出力する。
【００６９】
〔符号化部５０〕
符号化部５０は、記憶部３０から順次読み出される変換データＲ＿ＤＡＴＡに応じた符号を順次生成するとともに、ブロックの符号化終了を指示するＥＯＢ判定信号Ｓ＿ＥＯＢがＥＯＢ判定部７０から入力された場合、この変換データＲ＿ＤＡＴＡに対応する符号を生成し、これに続けてブロックの終了を示す符号ＥＯＢを生成して、ブロックの符号化を終了する。
【００７０】
また、例えばＪＰＥＧ符号化におけるＤＣＴ係数のハフマン符号化が符号化部５０において処理される場合には、順次読み出される変換データＲ＿ＤＡＴＡのデータ列において連続したゼロデータの数を計数し、この連続したゼロデータの計数値と、連続したゼロデータに続いて出力されるゼロデータでないデータの値とに応じたハフマン符号を生成する。さらに、このゼロデータの計数値が値”１６”に達した場合には符号ＺＲＬを直ちに生成する。
【００７１】
この符号化部５０について、図４および図５を参照しながら更に詳しく説明する。
図４は、図１に示したデータ符号化装置の符号化部５０を説明するための概略的な構成図である。図４に示す符号化部５０は、ゼロデータ・カウンタ５０１、符号テーブルアドレス生成部５０２、符号テーブル部５０３、および制御部５０４を有する。
【００７２】
ゼロデータ・カウンタ５０１は、記憶部３０から読み出された変換データＲ＿ＤＡＴＡのデータ列において、ゼロデータが連続する個数を計数するカウンタである。１ブロックの符号化が開始される時点においてこの計数値をゼロに初期化し、変換データＲ＿ＤＡＴＡにゼロデータが入力されるたびに計数値を１ずつインクリメントする。そして、変換データＲ＿ＤＡＴＡに非ゼロデータが入力された場合、この非ゼロデータＤＡＴＡと計数値Ｚ＿ＣＴとを符号テーブルアドレス生成部５０２に出力する。その後、計数値をゼロに初期化して、再びゼロデータの計数を行う。また、計数値が値”１６”に達した場合にも、計数値をゼロに初期化して、再びゼロデータの計数を行う。
【００７３】
符号テーブルアドレス生成部５０２は、ゼロデータ・カウンタ５０２から出力される非ゼロデータＤＡＴＡと計数値Ｚ＿ＣＴとの組み合わせに応じた符号テーブル５０３のアドレスＴＢＬ＿ＡＤＤを生成し、これを符号テーブル部５０３に出力する。
ただし、計数値Ｚ＿ＣＴが値”１６”に達した場合は、符号ＺＲＬに応じたアドレスＴＢＬ＿ＡＤＤを生成する。
また、ブロックの符号化終了を指示する信号Ｓ＿ＥＯＢが入力された場合には、符号ＥＯＢに対応するハフマン符号テーブル５０３のアドレスＴＢＬ＿ＡＤＤを生成する。
【００７４】
符号テーブル部５０３は、テーブルアドレスＴＢＬ＿ＡＤＤに対応する符号を所定のデータテーブルから抽出して出力する。例えばＪＰＥＧ符号化におけるＤＣＴ係数のハフマン符号化が符号化部５０において処理される場合には、テーブルアドレスＴＢＬ＿ＡＤＤに対応するハフマン符号を所定のデータテーブルから抽出して出力する。
【００７５】
制御部５０４は、起動信号ＳＴＡを受けてイネーブル信号ＣＯＤＥ＿ＥＮをアクティブ状態に設定し、記憶部３０からの変換データの読み込みを開始させる。また、１ブロック分の変換データの読み込みが終了した場合、およびブロックの符号化終了を指示する信号Ｓ＿ＥＯＢが入力された場合にはイネーブル信号ＣＯＤＥ＿ＥＮを非アクティブ状態に戻し、ハフマン符号化を終了させる。
【００７６】
図５は、図４に示した符号化部５０の動作を説明するためのタイミング図である。なお、図５においては、符号化部５０においてＪＰＥＧ符号化が行われる場合のタイミング例を示している。
時刻Ｔ１１：
クロック信号（図５ａ）に同期して読み出しイネーブル信号Ｒ＿ＥＮ（図５ｂ）がアクティブ状態に変化し、符号化部５０に変換データＲ＿ＤＡＴＡ（図５ｃ）が入力される。
この最初に入力される変換データＲ＿ＤＡＴＡは、例えばＪＰＥＧ符号化においてはＤＣ成分であり、以降に入力されるＡＣ成分とは処理が異なる。ＤＣ成分に対しては、前回入力された８×８画素ブロックのＤＣ成分との差分値に基づいてＤＣ成分用のハフマン符号テーブルのアドレスＴＢＬ＿ＡＤＤが生成され、これに応じたハフマン符号ＣＯＤＥがハフマン符号テーブル５０３から出力される。
【００７７】
時刻Ｔ１２：
変換データＲ＿ＤＡＴＡとして非ゼロデータ（値”２”）が入力される。この値”２”と、値”２”の前に連続して入力されたゼロデータの計数値Ｚ＿ＣＴ（図５ｄ）の値”１”との組み合わせに応じたアドレスＴＢＬ＿ＡＤＤ（図５ｆ）が符号テーブルアドレス生成部５０２において生成され、これに応じたハフマン符号ＣＯＤＥが符号テーブル部５０３から出力される。
【００７８】
時刻Ｔ１３：
変換データＲ＿ＤＡＴＡとして非ゼロのデータ（値”１”）が入力される。この値”１”と、値”１”の前に連続して入力されたゼロデータの計数値Ｚ＿ＣＴの値”０”との組み合わせに応じたアドレスＴＢＬ＿ＡＤＤが生成され、これに応じたハフマン符号ＣＯＤＥが符号テーブル部５０３から出力される。
【００７９】
時刻Ｔ１４：
連続して入力されたゼロデータの計数値Ｚ＿ＣＴが値”１６”に達し、これに応じて符号ＺＲＬが生成される。
従来のＪＰＥＧ符号化装置ではこの段階において符号ＺＲＬと符号ＥＯＢの何れの符号を生成すべきか判断できなかったが、本発明においてはＥＯＢ判定部７０から出力される信号Ｓ＿ＥＯＢに基づいて符号ＥＯＢを生成させるタイミングが判断できるので、信号Ｓ＿ＥＯＢ（図５ｅ）によって符号化の終了が指示されておらず、かつゼロデータの計数値Ｚ＿ＣＴが値”１６”に達する場合には、符号ＺＲＬの生成を直ちに判断できる。これにより、変換データＲ＿ＤＡＴＡの読み出しを停止させることなく、符号ＺＲＬを生成できる。
【００８０】
時刻Ｔ１５：
変換データＲ＿ＤＡＴＡとして非ゼロのデータ（値”１”）が入力される。この値”１”と、値”１”の前に連続して入力されたゼロデータの計数値Ｚ＿ＣＴの値”０”との組み合わせに応じたアドレスＴＢＬ＿ＡＤＤが生成され、これに応じたハフマン符号ＣＯＤＥが符号テーブル部５０３から出力される。
またこの時、ブロックの符号化終了を指示する信号Ｓ＿ＥＯＢが入力されるため、符号ＥＯＢに対応するアドレスＴＢＬ＿ＡＤＤが生成される。そして、次のクロックサイクルである時刻Ｔ１６において、符号ＥＯＢが符号テーブル部５０３から出力される。
さらに、イネーブル信号ＣＯＤＥ＿ＥＮが非アクティブ状態に戻されるため、これに応じて読み出しアドレス生成部４０のイネーブル信号Ｒ＿ＥＮが非アクティブ状態に戻され、記憶部３０からの変換データの読み出しが終了される。
このように、符号ＥＯＢがブロック最終データの前で生成される場合には、ブロックデータを最終データまで読み込まずに符号化処理を終了できるので、符号化処理を高速化できる。
以上が図１の符号化部５０の説明である。
【００８１】
次に、上述した構成を有する図１に示したデータ符号化装置の動作について図６〜図８を参照しながら説明する。
【００８２】
図６は、変換部１０において生成される８×８画素ブロックの変換データと、この変換データがジグザグに並べ替えられたデータの例を示す図である。
また図７は、この図６（ａ）の例に示す変換データＴ＿Ｋがデータ符号化装置に入力される場合おける記憶部３０への変換データの書き込み動作を説明するためのタイミング図である。
【００８３】
時刻Ｔ１７：
クロック信号（図７ａ）に同期して変換データＴ＿Ｋ（図７ｂ）が書き込みアドレス生成部２０にラッチされた変換データＷ＿ＤＡＴＡと、これに対応する書き込みアドレスＷ＿ＡＤＤとが記憶部３０に入力される。書き込みイネーブル信号Ｗ＿ＥＮ（図７ｃ）がアクティブ状態に設定されているため、この変換データＷ＿ＤＡＴＡ（値”２”）は記憶部３０の書き込みアドレスＷ＿ＡＤＤ（値”０５”）に記憶される。また、変換データＷ＿ＤＡＴＡが非ゼロデータであり、かつ書き込みアドレスＷ＿ＡＤＤがＥＯＢ検出部６０のアドレス保持部６０１に保持されている初期アドレス値”００”よりも大きいため、アドレス保持部６０１にはこの書き込みアドレス（値”０５”）が保持される。したがって、ＥＯＢ検出部６０から出力されるブロック終了アドレスＥＯＢ＿ＡＤＤは、次のクロックサイクルにおいて値”０５”となる。
【００８４】
時刻Ｔ１８：
変換データＷ＿ＤＡＴＡが非ゼロデータ（値”１”）であり、かつ書き込みアドレスＷ＿ＡＤＤ（値”４３”）がＥＯＢ検出部６０のアドレス保持部６０１に保持されているアドレス値”０５”よりも大きいため、アドレス保持部６０１にはこの書き込みアドレス（値”４３”）が保持される。したがって、ＥＯＢ検出部６０から出力されるブロック終了アドレスＥＯＢ＿ＡＤＤは、次のクロックサイクルにおいて値”４３”となる。
【００８５】
時刻Ｔ１９：
変換データＷ＿ＤＡＴＡが非ゼロデータ（値”２”）であるが、書き込みアドレスＷ＿ＡＤＤ（値”１１”）がＥＯＢ検出部６０のアドレス保持部６０１に保持されているアドレス値”４３”よりも小さいため、アドレス保持部６０１にこの書き込みアドレス（値”１１”）は保持されない。したがって、ＥＯＢ検出部６０から出力されるブロック終了アドレスＥＯＢ＿ＡＤＤは値”４３”のまま保持される。
【００８６】
図８は、図６（ｂ）の例に示す変換データＲ＿ＤＡＴＡがデータ符号化装置に入力される場合おける、記憶部３０からの変換データの読み出し動作を説明するためのタイミング図である。
【００８７】
時刻Ｔ２０において、ブロック終了アドレスＥＯＢ＿ＡＤＤとしてＥＯＢ検出部６０に保持されたアドレス値”４３”と等しいアドレス値が、読み出しアドレスＲ＿ＡＤＤとして記憶部３０に入力される。これにより、ブロックの符号化終了を指示する信号Ｓ＿ＥＯＢがＥＯＢ判定部７０から読み出しアドレス生成部４０へ出力され、次のクロックサイクル（時刻Ｔ２１）において読み出しイネーブル信号Ｒ＿ＥＮが非アクティブ状態に戻される。また、読み出しアドレスＲ＿ＡＤＤの値は初期値”００”にリセットされる。さらに、符号化部５０において符号ＥＯＢが生成され、ブロックデータの符号化が終了される。
【００８８】
以上説明したように、図１に示すデータ符号化装置によれば、書き込みアドレス生成部２０、記憶部３０および読み出しアドレス生成部を含むブロックが、変換部１０から順次入力されるブロック単位（ＪＰＥＧ符号化においては８×８画素ブロック）の変換データの列を入力順序に対応する所定の出力順序に並べ替えて符号化部５０に出力するブロック（データ列並べ替え部）として機能している。
ＥＯＢ検出部６０において、このデータ列並べ替え部に入力される変換データから、所定のゼロデータと一致しない変換データで、かつ符号化部５０への出力順序が最も後の変換データがブロック終了データとして検出されて保持され、そのアドレスＥＯＢ＿ＡＤＤがＥＯＢ判定部７０に出力される。
ＥＯＢ判定部７０においては、データ列並べ替え部において並べ替えられて出力される変換データがブロック終了データであるか否かが判定される。
符号化部５０においては、データ列並べ替え部から出力される変換データに応じた符号が順次生成される。そして、この出力の変換データがＥＯＢ判定部７０においてブロック終了データであることが判定された場合、この変換データに応じた符号が生成され、続いて符号ＥＯＢが生成されて、この変換データを含むデータブロックの符号化が終了される。
【００８９】
また、図１に示すデータ符号化装置におけるデータの符号化方法によれば、まず、書き込みアドレス生成部２０において、変換部１０から順次入力される変換データＴ＿Ｋの入力順序に応じた所定の書き込みアドレスＷ＿ＡＤＤが各変換データに対応して生成される。この入力された変換データＷ＿ＤＡＴＡは、記憶部３０の対応する書き込みアドレスＷ＿ＡＤＤに記憶される。また、非ゼロデータである変換データの書き込みアドレスのうち、記憶部３０からの読み出し順序において最も後に読み出されるアドレスがブロック終了アドレスとしてＥＯＢ検出部６０に検出される。
次いで、読み出しアドレス生成部４０において読み出しアドレスＲ＿ＡＤＤが順次生成されると、記憶部３０の当該読み出しアドレスから変換データＲ＿ＤＡＤＡが読み出されて、符号化部５０に出力される。読み出しアドレスＲ＿ＡＤＤとＥＯＢ検出部６０に検出されたブロック終了アドレスとが一致しない場合、変換データＲ＿ＤＡＴＡに応じた符号が符号化部５０において順次生成され、読み出しアドレスＲ＿ＡＤＤとブロック終了アドレスとが一致する場合には、このアドレスの変換データに対応する符号が生成された後、符号ＥＯＢが生成されて、データブロックの符号化が終了される。
【００９０】
したがって、データブロックの終了を示す符号ＥＯＢが生成される場合において、符号化の前にあらかじめ符号化の終了位置が検出されるので、データブロックの最終データの前に符号化の終了位置がある場合には、この符号化終了位置までデータを符号化した後に、符号ＥＯＢを生成して直ちに符号化を終了できる。これにより、データブロックの最終データまでデータを読み込まなければ符号ＥＯＢを生成することができない従来の方式に比べて、符号化処理を高速化できる。
【００９１】
また、例えばＤＣＴ係数のＡＣ成分のＪＰＥＧ符号化の場合、符号化部５０において、データ列並べ替え部から連続して出力されるゼロデータの数が計数され、連続したゼロデータの計数値と当該連続したゼロデータに続いて出力されるゼロデータでないデータの値とに応じたハフマン符号が生成され、この計数値が値”１６”に達した場合、符号ＺＲＬが生成された後、当該計数値から値”１６”が減算される。したがって、従来のＪＰＥＧ符号化のように、非ゼロのＤＣＴ係数が検出されるまで符号ＺＲＬの生成を待つ必要がなく、計数値から値”１６”に達した時点で直ちに符号ＺＲＬを生成することができ、さらに符号ＺＲＬを生成する場合において従来方式のようにデータの入力を停止させなくても済むため、符号化処理をさらに高速化できる。また、データの入力を停止させる処理ブロックが不要になるため、回路規模を小さくすることができる。
【００９２】
＜第２の実施の形態＞
次に、本発明に係る第２の実施の形態について、図９を参照して説明する。
本実施の形態においては、例えば電子スチルカメラのような、静止画像を撮影して圧縮符号化し記録するカメラシステムを例示して本発明を説明する。
【００９３】
図９は、本発明に係る第２の実施の形態のカメラシステム１００を説明するための概略的な構成図である。カメラシステム１００は、光学系１０１、ＣＣＤ１０２、Ａ／Ｄ変換部１０３、画像圧縮部１０４、ＳＤＲＡＭ１１４およびＣＰＵ１１５を有する。
また、画像圧縮部１０４は、ＣＣＤ信号処理部１０５、バス１０６、バッファ１０７、ＳＤＲＡＭインターフェイス（ＳＤＲＡＭＩ／Ｆ）１０８、ＪＰＥＧ処理部１０９、クロック生成部１１０、システムコントローラ１１１、ＣＰＵインターフェイス（ＣＰＵＩ／Ｆ）１１２およびメモリコントローラ１１３を有する。
【００９４】
光学系１０１は、使用者の操作により所望の画像を撮像し、その光信号をＣＣＤ１０２の撮像面上に結像させる。
ＣＣＤ１０２は、光学系１０１により結像された撮像面上の光信号を電気信号に変換し、アナログ画像信号としてＡ／Ｄ変換部１０３に出力する。
Ａ／Ｄ変換部１０３は、ＣＣＤ１０２より入力されたアナログ画像信号を所定の階調のデジタル信号に変換し、画像圧縮部１０４のＣＣＤ信号処理部１０５に出力する。
【００９５】
画像圧縮部１０４のＣＣＤ信号処理部１０５は、システムコントローラ１１１の制御に基づいて、入力されるデジタル画像信号をＲ（赤）、Ｇ（緑）、Ｂ（青）の各色信号に分離し、各色信号に対して色再現性のためガンマ補正を行い、さらに輝度信号と色差信号を生成する。生成された輝度信号と色差信号からなる画像信号は、バス１０６を介してバッファ１０７に出力される。
【００９６】
バッファ１０７は、ＣＣＤ信号処理部１０５よりバス１０６を介して入力される画像信号を順次記憶し、一定量蓄えられたら、メモリコントローラ１１３の制御に基づいて、ＳＤＲＡＭＩ／Ｆ１０８に出力する。また、ＳＤＲＡＭＩ／Ｆ１０８から入力される、ＳＤＲＡＭ１１４より読み出された画像データを一時的に記憶し、バス１０６を介してＪＰＥＧ処理部１０９に出力する。
ＳＤＲＡＭＩ／Ｆ１０８は、画像圧縮部１０４の外部メモリであって、メモリコントローラ１１３の制御に基づいて、バッファ１０７より入力される所定の単位ごとの画像データをＳＤＲＡＭ１１４に記憶する。また、ＳＤＲＡＭ１１４に記憶されている画像データを、８×８画素のブロック単位で読み出し、バッファ１０７に出力する。
【００９７】
ＪＰＥＧ処理部１０９は、システムコントローラ１１１の制御に基づいて、ＳＤＲＡＭ１１４より読み出されバッファ１０７を介して入力される画像信号をＪＰＥＧ符号化し、符号化ビットストリームを生成し、バス１０６およびＣＰＵＩ／Ｆ１１２を介してＣＰＵ１１５に出力する。
なお、このＪＰＥＧ処理部１０９は、上述した図１に示すデータ符号化装置と同様な構成を有しており、上述と同様の動作で符号化処理を実行する。
【００９８】
クロック生成部１１０は、システムコントローラ１１１の制御に基づいて、画像圧縮部１０４内の各部で使用するクロックを生成し、その各構成部に提供する。
バス１０６は、画像圧縮部１０４内のデータバスを模式的に示したものである。このバス１０６を介して、ＣＣＤ信号処理部１０５からバッファ１０７へおよびバッファ１０７からＪＰＥＧ処理部１０９への画像データの転送、および、ＪＰＥＧ処理部１０９からＣＰＵＩ／Ｆ１１２への符号化ビットストリームの転送などが行なわれる。
【００９９】
システムコントローラ１１１は、ＣＰＵ１１５の制御に基づいて動作し、画像圧縮部１０４の動作、すなわち、入力される画像データのＳＤＲＡＭ１１４への記憶、ＳＤＲＡＭ１１４に記憶された画像データのＪＰＥＧ処理部１０９への転送、ＪＰＥＧ処理部１０９におけるＪＰＥＧ符号化、および、符号化された画像データのＣＰＵ１１５への出力などの動作が適切に実行されるように、画像圧縮部１０４の各構成部を制御する。
ＣＰＵＩ／Ｆ１１２は、ＣＰＵ１１５とのインターフェイスであり、ＣＰＵ１１５からの制御信号、画像信号の入力、ＣＰＵ１１５への制御信号、符号化データの出力などを行なう。
メモリコントローラ１１３は、システムコントローラ１１１の制御に基づいて、バッファ１０７およびＳＤＲＡＭＩ／Ｆ１０８を制御し、画像データのＳＤＲＡＭ１１４への記憶およびＳＤＲＡＭ１１４に記憶された画像データの読み出しなどを制御する。
【０１００】
ＳＤＲＡＭ１１４は、撮影された輝度信号および色差信号からなる画像データを一時的に記憶するメモリである。光学系１０１〜Ａ／Ｄ変換部１０３で撮影された画像データは、一旦ＳＤＲＡＭ１１４に記憶された後、ＪＰＥＧ処理部１０９に順次供給され、符号化され、ＣＰＵ１１５に出力され、記憶、表示、伝送などに用いられる。
ＣＰＵ１１５は、光学系１０１〜画像圧縮部１０４およびＳＤＲＡＭ１１４による所望の画像の撮像、画像処理、画像データの記憶・再生、ＪＰＥＧ符号化、ＪＰＥＧ符号化データの記憶、表示、伝送などの各処理が適切に行なわれ、カメラシステム１００が全体として所望の動作をするように、カメラシステム１００の各構成部を制御する。
【０１０１】
このような構成のカメラシステム１００においては、まず、使用者の操作により光学系１０１に所望の画像が撮像されると、ＣＣＤ１０２において光信号が電気信号に変換されて画像信号が生成される。その画像信号は、Ａ／Ｄ変換部１０３でアナログ信号からデジタル信号に変換され、さらに画像圧縮部１０４のＣＣＤ信号処理部１０５において各色信号に分解され、ガンマ補正が施された後、輝度信号と色差信号からなる画像信号に変換される。
この画像信号は、バッファ１０７、ＳＤＲＡＭＩ／Ｆ１０８を介して一旦ＳＤＲＡＭ１１４に記憶された後、８×８画素のブロックごとに順次読み出されてＪＰＥＧ処理部１０９に入力される。
ＪＰＥＧ処理部１０９においては、順次入力されるブロックごとの画像データがＪＰＥＧ符号化され、所定のフォーマットのＪＰＥＧ符号化データストリームが生成され、ＣＰＵＩ／Ｆ１１２を介してＣＰＵ１１５に出力され、記憶、表示、伝送などの処理が行なわれる。
【０１０２】
上述した第２の実施の形態においては、図１に示すデータ符号化装置がＪＰＥＧ処理部１０９に適用されていることにより、生成された画像データを従来方式に比べてより高速にＪＰＥＧ符号化することができ、回路規模を小さくすることができる。
【０１０３】
なお、本発明はこれらの実施の形態に限られるものではなく、種々の改変が可能である。
たとえば、図１、図２および図４に示したデータ符号化装置、図９に示したカメラシステムの構成などは、各々これに限られるものではなく、任意の構成でよい。
また、本発明は、ＪＰＥＧ符号化以外の任意の符号化方式（例えばＭＰＥＧなど）に対しても適用可能であり、ＪＰＥＧ符号化に限定されるものではない。
【０１０４】
【発明の効果】
本発明によれば、データブロックの符号化終了を示す所定の符号が生成されるデータ符号化装置およびデータ符号化方法において、従来の方式に比べて符号化処理を高速化でき、回路規模を小さくできる。
また、生成された画像データを圧縮符号化するカメラシステムにおいて、従来の方式に比べて符号化処理を高速化でき、回路規模を小さくできる。
【図面の簡単な説明】
【図１】本発明に係る第１の実施の形態のデータ符号化装置を説明するための概略的な構成図である。
【図２】図１に示したデータ符号化装置のＥＯＢ検出部を説明するための概略的な構成図である。
【図３】図２に示すＥＯＢ検出部の動作を説明するためのフローチャートである。
【図４】図１に示したデータ符号化装置の符号化部を説明するための概略的な構成図である。
【図５】図４に示す符号化部の動作を説明するためのタイミング図である。
【図６】変換部１０において生成される８×８画素ブロックの変換データと、この変換データがジグザグに並べ替えられたデータの例を示す図である。
【図７】図６に示す変換データがデータ符号化装置に入力される場合おける、記憶部への変換データの書き込み動作を説明するためのタイミング図である。
【図８】図６に示す変換データがデータ符号化装置に入力される場合おける、記憶部からの変換データの読み出し動作を説明するためのタイミング図である。
【図９】本発明に係る第２の実施の形態のカメラシステムを説明するための概略的な構成図である。
【図１０】従来のＪＰＥＧ符号化装置を説明するための概略的な構成図である。
【図１１】図１０に示すＪＰＥＧ符号化装置のＤＣＴバッファ制御部を説明するための概略的な構成図である。
【図１２】ＤＣＴ・量子化部において生成されるＤＣＴ係数の生成順序と、ジグザグスキャンの順番に従ってＤＣＴバッファに書き込まれたＤＣＴ係数の読み出し順序を示す図である。
【図１３】図１０に示すＪＰＥＧ符号化装置のハフマン符号化部を説明するための概略的な構成図である。
【図１４】図１０に示すＪＰＥＧ符号化装置におけるＤＣＴ係数のジグザグスキャン順への並べ替え動作を説明するためのタイミング図である。
【図１５】ハフマン符号化部に入力される８×８画素ブロックのＤＣＴ係数の例を示す図である。
【図１６】ハフマン符号化部の動作を説明するためのタイミング図である。
【符号の説明】
１…ＤＣＴ・量子化部、２…ＤＣＴバッファ制御部、３…ＤＣＴバッファ、４…ハフマン符号化部、１０…変換部、２０…書き込みアドレス生成部、２１…ラッチ回路、２２…ジグザグアドレス生成部、２３…リードアドレス生成部、３０記憶部、４０…読み出しアドレス生成部、４１…ゼロデータ・カウンタ、４２…ハフマン符号テーブルアドレス生成部、４３…ハフマン符号テーブル、４４…ＺＲＬ判定部、４５…データコントロール部、５０…符号化部、６０…ＥＯＢ検出部、７０…ＥＯＢ判定部、１００…カメラシステム、１０１…光学系、１０２…ＣＣＤ、１０３…Ａ／Ｄ変換部、１０４…画像圧縮部、１０５…ＣＣＤ信号処理部、１０６…バス、１０７…バッファ、１０８…ＳＤＲＡＭＩ／Ｆ、１０９…ＪＰＥＧ処理部、１１０…クロック生成部、１１１…システムコントローラ、１１２…ＣＰＵＩ／Ｆ、１１３…メモリコントローラ、１１４…ＳＤＲＡＭ、１１５…ＣＰＵ、５０１…ゼロデータ・カウンタ、５０２…符号テーブルアドレス生成部、５０３…符号テーブル部、５０４…制御部、６０１…アドレス保持部、６０２…ゼロデータ検出部、６０３…アドレス比較部、６０４…ＡＮＤ回路
【図１】
0003627659.tif 000002
【図２】
0003627659.tif 000003
【図３】
0003627659.tif 000004
【図４】
0003627659.tif 000005
【図５】
0003627659.tif 000006
【図６】
0003627659.tif 000007
【図７】
0003627659.tif 000008
【図８】
0003627659.tif 000009
【図９】
0003627659.tif 000010
【図１０】
0003627659.tif 000011
【図１１】
0003627659.tif 000012
【図１２】
0003627659.tif 000013
【図１３】
0003627659.tif 000014
【図１４】
0003627659.tif 000015
【図１５】
0003627659.tif 000016
【図１６】
0003627659.tif 000017