(57)【特許請求の範囲】
【請求項１】
可変長データの列の所望の位置に、第１のデータパタンを含む所望の制御データを挿入する制御データ挿入手段と、
前記制御データが挿入された前記可変長データを順に結合する第１のデータ結合手段と、
前記結合された前記可変長データの列より、所定の固定長データを順に抽出する固定長データ抽出手段と、
前記抽出された固定長データより、前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンを検出するデータパタン検出手段と、
前記固定長データより、固定長の出力データを順に選択する選択手段であって、前記検出された前記第１のデータパタンの直後は、第２のデータパタンを選択する出力データ選択手段と、
前記結合された前記可変長データの列における、前記挿入された制御データの位置を示すデータと、前記挿入された制御データの種類を示すデータとを含む位置情報を生成する位置情報生成手段と
を有し、
前記データパタン検出手段は、前記抽出された固定長データより、前記位置情報に基づいて、前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンを検出する、
データストリーム生成装置。
【請求項２】
当該データストリーム生成装置は、前記抽出された固定長データを記憶する記憶手段をさらに有し、
前記データパタン検出手段は、前記記憶された固定長データより前記第１のデータパタンを検出し、
前記出力データ選択手段は、前記記憶された固定長データより前記出力データを順に選択する
請求項１に記載のデータストリーム生成装置。
【請求項３】
前記データパタン検出手段は、
前記抽出された固定長データより、前記第１のデータパタンを検出する検出手段と、
前記位置情報に基づいて、当該検出された第１のデータパタンが前記制御データに含まれる前記第１のデータパタンか否かを判定する判定手段と、
前記判定の結果、前記検出された第１のデータパタンが前記制御データに含まれる前記第１のデータパタンでない場合に、当該第１のデータパタンが所望の前記第１のデータパタンである旨の信号を出力する出力手段と
を有する、
請求項１に記載のデータストリーム生成装置。
【請求項４】
順次入力される各々が可変長データである複数の可変長データを結合して１つの前記可変長データを生成する第２のデータ結合手段と、
前記複数の可変長データの列の所望の位置に、第１のデータパタンを含む所望の制御データを挿入する制御データ挿入手段と、
前記制御データが挿入された前記複数の可変長データを順に結合する第１のデータ結合手段と、
前記結合された前記可変長データの列より、所定の固定長データを順に抽出する固定長データ抽出手段と、
前記抽出された固定長データより、前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンを検出するデータパタン検出手段と、
前記固定長データより、固定長の出力データを順に選択する選択手段であって、前記検出された前記第１のデータパタンの直後は、第２のデータパタンを選択する出力データ選択手段と、
前記結合された前記可変長データの列における、前記挿入された制御データの位置を示す位置情報を生成する位置情報生成手段と、
を有し、
前記第１のデータ結合手段は、前記第２のデータ結合手段において結合されたデータを、既に結合され前記固定長データとして抽出されていないデータと結合し、
前記データパタン検出手段は、前記抽出された固定長データより、前記位置情報に基づいて、前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンを検出する、
データストリーム生成装置。
【請求項５】
前記制御データ挿入手段は、
前記第１の結合手段において、前記可変長データおよび当該制御データが順に結合された場合に、当該制御データがバイトの境界に適切に配置されるように、当該制御データを挿入する直前に所定の調整データを挿入する第１のデータ挿入手段と、
前記調整データの挿入された可変長データに、前記制御データを挿入する第２のデータ挿入手段と
を有する、
請求項４に記載のデータストリーム生成装置。
【請求項６】
可変長データの列の所望の位置に、第１のデータパタンを含む所望の制御データを挿入し、
前記制御データが挿入された前記可変長データを順に結合し、
前記結合された前記可変長データの列における、前記挿入された制御データの種類を示すデータと前記制御データの位置を示すデータとを含む位置情報を生成し、
前記結合された前記可変長データの列より、所定の固定長データを順に抽出し、
前記抽出された固定長データより、前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンを、前記抽出された固定長データより前記位置情報に基づいて検出し、
前記固定長データより、前記検出された前記第１のデータパタンの直後は第２のデータパタンを選択するように、固定長の出力データを順に選択し、
前記選択した固定長の出力データを順に出力する、
データストリーム生成方法。
【請求項７】
前記抽出された固定長データを一旦記憶し、
前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンの検出は、前記記憶された固定長データに対して行い、
前記出力データの選択は、前記記憶された固定長データより順に選択する
請求項６に記載のデータストリーム生成方法。
【請求項８】
前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンの検出は、
前記抽出された固定長データより、前記第１のデータパタンを検出し、
前記位置情報に基づいて、当該検出された第１のデータパタンが前記制御データに含まれる前記第１のデータパタンか否かを判定し、
前記判定の結果、前記検出された第１のデータパタンが前記制御データに含まれる前記第１のデータパタンでない場合に、当該第１のデータパタンが所望の前記第１のデータパタンであるとして検出する
請求項６に記載のデータストリーム生成方法。
【請求項９】
順次入力される各々が可変長データである複数の可変長データを結合して１つの可変長データを生成し、
前記結合した可変長データの列の所望の位置に、第１のデータパタンを含む所望の制御データを挿入し、
前記制御データが挿入された前記可変長データを順に結合し、
前記結合されたデータを、既に結合され前記固定長データとして抽出されていないデータと結合し、
前記結合された前記可変長データの列における、前記挿入された制御データの種類を示すデータと、前記制御データの位置を示すデータとを含む位置情報を生成し、
前記結合された前記可変長データの列より、所定の固定長データを順に抽出し、
前記抽出された固定長データより、前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンを、前記抽出された固定長データより前記位置情報に基づいて検出し、
前記固定長データより、前記検出された前記第１のデータパタンの直後は第２のデータパタンを選択するように、固定長の出力データを順に選択し、
前記選択した固定長の出力データを順に出力する、
データストリーム生成方法。
【請求項１０】
前記制御データの挿入は、
前記可変長データおよび当該制御データが順に結合された場合に、当該制御データがバイトの境界に適切に配置されるように、当該制御データを挿入する直前に所定の調整データを挿入し、
前記調整データの挿入された可変長データに、前記制御データを挿入する
請求項９に記載のデータストリーム生成方法。
【請求項１１】
所望のデータを可変長符号化して可変長符号化データを生成する可変長符号化手段と、
前記可変長符号化データの列の所望の位置に、第１のデータパタンを含む所望の制御データを挿入する制御データ挿入手段と、
前記制御データが挿入された前記可変長符号化データを順に結合する第１のデータ結合手段と、
前記結合された前記可変長符号化データの列における、前記挿入された制御データの位置を示す位置情報を生成する位置情報生成手段と、
前記結合された前記可変長符号化データの列より、所定の固定長データを順に抽出する固定長データ抽出手段と、
前記抽出された固定長データより、前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンを検出するデータパタン検出手段と、
前記固定長データより、固定長の出力データを順に選択する選択手段であって、前記検出された前記第１のデータパタンの直後は、第２のデータパタンを選択する出力データ選択手段と、
前記可変長符号化された結果の可変長符号化データと、当該可変長符号化により補助的に生成される他のデータとを結合する第２のデータ結合手段と、
を有し、
前記第１のデータ結合手段は、前記第２のデータ結合手段において結合されたデータを、既に結合され前記固定長データとして抽出されていないデータと結合し、
前記データパタン検出手段は、前記抽出された固定長データより、前記位置情報に基づいて、前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンを検出する、
可変長符号化データストリーム生成装置。
【請求項１２】
前記可変長符号化手段は、入力される画像データをＪＰＥＧ方式により符号化し、可変長符号化データ、付加ビットデータおよびマーカを生成し、
前記第２のデータ結合手段は、前記生成された可変長符号化データおよび前記付加ビットデータを結合し、
前記制御データ挿入手段は、前記結合されたデータの列の所望の位置に、前記マーカを挿入する
請求項１１に記載の可変長符号化データストリーム生成装置。
【請求項１３】
所望のデータを可変長符号化し、
前記可変長符号化データの列の所望の位置に、第１のデータパタンを含む所望の制御データを挿入し、
前記制御データが挿入された前記可変長符号化データを順に結合し、
前記結合された前記可変長符号化データの列における、前記挿入された制御データの位置を示す位置情報を生成し、
前記結合された前記可変長符号化データの列における、前記挿入された制御データの種類を示すデータと前記制御データの位置を示すデータとを含む位置情報を生成し、
前記結合された前記可変長符号化データの列より、所定の固定長データを順に抽出し、
前記抽出された固定長データより、前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンを、前記抽出された固定長データより前記生成された位置情報に基づいて検出し、
前記固定長データより、前記検出された前記第１のデータパタンの直後は、第２のデータパタンを選択するように、固定長の出力データを順に選択し、
前記選択された出力データを順に出力する、
可変長符号化データストリーム生成方法。
【請求項１４】
可変長データの列の所望の位置に、第１のデータパタンを含む所望の制御データを挿入し、
前記制御データが挿入された前記可変長データを順に結合し、
前記結合された前記可変長データの列より、所定の固定長データを順に抽出し、
前記抽出された固定長データより、前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンを検出し、
前記固定長データより、固定長の出力データを順に選択するため、前記検出された前記第１のデータパタンの直後は、第２のデータパタンを選択し、
前記結合された前記可変長データの列における、前記挿入された制御データの位置を示すデータと、前記挿入された制御データの種類を示すデータとを含む位置情報を生成し、
上記データパタン検出において、前記抽出された固定長データより、前記位置情報に基づいて、前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンを検出する、
可変長符号化データストリーム生成方法。
【請求項１５】
順次入力される各々が可変長データである複数の可変長データを結合して１つの前記可変長データを生成する第２の結合処理を行い、
前記複数の可変長データの列の所望の位置に、第１のデータパタンを含む所望の制御データを挿入し、
前記制御データが挿入された前記複数の可変長データを順に第１の結合処理を行い、
前記結合された前記可変長データの列より、所定の固定長データを順に抽出し、
前記抽出された固定長データより、前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンを検出し、
前記固定長データより、固定長の出力データを順に選択するため、前記検出された前記第１のデータパタンの直後は、第２のデータパタンを選択し、
前記結合された前記可変長データの列における、前記挿入された制御データの位置を示す位置情報を生成し、
前記第１のデータ結合処理は、前記第２のデータ結合処理において結合されたデータを、既に結合され前記固定長データとして抽出されていないデータと結合し、
上記データパタン検出において、前記抽出された固定長データより、前記位置情報に基づいて、前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンを検出する、
可変長符号化データストリーム生成方法。
【請求項１６】
所望の画像を撮影し画像データを生成する撮影手段と、
前記生成された画像データを可変長符号化して可変長符号化データを生成し、前記可変長符号化されたデータについて制御データを挿入し、データの結合処理を行い、固定長データ抽出を行い、第１のデータパタンを検出し、固定長の出力画像データを順に選択する、請求項１１〜１２のいずれかに記載のデータストリーム生成装置と、
前記選択された出力画像データの列に対して、所定の処理を行なう処理手段と  を有する、カメラシステム。
【請求項１７】
前記処理手段は、前記生成された出力画像データの列に対して、記録、再生表示、伝送の少なくともいずれかの処理を行なう
請求項１６に記載のカメラシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データストリーム生成装置とその方法、可変長符号化データストリーム生成装置とその方法、カメラシステムに関する。
【０００２】
【従来の技術】
画像データやオーディオデータなどの符号化には種々の方式があるが、その代表的な例であり、静止画像を符号化する際に広く使用されている方式として、ＪＰＥＧがある。
このＪＰＥＧでは、圧縮符号化されたビットストリームの構造を規定するために、マーカと呼ばれる種々の制御コードが使用される。
【０００３】
たとえば、ＪＰＥＧで採用されているＤＣＴ方式においては、情報量削減のため、ＤＣＴ係数のＤＣ成分はブロック間の相関関係を利用し、１つ前のブロックとの差分値により表現しているが、そのためＪＰＥＧ圧縮符号化データを転送する際、何らかの原因によりデータ中にエラーが発生すると、以降に続くブロックに大きな影響を及ぼしてしまう。
これを防止するため、ＪＰＥＧ画像データには保持しているＤＣ成分値をクリアするためのリスタートマーカ（ＲＳＴｍ）と呼ばれるマーカが、８×８画素のブロックの集合であるＭＣＵ（Minimum Coded Unit）と呼ばれる単位ごとに、ビットストリームの中に挿入される。
また、１つの画像の始まりを示すＳＯＩ（Start Of Image）、画像の終わりを示すＥＯＩ（End Of Image）などのマーカもある。
【０００４】
これらのマーカは、ＦＦｈ（ｈは１６進数表示であることを示す。）で表される１バイトのヘッダを有している。
たとえば、ＲＳＴｍにはＦＦＤ０ｈ〜ＦＦＤ７ｈというコードが、ＳＯＩにはＦＦＤ８ｈというコードが、ＥＯＩにはＦＦＤ９ｈというコードが各々割り当てられている。
そして、このヘッダによりマーカと圧縮符号化ビットストリームとの区別ができるようになっている。
しかしながら、エントロピー符号化の時には、このＦＦｈに一致する符号が圧縮符号化データの中に出現する可能性があるため、符号化装置では、このＦＦｈというデータに対しては００ｈというバイト（以後、バイトスタッフと言う。）を付加して、マーカと区別するようにしている。
【０００５】
【発明が解決しようとする課題】
このように、たとえばＪＰＥＧにより圧縮符号化された画像データのストリームを生成する場合には、圧縮符号化されて生成されたビットストリームに対して、種々のマーカや、バイトスタッフ、さらにはマーカをバイトの境界に適切に配置するためのフィルビットと言われる調整ビットを挿入しなければならない。このような処理は、複雑な制御を必要とし、また相当の容量のレジスタやＦＩＦＯメモリなどのメモリを必要とする。
そのため、このようなデータストリームを生成する回路は、構成が複雑で回路規模が大きくなるという問題がある。これは、このような回路をＬＳＩ上に構成しようとした時などに特に問題となり、改善が望まれている。
【０００６】
したがって本発明の目的は、バイトスタッフの挿入などの処理を効率よく行なうことにより、より小さい回路規模で、簡単な構成、制御により、可変長データの列から所定のビット幅の固定長データの列を生成するデータストリーム生成装置とその方法を提供することにある。
また本発明の他の目的は、バイトスタッフの挿入などの処理を効率よく行なうことにより、より小さい回路規模で、簡単な構成、制御により、所望のデータを可変長符号化し効率よく所定のデータストリームを生成する可変長符号化データストリーム生成装置とその方法を提供することにある。
さらに本発明の他の目的は、所望の画像を撮影し、撮影した画像データを可変長符号化するカメラシステムであって、特に、より小さい回路規模で、簡単な構成、制御により、撮影した画像データを可変長符号化し、効率よく画像データストリームを生成するカメラシステムを提供することにある。
【０００７】
【課題を解決するための手段】
本発明によれば、可変長データの列の所望の位置に、第１のデータパタンを含む所望の制御データを挿入する制御データ挿入手段と、前記制御データが挿入された前記可変長データを順に結合する第１のデータ結合手段と、前記結合された前記可変長データの列より、所定の固定長データを順に抽出する固定長データ抽出手段と、前記抽出された固定長データより、前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンを検出するデータパタン検出手段と、前記固定長データより、固定長の出力データを順に選択する選択手段であって、前記検出された前記第１のデータパタンの直後は、第２のデータパタンを選択する出力データ選択手段と、前記結合された前記可変長データの列における、前記挿入された制御データの位置を示すデータと、前記挿入された制御データの種類を示すデータとを含む位置情報を生成する位置情報生成手段とを有し、
前記データパタン検出手段は、前記抽出された固定長データより、前記位置情報に基づいて、前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンを検出する、データストリーム生成装置が提供される。
【０００８】
また本発明によれば、順次入力される各々が可変長データである複数の可変長データを結合して１つの前記可変長データを生成する第２のデータ結合手段と、前記複数の可変長データの列の所望の位置に、第１のデータパタンを含む所望の制御データを挿入する制御データ挿入手段と、前記制御データが挿入された前記複数の可変長データを順に結合する第１のデータ結合手段と、前記結合された前記可変長データの列より、所定の固定長データを順に抽出する固定長データ抽出手段と、前記抽出された固定長データより、前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンを検出するデータパタン検出手段と、前記固定長データより、固定長の出力データを順に選択する選択手段であって、前記検出された前記第１のデータパタンの直後は、第２のデータパタンを選択する出力データ選択手段と、前記結合された前記可変長データの列における、前記挿入された制御データの位置を示す位置情報を生成する位置情報生成手段とを有し、
前記第１のデータ結合手段は、前記第２のデータ結合手段において結合されたデータを、既に結合され前記固定長データとして抽出されていないデータと結合し、
前記データパタン検出手段は、前記抽出された固定長データより、前記位置情報に基づいて、前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンを検出する、データストリーム生成装置が提供される。
【０００９】
本発明によれば、可変長データの列の所望の位置に、第１のデータパタンを含む所望の制御データを挿入し、前記制御データが挿入された前記可変長データを順に結合し、前記結合された前記可変長データの列における、前記挿入された制御データの種類を示すデータと前記制御データの位置を示すデータとを含む位置情報を生成し、前記結合された前記可変長データの列より、所定の固定長データを順に抽出し、前記抽出された固定長データより、前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンを、前記抽出された固定長データより前記位置情報に基づいて検出し、前記固定長データより、前記検出された前記第１のデータパタンの直後は第２のデータパタンを選択するように、固定長の出力データを順に選択し、前記選択した固定長の出力データを順に出力する、データストリーム生成方法が提供される。
また本発明によれば、順次入力される各々が可変長データである複数の可変長データを結合して１つの可変長データを生成し、前記結合した可変長データの列の所望の位置に、第１のデータパタンを含む所望の制御データを挿入し、前記制御データが挿入された前記可変長データを順に結合し、前記結合されたデータを、既に結合され前記固定長データとして抽出されていないデータと結合し、前記結合された前記可変長データの列における、前記挿入された制御データの種類を示すデータと、前記制御データの位置を示すデータとを含む位置情報を生成し、前記結合された前記可変長データの列より、所定の固定長データを順に抽出し、前記抽出された固定長データより、前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンを、前記抽出された固定長データより前記位置情報に基づいて検出し、前記固定長データより、前記検出された前記第１のデータパタンの直後は第２のデータパタンを選択するように、固定長の出力データを順に選択し、前記選択した固定長の出力データを順に出力する、データストリーム生成方法が提供される。
【００１０】
本発明によれば、所望のデータを可変長符号化して可変長符号化データを生成する可変長符号化手段と、前記可変長符号化データの列の所望の位置に、第１のデータパタンを含む所望の制御データを挿入する制御データ挿入手段と、前記制御データが挿入された前記可変長符号化データを順に結合する第１のデータ結合手段と、前記結合された前記可変長符号化データの列における、前記挿入された制御データの位置を示す位置情報を生成する位置情報生成手段と、前記結合された前記可変長符号化データの列より、所定の固定長データを順に抽出する固定長データ抽出手段と、前記抽出された固定長データより、前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンを検出するデータパタン検出手段と、前記固定長データより、固定長の出力データを順に選択する選択手段であって、前記検出された前記第１のデータパタンの直後は、第２のデータパタンを選択する出力データ選択手段と、前記可変長符号化された結果の可変長符号化データと、当該可変長符号化により補助的に生成される他のデータとを結合する第２のデータ結合手段と、を有し、
前記第１のデータ結合手段は、前記第２のデータ結合手段において結合されたデータを、既に結合され前記固定長データとして抽出されていないデータと結合し、
前記データパタン検出手段は、前記抽出された固定長データより、前記位置情報に基づいて、前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンを検出する、
可変長符号化データストリーム生成装置が提供される。
【００１１】
本発明によれば、所望のデータを可変長符号化し、前記可変長符号化データの列の所望の位置に、第１のデータパタンを含む所望の制御データを挿入し、前記制御データが挿入された前記可変長符号化データを順に結合し、前記結合された前記可変長符号化データの列における、前記挿入された制御データの位置を示す位置情報を生成し、前記結合された前記可変長符号化データの列における、前記挿入された制御データの種類を示すデータと前記制御データの位置を示すデータとを含む位置情報を生成し、前記結合された前記可変長符号化データの列より、所定の固定長データを順に抽出し、前記抽出された固定長データより、前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンを、前記抽出された固定長データより前記生成された位置情報に基づいて検出し、前記固定長データより、前記検出された前記第１のデータパタンの直後は、第２のデータパタンを選択するように、固定長の出力データを順に選択し、前記選択された出力データを順に出力する、可変長符号化データストリーム生成方法が提供される。
【００１２】
本発明によれば、可変長データの列の所望の位置に、第１のデータパタンを含む所望の制御データを挿入し、前記制御データが挿入された前記可変長データを順に結合し、前記結合された前記可変長データの列より、所定の固定長データを順に抽出し、前記抽出された固定長データより、前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンを検出し、前記固定長データより、固定長の出力データを順に選択するため、前記検出された前記第１のデータパタンの直後は、第２のデータパタンを選択し、前記結合された前記可変長データの列における、前記挿入された制御データの位置を示すデータと、前記挿入された制御データの種類を示すデータとを含む位置情報を生成し、上記データパタン検出において、前記抽出された固定長データより、前記位置情報に基づいて、前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンを検出する、可変長符号化データストリーム生成方法が提供される。
【００１３】
本発明によれば、順次入力される各々が可変長データである複数の可変長データを結合して１つの前記可変長データを生成する第２の結合処理を行い、前記複数の可変長データの列の所望の位置に、第１のデータパタンを含む所望の制御データを挿入し、前記制御データが挿入された前記複数の可変長データを順に第１の結合処理を行い、前記結合された前記可変長データの列より、所定の固定長データを順に抽出し、前記抽出された固定長データより、前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンを検出し、前記固定長データより、固定長の出力データを順に選択するため、前記検出された前記第１のデータパタンの直後は、第２のデータパタンを選択し、前記結合された前記可変長データの列における、前記挿入された制御データの位置を示す位置情報を生成し、前記第１のデータ結合処理は、前記第２のデータ結合処理において結合されたデータを、既に結合され前記固定長データとして抽出されていないデータと結合し、上記データパタン検出において、前記抽出された固定長データより、前記位置情報に基づいて、前記制御データに含まれる前記第１のデータパタン以外の前記第１のデータパタンを検出する、可変長符号化データストリーム生成方法が提供される。
【００１４】
本発明によれば、所望の画像を撮影し画像データを生成する撮影手段と、前記生成された画像データを可変長符号化して可変長符号化データを生成し、前記可変長符号化されたデータについて制御データを挿入し、データの結合処理を行い、固定長データ抽出を行い、第１のデータパタンを検出し、固定長の出力画像データを順に選択する、上記記載のデータストリーム生成装置と、前記選択された出力画像データの列に対して、所定の処理を行なう処理手段とを有する、カメラシステムが提供される。
【００１５】
【発明の実施の形態】
第１の実施の形態
本発明に係る第１の実施の形態について、図１〜図９を参照して説明する。
本実施の形態においては、たとえば電子スチルカメラのような、静止画像を撮影して圧縮符号化し記録するカメラシステムを例示して本発明を説明する。
【００１６】
まず、そのカメラシステムの全体の構成および動作について図１を参照して説明する。
図１は、本実施の形態のカメラシステム１００の構成を示すブロック図である。
カメラシステム１００は、光学系１０１、ＣＣＤ１０２、Ａ／Ｄ変換部１０３、画像圧縮部１０４、ＳＤＲＡＭ１１４およびＣＰＵ１１５を有する。
また、画像圧縮部１０４は、ＣＣＤ信号処理部１０５、バス１０６、バッファ１０７、ＳＤＲＡＭインターフェイス（ＳＤＲＡＭＩ／Ｆ）１０８、ＪＰＥＧ処理部１０９、クロック生成部１１０、システムコントローラ１１１、ＣＰＵインターフェイス（ＣＰＵＩ／Ｆ）１１２およびメモリコントローラ１１３を有する。
【００１７】
光学系１０１は、使用者の操作により所望の画像を撮像し、その光信号をＣＣＤ１０２の撮像面上に結像させる。
ＣＣＤ１０２は、光学系１０１により結像された撮像面上の光信号を電気信号に変換し、アナログ画像信号としてＡ／Ｄ変換部１０３に出力する。
Ａ／Ｄ変換部１０３は、ＣＣＤ１０２より入力されたアナログ画像信号を所定の階調のデジタル信号に変換し、画像圧縮部１０４のＣＣＤ信号処理部１０５に出力する。
【００１８】
画像圧縮部１０４のＣＣＤ信号処理部１０５は、システムコントローラ１１１の制御に基づいて、入力されるデジタル画像信号をＲ（赤）、Ｇ（緑）、Ｂ（青）の各色信号に分離し、各色信号に対して色再現性のためガンマ補正を行い、さらに輝度信号と色差信号を生成する。生成された輝度信号と色差信号からなる画像信号は、バス１０６を介してバッファ１０７に出力される。
【００１９】
バッファ１０７は、ＣＣＤ信号処理部１０５よりバス１０６を介して入力される画像信号を順次記憶し、一定量蓄えられたら、メモリコントローラ１１３の制御に基づいて、ＳＤＲＡＭＩ／Ｆ１０８に出力する。また、ＳＤＲＡＭＩ／Ｆ１０８から入力される、ＳＤＲＡＭ１１４より読み出された画像データを一時的に記憶し、バス１０６を介してＪＰＥＧ処理部１０９に出力する。
ＳＤＲＡＭＩ／Ｆ１０８は、画像圧縮部１０４の外部メモリであって、メモリコントローラ１１３の制御に基づいて、バッファ１０７より入力される所定の単位ごとの画像データをＳＤＲＡＭ１１４に記憶する。また、ＳＤＲＡＭ１１４に記憶されている画像データを、８×８のブロック単位で読み出し、バッファ１０７に出力する。
【００２０】
ＪＰＥＧ処理部１０９は、システムコントローラ１１１の制御に基づいて、ＳＤＲＡＭ１１４より読み出されバッファ１０７を介して入力される画像信号をＪＰＥＧ符号化し、符号化ビットストリームを生成し、バス１０６およびＣＰＵＩ／Ｆ１１２を介してＣＰＵ１１５に出力する。このＪＰＥＧ処理部１０９の構成および動作については後に詳細に説明する。
【００２１】
クロック生成部１１０は、システムコントローラ１１１の制御に基づいて、画像圧縮部１０４内の各部で使用するクロックを生成し、その各構成部に提供する。
バス１０６は、画像圧縮部１０４内のデータバスを模式的に示したものである。このバス１０６を介して、ＣＣＤ信号処理部１０５からバッファ１０７へおよびバッファ１０７からＪＰＥＧ処理部１０９への画像データの転送、および、ＪＰＥＧ処理部１０９からＣＰＵＩ／Ｆ１１２への符号化ビットストリームの転送などが行なわれる。
【００２２】
システムコントローラ１１１は、ＣＰＵ１１５の制御に基づいて動作し、画像圧縮部１０４の動作、すなわち、入力される画像データのＳＤＲＡＭ１１４への記憶、ＳＤＲＡＭ１１４に記憶された画像データのＪＰＥＧ処理部１０９への転送、ＪＰＥＧ処理部１０９におけるＪＰＥＧ符号化、および、符号化された画像データのＣＰＵ１１５への出力などの動作が適切に行なえるように、画像圧縮部１０４の各構成部を制御する。
ＣＰＵＩ／Ｆ１１２は、ＣＰＵ１１５とのインターフェイスであり、ＣＰＵ１１５からの制御信号、画像信号の入力、ＣＰＵ１１５への制御信号、符号化データの出力などを行なう。
メモリコントローラ１１３は、システムコントローラ１１１の制御に基づいて、バッファ１０７およびＳＤＲＡＭＩ／Ｆ１０８を制御し、画像データのＳＤＲＡＭ１１４への記憶およびＳＤＲＡＭ１１４に記憶された画像データの読み出しなどを制御する。
【００２３】
ＳＤＲＡＭ１１４は、撮影された輝度信号および色差信号からなる画像データを一時的に記憶するメモリである。光学系１０１〜Ａ／Ｄ変換部１０３で撮影された画像データは、一旦ＳＤＲＡＭ１１４に記憶された後、ＪＰＥＧ処理部１０９に順次供給され、符号化され、ＣＰＵ１１５に出力され、記憶、表示、伝送などに用いられる。
ＣＰＵ１１５は、光学系１０１〜画像圧縮部１０４およびＳＤＲＡＭ１１４による所望の画像の撮像、画像処理、画像データの記憶・再生、ＪＰＥＧ符号化、ＪＰＥＧ符号化データの記憶、表示、伝送などの各処理が適切に行なわれ、カメラシステム１００が全体として所望の動作をするように、カメラシステム１００の各構成部を制御する。
【００２４】
このような構成のカメラシステム１００においては、まず、使用者の操作により光学系１０１により所望の画像が撮像されると、ＣＣＤ１０２において光信号から電気信号に変換されて画像信号が生成される。その画像信号は、Ａ／Ｄ変換部１０３でアナログ信号からデジタル信号に変換され、さらに画像圧縮部１０４のＣＣＤ信号処理部１０５において各色信号に分解され、ガンマ補正が施された後、輝度信号と色差信号からなる画像信号に変換される。
この画像信号は、バッファ１０７、ＳＤＲＡＭＩ／Ｆ１０８を介して一旦ＳＤＲＡＭ１１４に記憶された後、８×８画素のブロックごとに順次読み出されてＪＰＥＧ処理部１０９に入力される。
ＪＰＥＧ処理部１０９においては、順次入力されるブロックごとの画像データをＪＰＥＧ符号化し、所定のフォーマットのＪＰＥＧ符号化データストリームを生成し、ＣＰＵＩ／Ｆ１１２を介してＣＰＵ１１５に出力され、記憶、表示、伝送などが行なわれる。
【００２５】
次に、カメラシステム１００のＪＰＥＧ処理部１０９の内部構成およびその動作について、図２および図３を参照して説明する。
図２は、ＪＰＥＧ処理部１０９の構成を示すブロック図である。
ＪＰＥＧ処理部１０９は、ＤＣＴ・量子化部１２１、マーカ発生部１２２、可変長符号化部１２３、ＪＰＥＧ制御レジスタ１２４およびＪＰＥＧコントローラ１２５を有する。
なお、ＪＰＥＧ処理部１０９には１画素８ビットの輝度信号または１画素８ビットの色差信号が、８×８画素単位で入力されるものとする。
【００２６】
ＤＣＴ・量子化部１２１は、入力される８×８画素の画像データをＤＣＴし、６４個の周波数成分（ＤＣＴ係数）に変換し、各係数を、図示せぬ量子化テーブルの対応する値を用いて量子化する。量子化されたＤＣＴ係数（１１ビット）は、可変長符号化部１２３に出力される。
【００２７】
マーカ発生部１２２は、ＪＰＥＧ復号化装置１２５の制御に基づいて、ＪＰＥＧビットストリームに付加する、そのビットストリームの構造を明確に表現するためのマーカを生成し、可変長符号化部１２３に出力する。
【００２８】
可変長符号化部１２３は、ＤＣＴ・量子化部１２１より入力されるＤＣＴ係数を可変長符号化し、得られた可変長符号化データと付加ビットデータおよびマーカ発生部１２２より入力されるマーカを、８ビット単位のビットストリームに変換して、ＪＰＥＧ処理部１０９より出力する。
【００２９】
この可変長符号化部１２３の構成を図３に示す。
図３は、可変長符号化部１２３の構成を示すブロック図である。
可変長符号化部１２３は、可変長符号算出部１３１、可変長符号テーブル１３２、ビットストリーム生成部１３３を有する。
【００３０】
可変長符号算出部１３１は、ＤＣＴ・量子化部１２１より入力される量子化後のＤＣＴ係数に基づいて、可変長符号テーブル１３２を参照して、ＤＣＴ係数の大きさに対応する可変長符号化データと、その可変長符号化データの符号長データを検出する。また、そのＤＣＴ係数の大きさから付加ビットデータと、その付加ビットデータのデータ長データを検出する。これら検出された可変長符号化データ、付加ビットデータ、可変長符号化データ長データ、付加ビットデータ長データは、各々ビットストリーム生成部１３３に出力される。
なお、可変長符号化データは２〜１６ビットのデータであり、付加ビットデータは０〜１１ビットのデータである。したがって、各データ長は、５ビットおよび４ビットのデータとなる。
【００３１】
可変長符号テーブル１３２は、可変長符号化を行なうための符号化テーブルである。
【００３２】
ビットストリーム生成部１３３は、可変長符号算出部１３１より入力される可変長データである可変長符号化データおよび付加ビットデータを、同じく可変長符号算出部１３１より入力される可変長符号化データ長データおよび付加ビットデータ長データを参照して、８ビット固定長の１つのデータの列に変換し、さらにマーカ発生部１２２より入力されたマーカを付加して、符号化ビットストリームとして出力する。
【００３３】
ＪＰＥＧ処理部１０９のＪＰＥＧ制御レジスタ１２４は、ＤＣＴ・量子化部１２１および可変長符号化部１２３の動作を制御するデータ、パラメータなどが設定されるレジスタであり、ＣＰＵ１１５により、ＣＰＵＩ／Ｆ１１２を介して設定される。
ＪＰＥＧコントローラ１２５は、ＪＰＥＧ制御レジスタ１２４に設定されているデータ、パラメータなどに基づいて、ＤＣＴ、量子化、マーカ発生、可変長符号化およびビットストリーム生成などの処理が適切に行なわれるように、ＤＣＴ・量子化部１２１、マーカ発生部１２２および可変長符号化部１２３の動作を制御する。
【００３４】
このような構成のＪＰＥＧ処理部１０９においては、ＣＰＵ１１５からＪＰＥＧ制御レジスタ１２４に動作条件などが設定され、これによりＪＰＥＧコントローラ１２５がＤＣＴ・量子化部１２１および可変長符号化部１２３を制御し、処理を行なう。
すなわち、順次入力される８×８画素ごとの画像データを、ＤＣＴ・量子化部１２１においてＤＣＴし、量子化する。
量子化されたＤＣＴ係数は、可変長符号化部１２３の可変長符号算出部１３１において可変長符号され、可変長符号化データおよび付加ビットデータが生成される。
そして、各々可変長データであるこの可変長符号化データおよび付加ビットデータが、ビットストリーム生成部１３３において８ビット固定長のデータの列に変換されて、ＪＰＥＧ符号化データストリームとして出力される。
【００３５】
次に、このようなＪＰＥＧ処理部１０９の、本発明に関わる、可変長符号化部１２３のビットストリーム生成部１３３について、図４〜図９を参照して詳細に説明する。
まず、ビットストリーム生成部１３３の構成について説明する。
図４は、ビットストリーム生成部１３３の構成を示す図である。
ビットストリーム生成部１３３は、出力データ生成部１４１、ＦＩＦＯバッファ１４２およびデータ出力部１４３を有する。
【００３６】
出力データ生成部１４１は、可変長符号算出部１３１より入力される可変長データである可変長符号化データおよび付加ビットデータを、同じく可変長符号算出部１３１より入力される可変長符号化データ長データおよび付加ビットデータ長データを参照して順に結合し、さらに、マーカ発生部１２２より適宜入力されるマーカを挿入して、５６ビットごとにＦＩＦＯバッファ１４２に出力する。またその際、有効なデータが出力されているか否かを示す有効フラグを生成し、同じくＦＩＦＯバッファ１４２に出力する。
この時、符号化された圧縮ビットにＦＦｈで表されるバイトが出現した場合には、その直後に、マーカと区別するためのバイトスタッフ００ｈを挿入する。
また、マーカは２バイトのデータであり丁度バイトの区切りとなる位置に配置する必要があるため、マーカの直前のデータがバイトの区切りで終了していない場合には、その間をフィルビットで埋める。
【００３７】
ＦＩＦＯバッファ１４２は、出力データ生成部１４１より出力される５６ビットごとのデータを一時的に記憶するメモリである。ＦＩＦＯバッファ１４２は、同じく出力データ生成部１４１より入力される有効フラグが有効な時に、出力データ生成部１４１より出力されるデータを記憶する。記憶されたデータは、データ出力部１４３により順に読み出される。
【００３８】
データ出力部１４３は、ＦＩＦＯバッファ１４２より順にデータを読み出し、８ビットごとのデータ列を生成し、外部の転送仕様に合わせて順に出力する。
【００３９】
出力データ生成部１４１の構成について、さらに詳細に説明する。
図５は、出力データ生成部１４１の構成を示すブロック図である。
出力データ生成部１４１は、第１のレジスタ１５１、結合部１５２、第２のレジスタ１５３、バイトスタッフ挿入部１５４、第３のレジスタ１５５、セレクタ１５６、フィルビット生成部１５７、入力符号長保持レジスタ１５８、結合データ長生成部１５９およびビットストリーム長保持レジスタ１６０を有する。
【００４０】
第１のレジスタ１５１は、可変長符号算出部１３１より入力される可変長符号化データおよび付加ビットデータ、マーカ発生部１２２より入力されるマーカ、および、後述するフィルビット生成部１５７より入力されるフィルビットを一時的に記憶し、結合部１５２に出力する。
第１のレジスタ１５１は、外部より入力されるセレクト信号に基づいて、可変長符号化データと付加ビットデータ、あるいは、フィルビットとマーカの各組み合わせのいずれかを記憶する。
可変長符号化データは最大１６ビット、付加ビットデータは最大１１ビットなのでこれらの組み合わせは最大２７ビットとなる。また、マーカは１６ビットで、フィルビットは最大で１バイトに１ビット足りない７ビットなので、これらの組み合わせは最大２３ビットとなる。したがって第１のレジスタ１５１は、２７ビットの記憶容量があればよい。
【００４１】
結合部１５２は、第１のレジスタ１５１より読み出した新たに入力されたデータと、既に入力されて出力データ生成部１４１から出力されずにフィードバックされた残りのデータとを結合し、第２のレジスタ１５３に出力する。
具体的には、結合部１５２は、図６に示すように、結合データ長生成部１５９から入力される結合データ長に基づいて、フィードバックされたデータをＭＳＢ側にシフトし、入力されたデータをそのシフトしたフィードバックされたデータに連なる位置にシフトし、それらのデータの論理和（ＯＲ）を求めることにより２つのデータを結合する。
なお、後述するように出力データ生成部１４１からのデータ出力の単位は５６ビットなので、フィードバックされる残りのデータは最大５５ビットのデータであり、第１のレジスタから入力されるデータが最大２７ビットなので、結合されたデータは最大８２ビットとなる。
【００４２】
第２のレジスタ１５３は、結合部１５２で結合された最大８２ビットのデータを一旦記憶し、要求に応じて順次バイトスタッフ挿入部１５４に出力する。
【００４３】
バイトスタッフ挿入部１５４は、第２のレジスタ１５３に記憶されているデータを順に読み出し、可変長符号化データおよび付加ビットデータの中で、バイトで区切った時にＦＦｈとなっているデータを検出し、その直後にマーカと区別するためのバイトスタッフ００ｈを挿入する。なお、フィードバックしたデータ中にＦＦｈを検出しても、これにはバイトスタッフ００ｈは挿入しない。
【００４４】
ここで、バイトスタッフ００ｈが最も多く挿入される場合を考える。
バイトスタッフ００ｈが最も多く挿入されるのは、図７に示すように、可変長符号化データ１１１１＿１１１１＿１１１１＿１１１０ｂ（ｂは二進数表記であることを示す。）と、付加ビットデータ１１１＿１１１１＿１１１１ｂの組み合わせが連続して入力される場合となる。
ただし、出力データ生成部１４１より出力されずにフィードバックされたビットストリームのデータＦＦｈにはバイトスタッフ００ｈを挿入しないので、最初の付加ビットデータ（付加ビット１）のＬＳＢ側の７ビット、すなわち１１１＿１１１１ｂと、２回目の可変長符号化データおよび付加ビットデータに対してバイトスタッフを挿入する処理が、１回のバイトスタッフの挿入処理での最大の処理量となる。
そしてその場合、図７に示すように、バイトの区切りのＦＦｈは３個存在するので、バイトスタッフ００ｈも３個挿入することになる。
【００４５】
このように、バイトスタッフ挿入部１５４においては最大３個のバイトスタッフ、すなわち最大２４ビットのデータを挿入するので、バイトスタッフ挿入部１５４で生成されるデータは、最大１０６ビット（＝８２＋２４）となる。
【００４６】
バイトスタッフ挿入部１５４の具体的な構成例を図８に示す。
図８に示すようにバイトスタッフ挿入部１５４は、ＦＦ検出部１７１-1〜１７１-10 、セレクト信号生成部１７２およびスイッチ１７３-1〜１７３-13 を有する。
ＦＦ検出部１７１-1〜１７１-10 は、各々、第２のレジスタ１５３に記憶されている８２ビットのデータのＭＳＢ側から８ビットずつ、すなわち各バイトがＦＦｈか否かを検出し、検出結果をセレクト信号生成部１７２に出力する。
【００４７】
セレクト信号生成部１７２は、ＦＦ検出部１７１-1〜１７１-10 より入力されるＦＦｈの検出結果に基づいて、バイトスタッフ００ｈの挿入位置、それにともなう各バイトのデータのシフト量を検出し、１０６ビットの出力データの各バイトごとに出力データを選択するための切り換え信号を生成し、スイッチ１７３に印加する。
【００４８】
スイッチ１７３-1〜１７３-13 は、セレクト信号生成部１７２からの切り換え信号に基づいて、バイトスタッフ挿入部１５４から出力する１０６ビットのデータの各バイトごとの出力データを選択する。
第２のレジスタ１５３に記憶されている８２ビットのデータのＭＳＢ側の１バイト、すなわちビット７４〜８１のデータは、バイトスタッフの有無に関係なくそのままＭＳＢ側のデータとして出力されるので、これに対してはスイッチは設けられておらず、そのまま出力データの最上位のバイト、すなわちビット１０５〜９８のデータとして出力される。
【００４９】
出力データの２バイト目、すなわちビット９７〜９０のデータは、最上位のバイトがＦＦｈだった場合にはバイトスタッフ００ｈとなり、ＦＦｈでない場合は入力データのビット７３〜６６のデータとなる。そのため、スイッチ１７３-1により、このいずれかのデータを選択する。
出力データの３バイト目、すなわちビット８９〜８２のデータは、最上位および２番目のバイトが各々ＦＦｈである場合およびそうでない場合によって、入力データの３番目のバイト（ビット６５〜５８）のデータ、入力データの２番目のバイト（ビット７３〜６６）のデータあるいはバイトスタッフ００ｈのいずれかのデータとなり、スイッチ１７３-2により選択する。
出力データの４バイト目も同様に、入力データの２つのバイトあるいはバイトスタッフ００ｈのいずれかの３種類よりいずれかを選択することになる。
【００５０】
同様に、上位のバイトにＦＦｈが出現してバイトスタッフが挿入される種々の場合を考慮すると、出力データの５バイト目および６バイト目は、入力データの３つのバイトあるいはバイトスタッフ００ｈのいずれかの４種類からデータを選択することになり、出力データの７バイト目以降は、入力データの４つのバイトあるいはバイトスタッフ００ｈのいずれかの５種類のデータからデータを選択することになる。
また、最後のＬＳＢ側の２ビットは、上位にバイトスタッフが３個挿入された場合に、入力データのＬＳＢ側の２ビットを選択する。
【００５１】
バイトスタッフ挿入部１５４においては、このような回路により適宜バイトスタッフが挿入されて、最大１０６ビットのデータが生成され、第３のレジスタ１５５に出力される。
【００５２】
第３のレジスタ１５５は、バイトスタッフ挿入部１５４で生成された最大１０６ビットのデータを一旦記憶し、順次セレクタ１５６に出力する。
【００５３】
セレクタ１５６は、図９に示すように、第３のレジスタ１５５に記憶されているデータを読み出し、これが５６ビット以上の場合には、ＭＳＢ側の５６ビットを読み出し、ＦＩＦＯバッファ１４２に出力する。残ったデータは、結合部１５２にフィードバックする。第３のレジスタ１５５に記憶されているデータが５６ビットに達しなかった場合には、全ビットを結合部１５２にフィードバックする。
なお、１回に処理するデータの最大幅が、入力データの最大２７ビットにバイトスタッフ００ｈを３個挿入した５１ビットで、これをバイト単位に切り上げると５６ビットとなるので、この５６ビットを単位として出力を行なう。
【００５４】
フィルビット生成部１５７は、ビットストリーム長保持レジスタ１６０より入力される生成したビットストリームデータのデータ長に基づいて、そのデータ長をバイト単位に切り上げるための端数のビット数を検出し、そのビット数分のフィルビットを生成して入力符号長保持レジスタ１５８に出力する。
【００５５】
入力符号長保持レジスタ１５８は、可変長符号算出部１３１より入力される可変長符号化データ長および付加ビットデータ長、後述するフィルビット生成部１５７より入力されるフィルビット長およびマーカ長（１６ビット）に基づいて、新たに入力され第１のレジスタ１５１に記憶される、可変長符号化データと付加ビットデータまたはフィルビットとマーカのいずれかの組み合わせのデータ長を算出し、第１のレジスタ１５１および結合データ長生成部１５９に出力する。いずれの組み合わせのデータが入力されるかは、外部より入力あれるセレクト信号より検出する。
【００５６】
結合データ長生成部１５９は、入力符号長保持レジスタ１５８より入力される新たに入力されたデータのデータ長と、ビットストリーム長保持レジスタ１６０より入力されたフィードバックした残りのデータのデータ長とに基づいて、結合部１５２で結合して得られたデータのデータ長を算出し、結合部１５２、バイトスタッフ挿入部１５４およびビットストリーム長保持レジスタ１６０に出力する。
【００５７】
ビットストリーム長保持レジスタ１６０は、結合データ長生成部１５９より入力される結合されたデータのデータ長と、バイトスタッフ挿入部１５４で挿入されたバイトスタッフ００ｈのデータ長に基づいて、生成したビットストリームデータのデータ長を検出し記憶する。記憶したビットストリームのデータ長は、フィルビット生成部１５７および結合データ長生成部１５９により参照される。
また、そのデータ長が５６ビット以上だった場合には、出力データ生成部１４１より有効なデータが出力される旨の有効フラグを生成し出力する。
【００５８】
次に、ビットストリーム生成部１３３の動作について説明する。
可変長符号算出部１３１において生成された可変長符号化データ、付加ビットデータおよび各データ長のデータは、ビットストリーム生成部１３３の出力データ生成部１４１に入力され、第１のレジスタ１５１に記憶されることにより可変長符号化データと付加ビットデータが結合され、さらに結合部１５２において、図６に示すように既に入力されたデータと結合される。
結合部１５２で結合されたデータは、図８に構成を示したようなバイトスタッフ挿入部１５４において、値がＦＦｈとなっているバイトが検出され、その直後にバイトスタッフ００ｈが挿入され、第３のレジスタ１５５に記憶される。
【００５９】
また、マーカ発生部１２２よりマーカが生成された場合には、ビットストリーム生成部１３３の出力データ生成部１４１において、フィルビット生成部１５７で生成されたフィルビットと組み合わされて、同じく結合部１５２において既に入力されたデータと結合される。
この場合は、バイトスタッフ挿入部１５４においてバイトスタッフ００ｈの挿入は行なわれず、そのまま第３のレジスタ１５５に記憶される。
【００６０】
そして、第３のレジスタ１５５に記憶されているデータが５６ビット以上であれば、図９に示すように、ＭＳＢ側の５６ビットがセレクタ１５６で選択されて出力データ生成部１４１より出力され、ＦＩＦＯバッファ１４２に一旦記憶される。
また、データが５６ビットに満たなかった場合、および、５６ビットを抽出した残りのビットは、結合部１５２にフィードバックされて次の入力データと結合される。
ＦＩＦＯバッファ１４２に記憶されたデータは、データ出力部１４３により順次読み出され、８ビットずつのデータに分けられて、所定の形式で出力される。
【００６１】
このように、本実施の形態のＪＰＥＧ処理部１０９においては、可変長符号算出部１３１で可変長符号化されて得られた可変長符号化データおよび付加ビットデータに、適切にマーカを付加し、また値がＦＦｈであるデータに対して適切にバイトスタッフを付加して、ＪＰＥＧデータストリームを適切に生成することができる。
その結果、撮像した画像をＪＰＥＧ方式により圧縮符号化した信号として得られるカメラシステム１００を提供することができる。
【００６２】
第２の実施の形態
本発明に係る第２の実施の形態について、図１０〜図１６を参照して説明する。
前述した第１の実施の形態のカメラシステムにおいては、ビットストリーム生成部１３３の構成が複雑であり、より簡略化したいという要望がある。そこで、ビットストリーム生成部の構成をより簡単にしたカメラシステムについて、本発明に係る第２の実施の形態として説明する。
【００６３】
本実施の形態のカメラシステムの全体の構成および動作、そのＪＰＥＧ処理部の内部構成および動作について、および、その可変長符号化部の構成などは、図１〜図３を参照して前述した第１の実施の形態のカメラシステム１００と同じなので、その説明は省略する。
以後、本実施の形態の特徴である、可変長符号化部１２３のビットストリーム生成部１３３ｂについて説明する。
【００６４】
まず、そのビットストリーム生成部１３３ｂの構成について図１０〜図１５を参照して説明する。
図１０は、そのビットストリーム生成部１３３ｂの構成を示すブロック図である。
ビットストリーム生成部１３３ｂは、出力データ生成部２４１、ＦＩＦＯバッファ２４２およびデータ出力部２４３を有する。
【００６５】
出力データ生成部２４１は、可変長符号算出部１３１より入力される可変長データである可変長符号化データおよび付加ビットデータを、同じく可変長符号算出部１３１より入力される可変長符号化データ長データおよび付加ビットデータ長データを参照して順に結合し、さらに、マーカ発生部１２２より適宜入力されるマーカを挿入して、３２ビットのデータストリームを生成する。
この時、符号化された圧縮ビットにＦＦｈで表されるバイトが出現した場合にマーカと区別するためのバイトスタッフ００ｈの挿入は行なわず、データのＦＦｈとマーカのＦＦｈとを区別するために、４ビットのマーカ位置情報を生成する。
そして、この４ビットのマーカ位置情報を３２ビットのデータストリームの上位に付加して３６ビットのデータを生成し、ＦＩＦＯバッファ２４２に出力する。
【００６６】
なおその際、出力データ生成部２４１は、有効なデータが出力されているか否かを示す有効フラグを生成し、同じくＦＩＦＯバッファ２４２に出力する。
また、丁度バイトの区切りとなる位置に配置するためのフィルビットの挿入は、第１の実施の形態の出力データ生成部１４１と同様に行なう。
また、可変長符号化データと付加ビットデータの組み合わせ、あるいは、フィルビットとマーカの組み合わせのいずれを処理するかは、外部より入力するセレクト信号に基づいて選択される。
【００６７】
出力データ生成部２４１の構成について、図１１を参照してさらに詳細に説明する。
図１１は、出力データ生成部２４１の構成を示すブロック図である。
出力データ生成部２４１は、第１のレジスタ２５１、結合部２５２、第２のレジスタ２５３、セレクタ２５４、マージ部２５５、フィルビット生成部２５６、入力符号長保持レジスタ２５７、結合データ長生成部２５８、ビットストリーム長保持レジスタ２５９およびマーカ位置情報２６０を有する。
【００６８】
第１のレジスタ２５１は、可変長符号算出部１３１より入力される可変長符号化データおよび付加ビットデータ、マーカ発生部１２２より入力されるマーカ、および、後述するフィルビット生成部２５６より入力されるフィルビットを一時的に記憶し、結合部２５２に出力する。
第１のレジスタ２５１は、外部より入力されるセレクト信号に基づいて、可変長符号化データと付加ビットデータ、あるいは、フィルビットとマーカの各組み合わせのいずれかを記憶する。
第１のレジスタ２５１の記憶容量は、第１の実施の形態の第１のレジスタ１５１と同様に２７ビットあればよい。
【００６９】
結合部２５２は、第１のレジスタ２５１より読み出した新たに入力されたデータと、既に入力されて出力データ生成部２４１から出力されずにフィードバックされた残りのデータとを結合し、第２のレジスタ２５３に出力する。
具体的には、結合部２５２は、結合データ長生成部２５８から入力される結合データ長に基づいて、フィードバックされたデータをＭＳＢ側にシフトし、入力されたデータをそのシフトしたフィードバックされたデータに連なる位置にシフトし、それらのデータの論理和（ＯＲ）を求めることにより２つのデータを結合する。
【００７０】
また結合部２５２は、マーカを結合した場合に、その位置を示す情報をマーカ位置情報２６０に出力する。
なお、後述するように出力データ生成部２４１からのデータ出力の単位は３２ビットなので、フィードバックされる残りのデータは最大３１ビットのデータであり、第１のレジスタ２５１から入力されるデータが最大２７ビットなので、結合されたデータは最大５８ビットとなる。
【００７１】
第２のレジスタ２５３は、結合部２５２で結合された最大５８ビットのデータを一旦記憶し、要求に応じて順次セレクタ２５４に出力する。
【００７２】
セレクタ２５４は、第２のレジスタ２５３に記憶されているデータを読み出し、これが３２ビット以上の場合には、ＭＳＢ側の３２５６ビットを読み出し、マージ部２５５に出力する。残ったデータは、結合部２５２にフィードバックする。第２のレジスタ２５３に記憶されているデータが３２ビットに達しなかった場合には、全ビットを結合部１５２にフィードバックする。
なお、１回に処理するデータが最大２７ビットで、これをバイト単位に切り上げると３２ビットとなるので、この３２ビットを単位として出力を行なう。
【００７３】
マージ部２５５は、セレクタ２５４において選択されて入力される３２ビットのデータの上位に、マーカ位置情報２６０より入力される４ビットのマーカ位置情報をマージし、３６ビットのデータを生成してＦＩＦＯバッファ２４２に出力する。
【００７４】
フィルビット生成部２５６は、ビットストリーム長保持レジスタ２５９より入力される生成したビットストリームデータのデータ長に基づいて、そのデータ長をバイト単位に切り上げるための端数のビット数を検出し、そのビット数分のフィルビットを生成して入力符号長保持レジスタ２５７に出力する。
【００７５】
入力符号長保持レジスタ２５７は、可変長符号算出部１３１より入力される可変長符号化データ長および付加ビットデータ長、後述するフィルビット生成部２５６より入力されるフィルビット長およびマーカ長（１６ビット）に基づいて、新たに入力され第１のレジスタ２５１に記憶される、可変長符号化データと付加ビットデータまたはフィルビットとマーカのいずれかの組み合わせのデータ長を算出し、第１のレジスタ２５１および結合データ長生成部２５８に出力する。いずれの組み合わせのデータが入力されるかは、外部より入力あれるセレクト信号より検出する。
【００７６】
結合データ長生成部２５８は、入力符号長保持レジスタ２５７より入力される新たに入力されたデータのデータ長と、ビットストリーム長保持レジスタ２５９より入力されたフィードバックした残りのデータのデータ長とに基づいて、結合部２５２で結合して得られたデータのデータ長を算出し、結合部２５２およびビットストリーム長保持レジスタ２５９に出力する。
【００７７】
ビットストリーム長保持レジスタ２５９は、結合データ長生成部２５８より入力される結合されたデータのデータ長を記憶する。記憶したビットストリームのデータ長は、フィルビット生成部２５６および結合データ長生成部２５８により参照される。
また、そのデータ長が３２ビット以上だった場合には、出力データ生成部２４１より有効なデータが出力される旨の有効フラグを生成し出力する。
【００７８】
マーカ位置情報２６０は、結合部２５２より入力されるマーカを結合した際のその位置の情報に基づいて、４ビットのマーカ位置情報を生成し、マージ部２５５に出力する。
マーカ位置情報は、図１２に示すような４ビットのデータであり、上位２ビットでマーカの種類を、下位２ビットでマーカの位置を示す。本実施の形態においては、データストリーム中に挿入されるマーカとしてＥＯＩとリスタートマーカ（ＲＳＴｍ）の２種類のマーカを考慮し、ビット４（ＭＳＢ）にＥＯＩの有無を、ビット３にＲＳＴｍの有無を記載する。またマーカの位置は、図１３に示すように、４バイト（３２ビット）の中の連続する２バイトに２ビットのコードを割り当てて記載する。すなわち、マーカがビット３１〜１６の位置にあれば００ｂ、マーカがビット２３〜８の位置にあれば０１ｂ、マーカがビット１５〜０の位置にあれば１０ｂ、マーカの上位のみがビット７〜０にあれば１１ｂを位置情報として記載する。
以上が出力データ生成部２４１の構成の説明である。
【００７９】
ビットストリーム生成部１３３ｂのＦＩＦＯバッファ２４２は、出力データ生成部２４１より出力される３６ビットごとのデータを一時的に記憶するメモリである。ＦＩＦＯバッファ２４２は、同じく出力データ生成部２４１より入力される有効フラグが有効な時に、出力データ生成部２４１より出力されるデータを記憶する。
記憶されたデータは、データ出力部２４３により順に読み出される。そのためＦＩＦＯバッファ２４２は、新たな有効なデータが記録されている期間、データ出力部２４３に対して有効フラグを出力する。
【００８０】
データ出力部２４３は、ＦＩＦＯバッファ２４２より順にデータを読み出し、バイトスタッフ００ｈの挿入を行い、８ビットごとのデータ列を生成し、外部の転送仕様に合わせて順に出力する。
【００８１】
データ出力部２４３の構成および動作について、図１４〜図１６を参照してさらに詳細に説明する。
図１４は、データ出力部２４３の構成を示すブロック図である。
データ出力部２４３は、レジスタ２７１、第１〜第４のＦＦ検出部２７３-1〜２７３-4、比較部２７４、セレクト信号生成部２７５、スイッチ２７６を有する。
【００８２】
レジスタ２７１は、ＦＩＦＯバッファ２４２より読み込んだ３６ビットのデータを記憶する。そして、最上位のマーカ位置情報は比較部２７４より参照可能に出力され、３２ビットのデータ部分は、ＭＳＢ側よりバイトごとに第１〜第４のＦＦ検出部２７３-1〜２７３-4、および、スイッチ２７６の端子０〜３より参照可能に出力される。
【００８３】
第１〜第４のＦＦ検出部２７３-1〜２７３-4は、各々、レジスタ２７１に記憶されているデータの各バイトの値がＦＦｈであるか否かを検出し、検出結果を比較部２７４に出力する。
【００８４】
比較部２７４は、第１〜第４のＦＦ検出部２７３-1〜２７３-4から入力されるＦＦｈの検出結果と、レジスタ２７１より入力されるマーカ位置情報とを比較して、マーカ以外のＦＦｈが存在するか否かを判断し、その判断結果およびそのマーカ以外のＦＦｈの位置を示す情報をセレクト信号生成部２７５に出力する。
【００８５】
セレクト信号生成部２７５は、ＦＩＦＯバッファ２４２より読み込んだデータが有効であることを示す有効フラグが入力されている間、比較部２７４より入力されるマーカ以外のＦＦｈの検出結果に基づいて、出力するバイトを選択するためのセレクト信号を生成し、スイッチ２７６に印加する。
セレクト信号生成部２７５は、マーカ以外のＦＦｈが存在しない場合は、レジスタ２７１に記憶されているデータの各バイトをＭＳＢ側より順に選択するような、２ビットのカウンタが順にカウントアップするようなセレクト信号を生成する。そして、マーカ以外のＦＦｈが存在した場合には、そのカウントアップを１サイクル中止して、３番目のビットに１をたてる。セレクト信号生成部２７５は、このような３ビットのセレクト信号を生成する。
【００８６】
スイッチ２７６は、セレクト信号生成部２７５より入力されるセレクト信号に基づいて、レジスタ２７１に記憶されているデータの各バイト、あるいは、バイトスタッフ００ｈのいずれかのデータを選択し、ビットストリーム生成部１３３ｂからの出力信号として出力する。
この時のセレクト信号と、選択され出力されるビットとの関係を図１５に示す。なお、３’ｂｘｘｘは、３ビットのバイナリデータを示す。
以上が、データ出力部２４３の構成の説明である。
【００８７】
次に、ビットストリーム生成部１３３ｂの動作について、図１６を参照して説明する。
可変長符号算出部１３１において生成された可変長符号化データ、付加ビットデータおよび各データ長のデータは、ビットストリーム生成部１３３ｂの出力データ生成部２４１に入力され、第１のレジスタ２５１に記憶されることにより可変長符号化データと付加ビットデータが結合され、さらに結合部２５２において、既に入力されたデータと結合される。
また、マーカ発生部１２２よりマーカが生成された場合には、ビットストリーム生成部１３３ｂの出力データ生成部２４１において、フィルビット生成部２５６で生成されたフィルビットと組み合わされて、同じく結合部２５２において既に入力されたデータと結合される。
【００８８】
この時、マーカ位置情報２６０において結合したデータよりマーカが検出されて、その位置を示す図１２および図１３に示すような４ビットのマーカ位置情報が生成される。
そして、結合され第２のレジスタ２５３に記憶されているデータが３２ビット以上であれば、ＭＳＢ側の３２ビットがセレクタ２５４で選択され、マージ部２５５においてマーカ位置情報２６０で生成されたマーカ位置情報とマージされて３６ビットのデータとされて出力され、ＦＩＦＯバッファ２４２に一旦記憶される。
また、データが３２ビットに満たなかった場合、および、３２ビットを抽出した残りのビットは、結合部２５２にフィードバックされて次の入力データと結合される。
【００８９】
ＦＩＦＯバッファ２４２に記憶された３６ビットのデータは、データ出力部２４３に順に読み込まれ、バイトスタッフ００ｈが付加されて８ビットずつ順に出力される。
このデータ出力部２４３の動作については、図１６を参照して具体的に説明する。
今、図１６（Ａ）に示すようなデータがレジスタ２７１に記憶された場合、第１〜第４のＦＦ検出部２７３-1〜２７３-4において各々データの各バイトがＦＦｈか否かが検出される。
そして比較部２７４において、データの出力周波数に応じた図１６（Ｂ）に示すような各サイクルごとに、順に、ＭＳＢ側より各バイトのＦＦｈ検出結果がチェックされる。その結果、図１６（Ｃ）に示すように、たとえば２番目のバイトがＦＦｈであることが検出される。
【００９０】
比較部２７４が検出結果を順次セレクト信号生成部２７５に出力すると、これに基づいてセレクト信号生成部２７５は、セレクト信号を生成する。
基本的には、ＬＳＢ側の２ビットが図１６（Ｅ）に示すように、順に０〜３の値をカウントアップし、ＭＳＢ側の１ビットは０であるような、図１６（Ｆ）に示すようなセレクト信号を生成する。そして特にＦＦｈが検出された場合には、ＬＳＢ側２ビットのカウントアップを１サイクル停止し、図１６（Ｄ）に示すように、次のサイクルでＭＳＢ側の１ビットを１にする制御を行なう。
これにより、図１６（Ｇ）に示すように、レジスタ２７１に記憶されているデータがＭＳＢ側より順バイトごとに選択され、値がＦＦｈである２バイト目の後にバイトスタッフ００ｈが選択される。
そしてその結果、図１６（Ｉ）に示すようなデータがデータ出力部２４３より出力される。
【００９１】
このように、第２の実施の形態のビットストリーム生成部１３３ｂにおいても、可変長符号化されて得られた可変長符号化データおよび付加ビットデータを適切にパックし、適宜マーカを付加し、また値がＦＦｈであるデータに対して適切にバイトスタッフを付加することができる。その結果、ＪＰＥＧ処理部１０９は、ＪＰＥＧデータストリームを適切に生成することができ、撮像した画像をＪＰＥＧ方式により圧縮符号化した信号として得られるカメラシステム１００を提供することができる。
【００９２】
そして特に第２の実施の形態のビットストリーム生成部１３３ｂにおいては、バイトスタッフ００ｈを出力データ生成部１４１では付加せずに、出力直前のデータ出力部１４３において付加している。したがって、その間の出力データ生成部１４１内部およびＦＩＦＯバッファ１４２のバス幅を小さくすることができ、ＦＩＦＯバッファ１４２などの各記憶素子の記憶容量を小さくすることができる。
その結果、回路規模を大幅に縮小することができる。特に、このような回路をＬＳＩ上に構成しようとした場合には、非常に有効である。
【００９３】
変形例
なお、本発明は本実施の形態に限られるものではなく、種々の改変が可能である。
たとえば、図１に示したカメラシステム、図２に示したＪＰＥＧ処理部および図３に示した可変長符号化部の構成は、各々これに限られるものではなく、任意の構成でよい。
また、本発明に係る図４および図１０に示したビットストリーム生成部の構成、図５および図１１に示した出力データ生成部の構成、図８に示したバイトスタッフ挿入部の構成および図１４に示したデータ出力部の構成なども、任意に変更してよい。
【００９４】
また、本発明は、ＪＰＥＧ符号化以外の任意の符号化データや、符号化の結果ではない任意の可変長データに対しても適用可能である。
また、本発明は、ＪＰＥＧ符号化、画像符号化に限定されるものではない。また、カメラシステムにのみ限定されるものではない。可変長符号化処理を含む任意の信号処理装置に対して適用可能である。
【００９５】
【発明の効果】
このように本発明によれば、バイトスタッフの挿入などの処理を効率よく行なうことにより、より小さい回路規模で、簡単な構成、制御により、可変長データの列から所定のビット幅の固定長データの列を生成するデータストリーム生成装置とその方法を提供することができる。
また、バイトスタッフの挿入などの処理を効率よく行なうことにより、より小さい回路規模で、簡単な構成、制御により、所望のデータを可変長符号化し効率よく所定のデータストリームを生成する可変長符号化データストリーム生成装置とその方法を提供することができる。
さらに、所望の画像を撮影し、撮影した画像データを可変長符号化するカメラシステムであって、特に、より小さい回路規模で、簡単な構成、制御により、撮影した画像データを可変長符号化し、効率よく画像データストリームを生成するカメラシステムを提供することができる。
【図面の簡単な説明】
【図１】図１は、本発明に係る第１の実施の形態のカメラシステムの構成を示すブロック図である。
【図２】図２は、図１に示したカメラシステムのＪＰＥＧ処理部の構成を示すブロック図である。
【図３】図３は、図２に示したＪＰＥＧ処理部の可変長符号化部の構成を示すブロック図である。
【図４】図４は、図３に示した可変長符号化部のビットストリーム生成部の構成を示すブロック図である。
【図５】図５は、図４に示したビットストリーム生成部の出力データ生成部の構成を示すブロック図である。
【図６】図６は、図５に示した出力データ生成部の結合部の動作を説明するための図である。
【図７】図７は、図５に示した出力データ生成部のバイトスタッフ挿入部における最大のバイトスタッフ挿入量を説明するための図である。
【図８】図８は、図５に示した出力データ生成部のバイトスタッフ挿入部の構成を示すブロック図である。
【図９】図９は、図５に示した出力データ生成部のセレクタの動作を説明するための図である。
【図１０】図１０は、本発明に係る第２の実施の形態のビットストリーム生成部の構成を示すブロック図である。
【図１１】図１１は、図１０に示したビットストリーム生成部の出力データ生成部の構成を示すブロック図である。
【図１２】図１２は、マーカ位置情報の構成を示す図である。
【図１３】図１３は、図１２に示したマーカ位置情報のマーカの位置を示すコードを説明するための図である。
【図１４】図１４は、図１０に示したビットストリーム生成部のデータ出力部の構成を示すブロック図である。
【図１５】図１５は、図１４に示したデータ出力部のセレクト信号生成部で生成されるセレクト信号を説明するための図である。
【図１６】図１６は、図１４に示したデータ出力部の動作を説明するための図である。
【符号の説明】
１００…カメラシステム、１０１…光学系、１０２…ＣＣＤ、１０３…Ａ／Ｄ変換部、１０４…画像圧縮部、１０５…ＣＣＤ信号処理部、１０６…バス、１０７…バッファ、１０８…ＳＤＲＡＭＩ／Ｆ、１０９…ＪＰＥＧ処理部、１１０…クロック生成部、１１１…システムコントローラ、１１２…ＣＰＵＩ／Ｆ、１１３…メモリコントローラ、１１４…ＳＤＲＡＭ、１１５…ＣＰＵ、１２１…ＤＣＴ・量子化部、１２３…可変長符号化部、１２４…ＪＰＥＧ制御レジスタ、１２５…ＪＰＥＧコントローラ、１３１…可変長符号算出部、１３２…可変長符号テーブル、１３３…ビットストリーム生成部、１４１…出力データ生成部、１４２…ＦＩＦＯバッファ、１４３…データ出力部、１５１…第１のレジスタ、１５２…結合部、１５３…第２のレジスタ、１５４…バイトスタッフ挿入部、１５５…第３のレジスタ、１５６…セレクタ、１５７…フィルビット生成部、１５８…入力符号長保持レジスタ、１５９…結合データ長生成部、１６０…ビットストリーム長保持レジスタ、１７１…ＦＦ検出部、１７２…セレクト信号生成部、１７３…スイッチ、２４１…出力データ生成部、２４２…ＦＩＦＯバッファ、２４３…データ出力部、２５１…第１のレジスタ、２５２…結合部、２５３…第２のレジスタ、２５４…セレクタ、２５５…マージ部、２５６…フィルビット生成部、２５７…入力符号長保持レジスタ、２５８…結合データ長生成部、２５９…ビットストリーム長保持レジスタ、２６０…マーカ位置情報、２７１…レジスタ、２７３…ＦＦ検出部、２７４…比較部、２７５…セレクト信号生成部、２７６…スイッチ
【図１】
0004329238.tif 000002
【図２】
0004329238.tif 000003
【図３】
0004329238.tif 000004
【図４】
0004329238.tif 000005
【図５】
0004329238.tif 000006
【図６】
0004329238.tif 000007
【図７】
0004329238.tif 000008
【図８】
0004329238.tif 000009
【図９】
0004329238.tif 000010
【図１０】
0004329238.tif 000011
【図１１】
0004329238.tif 000012
【図１２】
0004329238.tif 000013
【図１３】
0004329238.tif 000014
【図１４】
0004329238.tif 000015
【図１５】
0004329238.tif 000016
【図１６】
0004329238.tif 000017