(57)【特許請求の範囲】
【請求項１】
ビットストリーム内で多数のビットに付随し、多数のビットに対して唯一のビットパターンを含むビットストリーム信号形式を検出するための装置において、
多数ビットの一番目のビットグループを受信する入力端を有する第１読出し／書込み貯蔵装置と、
貯蔵装置に連結され、多数ビットの一番目のビットグループが所定のビットパターンを含むか否かを決定し、決定状態を示すステータス(status)信号を出力する比較器ユニットと、
比較器ユニット出力信号及び第１読出し／書込み貯蔵装置に連結される制御モジュールとを含んでなり、
前記比較器ユニットの所定のビットパターンは唯一のビットパターンを含むビットストリーム信号形式に対応させ、前記制御モジュールは比較器ユニットのステータス信号が多数ビットの一番目のビットグループに所定のビットパターンが含まれることを示すと、第１読出し／書込み貯蔵装置内の多数ビットの一番目のビットグループを多数ビットの２番目のビットグループで置き換える動作を開始することを特徴とし、且つ、
多数ビットの３番目のビットグループを受信する入力端と、
第１読出し／書込み貯蔵装置の入力端に連結される出力端を有する第２読出し／書込み貯蔵装置と、
第２読出し／書込み貯蔵装置及び比較器ユニットに連結され、ビットストリーム信号形式の属性を事前検出することができ、ビットストリーム信号形式の属性が事前検出されたか否かを比較器ユニットに知らせるための事前検出出力信号を有するビットストリーム信号形式事前検出ロジックをさらに備え、
多数ビットの３番目のビットグループがビットストリーム信号形式の属性を含まなければ、多数ビットの２番目のビットグループは多数ビットの３番目のビットグループと同一であると見なし、多数ビットの３番目のビットグループがビットストリーム信号形式の属性を含むと、多数ビットの２番目のビットグループは多数ビットの１番目のビットグループの定形部及び多数ビットの３番目のビットグループの定形部と同一であると見なすことを特徴とするビットストリーム信号形式検出装置。
【請求項２】
前記ビットストリーム信号形式は開始コードであることを特徴とする請求項１記載のビットストリーム信号形式検出装置。
【請求項３】
前記ビットストリーム信号形式はゼロ充填ビットグループであることを特徴とする請求項１記載のビットストリーム信号形式検出装置。
【請求項４】
前記ビットストリームはＭＰＥＧ−１、ＭＰＥＧ−２、Ｈ.２６１或いはＨ.２６３からなるグループからの圧縮標準によって圧縮されることを特徴とする請求項１記載のビットストリーム信号形式検出装置。
【請求項５】
前記制御モジュールは制御状態マシンであることを特徴とする請求項１記載のビットストリーム信号形式検出装置。
【請求項６】
前記第１読出し／書込み貯蔵装置、前記比較器ユニット、前記制御モジュールを含むマルチメディア信号処理器を備えることを特徴とする請求項１記載のビットストリーム信号形式検出装置。
【請求項７】
ビットストリーム内で多数のビットに付随し、多数のビットに対して唯一のビットパターンを含むビットストリーム信号形式を検出する方法において、
多数ビットの１番目のビットグループを受信する段階と、
多数ビットの１番目のビットグループを貯蔵する段階と、
唯一のビットパターンを含むビットストリーム信号形式に一致する所定のビットパターンと多数ビットの１番目のビットグループを比較する段階と、
多数ビットの１番目のビットグループが所定のビットパターンに一致するか否かを決定する段階と、
受信された多数ビットの１番目のビットグループが所定のビットパターンに一致しなければ、多数ビットの１番目のビットグループを多数ビットの２番目のビットグループで置き換える段階とを含むことを特徴とし、且つ、
多数ビットの３番目のビットグループを受信する段階と、
ビットストリーム信号形式の属性を事前検出するために多数ビットの３番目のビットグループを処理する段階と、
多数ビットの３番目のビットグループがビットストリーム信号形式の属性を含むか否かを示す段階とをさらに備え、
多数ビットの３番目のビットグループがビットストリーム信号形式の属性を含まなければ、多数ビットの２番目のビットグループは多数ビットの３番目のビットグループと同一であると見なし、多数ビットの３番目のビットグループがビットストリーム信号形式の属性を含むと、多数ビットの２番目のビットグループは多数ビットの１番目のビットグループの定形部及び多数ビットの３番目のビットグループの定形部と同一であると見なすことを特徴とするビットストリーム信号形式検出方法。
【請求項８】
前記ビットストリーム信号形式は開始コードであることを特徴とする請求項７記載のビットストリーム信号形式検出方法。
【請求項９】
ディジタル信号処理器コアを有するマルチメディア信号処理器と、
ビットストリーム内で多数のビットに付随し、多数のビットに対して唯一のビットパターンを含む開始コードを有するビットストリームを受信するためにマルチメディア信号処理器に連結される入力回路とを含んでなり、
前記マルチメディア信号処理器はビットストリームプロセッサをさらに備え、
前記ビットストリームプロセッサは、
ビットストリーム内で多数ビットの１番目のビットグループを受信するための第１読出し／書込み貯蔵装置と、
ビットストリーム内で多数ビットの２番目のビットグループを受信するための第２読出し／書込み貯蔵装置と、
第２読出し／書込み貯蔵装置に連結され、開始コード形式の事前検出が可能であり、開始コード形式の検出の可否を示す事前検出出力信号を有する開始コード形式事前検出モジュールと、
第１読出し／書込み貯蔵装置及び開始コード形式事前検出モジュールに連結され、自体に貯蔵された所定のビットパターンを有し、第１読出し／書込み貯蔵装置にある多数ビットの一番目のビットグループが開始コードの唯一のビットパターンに対応する所定のビットパターンと一致するか否かを決定する回路を有し、一致するかの可否を示すステータス出力信号である第１出力信号を有し、多数ビットの１番目のビットグループが代替動作を完了するか事前検出出力信号が開始コード形式の未検出を示すか、或いは多数ビットの１番目のビットグループの変更された代替動作を表すか事前検出信号が開始コード形式の検出を示すかの可否を表示する第２出力信号を更に有する比較器ユニットと、
比較器ユニットの前記第１出力信号を受信するように比較器ユニットに連結され、もし前記第１出力信号が所定のビットパターンと開始コードの唯一のビットパターンとの間の不一致を示す場合や、もし前記第１出力信号が不一致を示し、前記第２出力信号が完全な代替動作を示しながら第１読出し／書込み貯蔵装置にある多数ビットの１番目のビットグループを多数ビットの２番目のビットグループの定形部で置き換える修正された代替動作を開始する場合や、もし前記第１出力信号が不一致を示し、前記第２出力信号が修正された代替動作を表す場合のいずれも、第１読出し／書込み貯蔵装置にある多数ビットの一番目のビットグループを多数ビットの２番目のビットグループで置き換える動作を開始する制御状態マシンとを含むことを特徴とするマルチメディアマルチプロセッサシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は信号処理に係り、さらに詳しくは多数のフォーマット標準の中でいずれかにも符合するようにフォーマットされるビットストリーム内における開始コードのような信号形式の検出に関する。
【０００２】
【従来の技術】
広帯域幅伝送性能の出現と高速処理応用法及び装備の実現で膨大な量の情報を随伴するデータ伝送は有り触れたことになりつつある。大容量のデータ伝送をなす駆動力中の一つはマルチメディア使用の増加である。たとえ、プロセッサの計算力は急速でひっきりなしに向上してきたが、さらに多くのデータ量の遂行及び表現が要求されるマルチメディア分野で活力のある新しい応用法の開発に起因してさらに高い処理能力と計算効率に対する要求は軽減していない。伝送、受信、処理限界などに関連する情報量を調節するために情報の圧縮及び復原目的の多くの圧縮標準が広範囲に渡って用いられている。
【０００３】
ビデオデータ用として広く通用する圧縮及び復原標準は、ＩＳＯ／ＩＥＣ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｏｒｇａｎｉｚａｔｉｏｎ  ｆｏｒ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ／Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｅｌｅｃｔｒｏｔｅｃｈｎｉｃａｌ  Ｃｏｍｍｉｓｓｉｏｎ）ＭＰＥＧ（Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）のＭＰＥＧ−１及びＭＰＥＧ−２標準と、ＩＴＵ−Ｔ（Ｕｎｉｔｅｄ  Ｎａｔｉｏｎ’ｓ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｕｎｉｏｎ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ  Ｂｕｒｅａｕ）のＨ．２６１及びＨ．２６３標準である。
【０００４】
【発明が解決しようとする課題】
ＭＰＥＧ−１，ＭＰＥＧ−２，Ｈ．２６１及びＨ．２６３標準は適切な圧縮率を達成するのに役に立つ可変長コード（ＶＬＣ）ワードを広く用いる。ＶＬＣワードは通常ハフマン（Ｈｕｆｆｍａｎ）表或いはエントロピーコード表と称されるテーブルで特定される。
ＭＰＥＧ−１，ＭＰＥＧ−２，Ｈ．２６１及びＨ．２６３標準は可変長ビットストリームが連続的な開始コードの間に介在することを特徴とする。従って、各開始コードの正確な位置は予測できない。開始コードの位置を探し出す方法の一つは開始コードが識別される時までビットストリームを１ビットずつ調査することを伴う。
【０００５】
しかし、コーデック（ｃｏｄｅｃ：ｃｏｍｐｒｅｓｓｉｏｎ／ｄｅｃｏｍｐｒｅｓｓｉｏｎ）装置の多くの処理量要求でビットストリームを１ビットずつ調査することは一般的に非能率的である。
しかも、実データが電話線と公共の交換網を通じて伝送される画像会議などの応用においては受信ビットストリーム内に曖昧なデータが含まれる可能性が極めて高い。効率的なエラー処理をすることが有利であるが、実現し難い。
【０００６】
【課題を解決するための手段】
本発明は一実施形態として、ビットストリーム内で多数のビットに付随し、多数のビットに対して唯一のビットパターンを含むビットストリーム信号形式を検出するための装置は、多数ビットの一番目のビットグループを受信する入力端を有する第１読出し／書込み貯蔵装置と、また、該貯蔵装置に連結され、多数ビットの一番目のビットグループにアクセスし、所定のビットパターンにアクセスし、多数ビットの一番目のビットグループにアクセスして多数ビットの一番目のビットグループが所定のビットパターンを含むか否かを決定し、決定状態を示すステータス(status)信号を有することができる比較器ユニットと、該比較器ユニット出力信号及び第１読出し／書込み貯蔵装置に連結される制御モジュールとを含んでなり、前記比較器ユニットの所定のビットパターンは唯一のビットパターンを含むビットストリーム信号形式に対応させ、前記制御モジュールは比較器ユニットのステータス信号が多数ビットの一番目のビットグループに所定のビットパターンが含まれることを示すと、第１読出し／書込み貯蔵装置内の多数ビットの一番目のビットグループを多数ビットの２番目のビットグループで置き換える動作を開始することを特徴とし、且つ、多数ビットの３番目のビットグループを受信する入力端と、第１読出し／書込み貯蔵装置の入力端に連結される出力端を有する第２読出し／書込み貯蔵装置と、第２読出し／書込み貯蔵装置及び比較器ユニットに連結され、ビットストリーム信号形式の属性を事前検出することができ、ビットストリーム信号形式の属性が事前検出されたか否かを比較器ユニットに知らせるための事前検出出力信号を有するビットストリーム信号形式事前検出ロジックをさらに備え、多数ビットの３番目のビットグループがビットストリーム信号形式の属性を含まなければ、多数ビットの２番目のビットグループは多数ビットの３番目のビットグループと同一であると見なし、多数ビットの３番目のビットグループがビットストリーム信号形式の属性を含むと、多数ビットの２番目のビットグループは多数ビットの１番目のビットグループの定形部及び多数ビットの３番目のビットグループの定形部と同一であると見なすことを特徴とする。
【０００７】
本発明の他の実施形態として、ビットストリーム内で多数のビットに付随し、多数のビットに対して唯一のビットパターンを含むビットストリーム信号形式を検出する方法は、多数ビットの１番目のビットグループを受信する段階と、多数ビットの１番目のビットグループを貯蔵する段階と、唯一のビットパターンを含むビットストリーム信号形式に一致する所定のビットパターンと多数ビットの１番目のビットグループを比較する段階と、多数ビットの１番目のビットグループが所定のビットパターンに一致するか否かを決定する段階と、受信された多数ビットの１番目のビットグループが所定のビットパターンに一致しなければ、多数ビットの１番目のビットグループを多数ビットの２番目のビットグループで置き換える段階とを含み、且つ、多数ビットの３番目のビットグループを受信する段階と、ビットストリーム信号形式の属性を事前検出するために多数ビットの３番目のビットグループを処理する段階と、多数ビットの３番目のビットグループがビットストリーム信号形式の属性を含むか否かを示す段階とをさらに備え、多数ビットの３番目のビットグループがビットストリーム信号形式の属性を含まなければ、多数ビットの２番目のビットグループは多数ビットの３番目のビットグループと同一であると見なし、多数ビットの３番目のビットグループがビットストリーム信号形式の属性を含むと、多数ビットの２番目のビットグループは多数ビットの１番目のビットグループの定形部及び多数ビットの３番目のビットグループの定形部と同一であると見なすことを特徴とする。
【０００８】
本発明のさらに他の実施形態として、マルチメディアマルチプロセッサシステムは、ディジタル信号処理器コアを有するマルチメディア信号処理器と、ビットストリーム内で多数のビットに付随し、多数のビットに対して唯一のビットパターンを含む開始コードを有するビットストリームを受信するためにマルチメディア信号処理器に連結される入力回路とを含んでなり、前記マルチメディア信号処理器はビットストリームプロセッサをさらに備え、前記ビットストリームプロセッサは、ビットストリーム内で多数ビットの１番目のビットグループを受信するための第１読出し／書込み貯蔵装置と、ビットストリーム内で多数ビットの２番目のビットグループを受信するための第２読出し／書込み貯蔵装置と、第２読出し／書込み貯蔵装置に連結され、開始コード形式の事前検出が可能であり、開始コード形式の検出の可否を示す事前検出出力信号を有する開始コード形式事前検出モジュールと、第１読出し／書込み貯蔵装置及び開始コード形式事前検出モジュールに連結され、自体に貯蔵された所定のビットパターンを有し、第１読出し／書込み貯蔵装置にある多数ビットの一番目のビットグループが開始コードの唯一のビットパターンに対応する所定のビットパターンと一致するか否かを決定する回路を有し、一致するかの可否を示すステータス出力信号である第１出力信号を有し、多数ビットの１番目のビットグループが代替動作を完了するか事前検出出力信号が開始コード形式の未検出を示すか、或いは多数ビットの１番目のビットグループの変更された代替動作を表すか事前検出信号が開始コード形式の検出を示すかの可否を表示する第２出力信号を更に有する比較器ユニットと、比較器ユニットの前記第１出力信号を受信するように比較器ユニットに連結され、もし前記第１出力信号が所定のビットパターンと開始コードの唯一のビットパターンとの間の不一致を示す場合や、もし前記第１出力信号が不一致を示し、前記第２出力信号が完全な代替動作を示しながら第１読出し／書込み貯蔵装置にある多数ビットの１番目のビットグループを多数ビットの２番目のビットグループの定形部で置き換える修正された代替動作を開始する場合や、そしてもし前記第１出力信号が不一致を示し、前記第２出力信号が修正された代替動作を表す場合のいずれも、第１読出し／書込み貯蔵装置にある多数ビットの一番目のビットグループを多数ビットの２番目のビットグループで置き換える動作を開始する制御状態マシンとを含むことを特徴とする。
【０００９】
【発明の実施の形態】
以下、添付図面を参照して本発明の好ましい実施形態を説明する。
図面全体を通して同一部分には同じ符号を付する。
次の資料は三星半導体（株）のマルチメディアプロセッサ（ＭＳＰ）ファミリーのマルチメディア信号処理器２００を第１実施形態として含むマルチメディアマルチプロセッサシステム１００の一般的な概要を提供する。追加的な詳細資料は同時係留中の米国特許出願番号ｘｘ／ｘｘｘ，ｘｘｘ（代理人処理番号Ｍ−４３５４）Ｌ．Ｎｇｕｙｅｎの“Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ  Ｏｐｅｒａｔｉｏｎｓ  ｉｎ  ａ  Ｍｕｌｔｉｍｅｄｉａ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ”、出願番号ｘｘ／ｘｘｘ，ｘｘｘ（代理人処理番号Ｍ−４３５５）Ｌ．Ｎｇｕｙｅｎの“Ｓｉｎｇｌｅ−Ｉｎｓｔｒｕｃｔｉｏｎ−Ｍｕｌｔｉｐｌｅ−Ｄａｔａ  Ｐｒｏｃｅｓｓｉｎｇ  ｉｎ  ａ  Ｍｕｌｔｉｍｅｄｉａ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ”、出願番号ｘｘ／ｘｘｘ，ｘｘｘ（代理人処理番号Ｍ−４３６９）Ｌ．Ｎｇｕｙｅｎ外の“Ｓｉｎｇｌｅ−Ｉｎｓｔｒｕｃｔｉｏｎ−Ｍｕｌｔｉｐｌｅ−Ｄａｔａ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｓｉｎｇ  Ｍｕｌｔｉｐｌｅ  Ｂａｎｋｓ  ｏｆ  Ｖｅｃｔｏｒ  Ｒｅｇｉｓｔｅｒｓ”、出願番号ｘｘ／ｘｘｘ，ｘｘｘ（代理人処理番号Ｍ−４３７０）Ｍ．Ｍｏｈａｍｅｄ外の“Ｓｉｎｇｌｅ−Ｉｎｓｔｒｕｃｔｉｏｎ−Ｍｕｌｔｉｐｌｅ−Ｄａｔａ  Ｐｒｏｃｅｓｓｉｎｇ  Ｗｉｔｈ  Ｃｏｍｂｉｎｅｄ  Ｓｃａｌａｒ／Ｖｅｃｔｏｒ  Ｏｐｅｒａｔｉｏｎｓ”を参照するが、これらの全ては以下で参考事項として全体的に含まれる。
【００１０】
図１を参照すると、上位レベルの概略的なブロック図はホストプロセッサ１０２とマルチメディア信号処理器２００を有するマルチメディアマルチプロセッサシステム１００を示す。典型的なホストポロセッサ１０２はＩＮＴＥＬ社のＰｅｎｔｉｕｍＴＭ或いはＰｅｎｔｉｕｍ  ＰｒｏＴＭプロセッサのようなｘ８６プロセッサである。ホストプロセッサ１０２は主にシステムメモリ１０４及びキャッシュ１０５に貯蔵された命令及びデータに基づいてプログラムを行う。
【００１１】
ホストプロセッサ１０２はＰＣチップセット（ｃｈｉｐｓｅｔ）１０７及びシステムバス１０６（例えば、ＰＣＩバス）を通じてマルチメディア信号処理器２００と交信する。マルチメディア信号処理器２００は音響及び電話通信を受信するためのオーディオ及び通信コーデック１０８、画像入力信号を受信するためのビデオＡ／Ｄコンバータ１１０、画像出力信号を伝送するためのビデオＤ／Ａコンバータ１１２、そしてフレームバッファＳＤＲＡＭメモリ１１４などの多様な機能ブロックに接続される。
【００１２】
図２を参照すると、概略的なブロックはマルチメディアマルチプロセッサシステム１００（図１）のマルチメディア信号処理器２００を示す。マルチメディア信号処理器２００はファストバス（ｆａｓｔ  ｂｕｓ：ＦＢＵＳ）２１０を通じて多数のＦＢＵＳ周辺機器、例えば３２ビットＰＣＩバスインタフェース２２２、６４ビットＳＤＲＡＭメモリコントローラ２２６、８チャネルＤＭＡコントローラ２２０、ＡＳＩＣロジックブロック２１６、ホストプロセッサ１０２とフレームバッファＳＤＲＡＭメモリ１１４との間にデータを移動させるためのメモリデータムーバ２２４などに接続されるディジタル信号処理器ＤＳＰコア２０１を有する。
【００１３】
ＰＣＩバスインタフェース２２２はシステムバス１０６に接続され、例えば３３ＭＨｚで作動する。ＡＳＩＣロジックブロック２１６は注文型機能を所望通りに行うための制御ロジックを提供する。ＡＳＩＣロジックブロック２１６は第１実施形態として、多様なアナログコーデック及び注文者特定のＩ／Ｏ装置に接続される１０Ｋゲートを提供する。メモリデータムーバ２２４はホストプロセッサ１０２からマルチメディア信号処理器２００の周辺部のＳＤＲＡＭメモリ１１４までＤＭＡデータを送り出す。
【００１４】
また、ＤＳＰコア２０１はＩ／Ｏバスを通じて８２５４−交換性プログラム可能間隔計時機構（ｃｏｍｐａｔｉｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｉｎｔｅｒｖａｌ  ｔｉｍｅｒ）２２８、１６４５０−交換性ＵＡＲＴシリアルライン（ｃｏｍｐａｔｉｂｌｅ  ＵＡＲＴ  ｓｅｒｉａｌ  ｌｉｎｅ）２３０、８２５９−交換性プログラム可能割り込み制御器（ｃｏｍｐａｔｉｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｉｎｔｅｒｒｕｐｔ  ｃｏｎｔｒｏｌｌｅｒ）２３２、そしてビデオビットストリームを処理するためのビットストリームプロセッサ２３４などを含んだ多数のＩ／Ｏバス装置に接続される。ビットストリームプロセッサ２３４についてのより詳しい情報のために米国特許出願番号ｘｘ／ｘｘｘ，ｘｘｘ（代理人処理番号Ｍ−４３６８）Ｃ．Ｒｅａｄｅｒの“Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｐｒｏｃｅｓｓｉｎｇ  Ｖｉｄｅｏ  Ｄａｔａ”を参照するところ、これらは全て以下で参考事項として全体的に含まれる。
特に、米国特許出願番号ｘｘ／ｘｘｘ，ｘｘｘ（代理人処理番号Ｍ−４３６８）Ｃ．Ｒｅａｄｅｒの“Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｐｒｏｃｅｓｓｉｎｇ  Ｖｉｄｅｏ  Ｄａｔａ”のうち、好ましい実施形態の説明、付録Ａの第１０章及び付録Ｂを参照する。
【００１５】
ＤＳＰコア２０１は、マルチメディア信号処理器２００、コプロセッサ（ｃｏｐｒｏｃｅｓｓｏｒ）２０４、キャッシュサブシステム２０８、ファストバスＦＢＵＳ２１０、Ｉ／Ｏバス２１２の計算エンジンである。第１実施形態において、プロセッサ２０２は文脈スイッチイネーブル（ｃｏｎｔｅｘｔ  ｓｗｉｔｃｈ  ｅｎａｂｌｅ）要請、実時間操作システム作動、割り込み及び例外（ｅｘｃｅｐｔｉｏｎ）処理、Ｉ／Ｏ装置管理、ホストプロセッサ１０２との交信など一般的な処理器能を行う３２ビットＡＲＭ７ＴＭＲＩＳＣコントロールプロセッサである。第１実施形態において、プロセッサ２０２は４０ＭＨｚで動作する。プロセッサ２０２はコプロセッサインタフェース２０６を介してコプロセッサ２０４に接続される。
【００１６】
プロセッサ２０２は命令処理過程で発生する一般的な状況である例外（ｅｘｃｅｐｔｉｏｎ）に対応して例外処理を行うことにより、実行制御流れを変更する。例外処理に関する追加的な情報は米国特許出願番号ｘｘ／ｘｘｘ，ｘｘｘ（代理人処理番号−４３６６）Ｓｏｎｇ外による“Ｓｙｓｔｅｍ  Ａｎｄ  Ｍｅｔｈｏｄ  Ｆｏｒ  Ｈａｎｄｌｉｎｇ  Ｓｏｆｔｗａｒｅ  Ｉｎｔｅｒｒｕｐｔｓ  Ｗｉｔｈ  Ａｒｇｕｍｅｎｔ  Ｐａｓｓｉｎｇ”と、出願番号ｘｘ／ｘｘｘ，ｘｘｘ（代理人処理番号Ｍ−４３６７）Ｓｏｎｇ外の“Ｓｙｓｔｅｍ  Ａｎｄ  Ｍｅｔｈｏｄ  Ｆｏｒ  Ｈａｎｄｌｉｎｇ  Ｉｎｔｅｒｒｕｐｔ  Ａｎｄ  Ｅｘｃｅｐｔｉｏｎ  Ｅｖｅｎｔｓ  Ｉｎ  Ａｎ  Ａｓｙｍｍｅｔｒｉｃ  Ｍｕｌｔｉｐｒｏｃｅｓｓｏｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ”を参照するところ、これらは全て以下で参考事項として全体的に含まれる。
【００１７】
コプロセッサ２０４はマルチメディア信号処理器２００のディジタル信号処理エンジンである。第１実施形態において、コプロセッサ２０４は三星社ＭＳＰファミリー中のベクトルプロセッサである。ベクトルプロセッサとしてのコプロセッサ２０４は単一命令多重データ（Ｓｉｎｇｌｅ−Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ−Ｄａｔａ）構造を有し、離散コサイン変換器（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍｓ：ＤＣＴ）、ＦＩＲ  フィルタリング、畳み込み（ｃｏｎｖｏｌｕｔｉｏｎ）、ビデオ運動推定及びその他の処理動作のような信号処理器能を行うために多重のビット要素に並列に作動するパイプラインさらた（ｐｉｐｅｌｉｎｅｄ）  ＲＩＳＣエンジンを含む。
【００１８】
コプロセッサ２０４は多重データ要素が多数のベクトル実行ユニットによってベクトル処理のように並列に作用するベクトル演算を支援する。コプロセッサ２０４はスカラ演算及びベクトル−スカラ混合演算を全て行う。コプロセッサ２０４の多重データ要素はサイクル当たり（例えば１２．５ｎｓ）３２個の８／９ビット固定小数点演算率或いは１６個の１６ビット固定小数点演算率或いは８個の３２ビット固定小数点または浮動小数点演算率で計算される５７６ビットベクトルにパックされる。大部分の３２ビットスカラ演算は１サイクル当たり一つの命令の比率で移動される反面、大部分の５７６ビットベクトル演算は２サイクル当たり一つの命令の比率で移動される。ロード（ｌｏａｄ）及び貯蔵（ｓｔｏｒｅ）作用は算術演算と重なり、別途のロード及び貯蔵回路によって独立的に行われる。
【００１９】
図３を参照すると、ビットストリームプロセッサ２３４はマルチメディアマルチプロセッサシステム１００の内部周辺機器中の一つである。ビットストリームプロセッサ２３４は各種のビットストリームビデオデータ圧縮及び復原を支援する特定化されたハードウェアロジックブロックである。ビットストリームプロセッサ２３４は特にビットレベルの処理のために考案される。ビットストリームプロセッサ２３４は独立的な処理ユニットとして作用し、プロセッサ２０２或いはコプロセッサ２０４によってソフトウェア制御される。
【００２０】
より具体的には、ビットストリームプロセッサ２３４はブロックグループ（ｇｒｏｕｐ  ｏｆ  ｂｌｏｃｋｓ：ＧＯＢ）或いはスライス（ｓｌｉｃｅ）層以下の層に含まれた全ての情報をエンコード及びデコードし、Ｉ／Ｏバス２０２を通じてＤＳＰコア２０１から情報を受信し、ＤＳＰコア２０１へ情報を伝送する。情報をデコードする時、情報は一般的に圧縮画像ビットストリーム４０２のようにビットストリームとして受信され、適用する標準によって開始コード、ヘッダパラメータ及び圧縮データが含まれたりもする。このような圧縮画像ビットストリーム４０２は圧縮されるが、用途によってはバイト整列する必要がない。即ち、その状態がビットストリーム内の一番目のビットから多数の８ビットであれば、ビットストリーム内のビットはバイト整列される。圧縮画像ビットストリーム４０２は多数のスライス及びＧＯＢのためのデータを含めることができることに注目する。
【００２１】
マルチメディア環境では画像シーケンスが処理され、例えばＰＣ及び画像会議装置に表示される。画像シーケンスは一般的にＩＳＯ／ＩＥＣ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｏｒｇａｎｉｚａｔｉｏｎ  ｆｏｒ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ／Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｅｌｅｃｔｒｏｔｅｃｈｎｉｃａｌ  Ｃｏｍｍｉｓｓｉｏｎ）ＭＰＥＧ（Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）のＭＰＥＧ−１及びＭＰＥＧ−２の標準と、ＩＴＵ−Ｔ（Ｕｎｉｔｅｄ  Ｎａｔｉｏｎ’ｓ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｔｅｌｅｌｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｕｎｉｏｎ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ  Ｂｕｒｅａｕ）のＨ．２６１及びＨ．２６３標準などの多数の画像標準中の一つを用いてエンコードされた圧縮ビットストリームの形態になる。
【００２２】
ＭＰＥＧ−１，ＭＰＥＧ−２，Ｈ．２６１及びＨ．２６３の標準は、それぞれＩＳＯ／ＩＥＣ  １１１７２−２（１９９２年）（ＭＰＥＧ−１）、ＩＳＯ／ＩＥＣのＪｏｉｎｔ  Ｔｅｃｈｎｉｃａｌ  Ｃｏｍｍｉｔｔｅｅ（ＪＴＣ）１／ＳＣ  ２９Ｎ  ０９８１  Ｒｅｖ（１９９５年３月３１日）（ＭＰＥＧ−２）、ＩＵＴ−Ｔの勧告Ｈ．２６１，ＩＴＵ−Ｔの勧告Ｈ．２６３で説明されるところ、このような全てのものは参考事項として全体的に含まれる。ＭＰＥＧ−１，ＭＰＥＧ−２，Ｈ．２６１及びＨ．２６３標準は以下で総体的に“マルチメディアフォーマット”として言及されるが、マルチメディアマルチプロセッサシステム１００は他の標準によってフォーマットされたビットストリームを処理するように応用され得ることが分かる。
【００２３】
図４を参照すると、圧縮画像ビットストリーム４０２は一般的に多重標準圧縮フォーマットによって圧縮されたビットストリームを示す。開始コード４０４，４０５は、圧縮画像ビットストリーム４０２では別に発生されない予備ビットパターンである。開始コード４０４，４０５は画像データ４０８と構文情報、例えば現在採用された圧縮標準を識別する情報を含むフォーマット情報の開始を表示する。多重の画像標準による画像ビットストリームは可変長になるが、バイト整列されたりバイト整列されなかったりする。
【００２４】
即ち、開始コード間のビット数は均等な８倍数であるとか、そうでない可能性もある。しかも、数多くのゼロ充填ビット４０６は一般的に画像データ４０８と次の開始コード４０５との間に挿入される。数多くのゼロ充填ビット４０６はＭＰＥＧ−１及びＭＰＥＧ−２の適用のためにスライス（ｓｌｉｃｅ）層までの圧縮画像ビットストリーム４０２がバイト整列されるように挿入される。ピクチャ（ｐｉｃｔｕｒｅ）層までの圧縮画像ビットストリーム４０２はバイト整列され、Ｈ．２６１適用ではバイト整列されないが、Ｈ．２６３の適用のためにＧＯＢ層までの圧縮画像ビットストリーム４０２はバイト整列されることもできる。
【００２５】
ゼロ充填ビット４０６とエラー持ちの画像データ４０５、即ち損傷した画像データはマルチメディアマルチプロセッサシステム１００に有用な情報を提供することができない。従って、ゼロ充填ビット４０６と損傷の画像データをなるべく速く廃棄し、次の開始コードを検出することによりマルチメディアマルチプロセッサシステム１００の圧縮画像ビットストリーム４０２処理性能を向上させる。圧縮画像ビットストリーム４０２が多重標準フォーマットによって開始コード４０４，４０５の間で可変長になる時、次の開始コード４０５の位置が決定されないので、次の開始コード４０５を検出するために圧縮画像ビットストリーム４０２が調査される。
【００２６】
図３を参照すると、ビットストリームプロセッサ２３４は圧縮画像ビットストリーム４０２内の多重標準開始コードを調査し検出するための多重標準開始コード検出システム３００を有する。例えば、マルチメディアＰＣ環境では圧縮画像ビットストリーム４０２はＣＤ  ＲＯＭドライバ、ハードディスクドライバ、ネットワークインタフェース（図示せず）から送られる。圧縮画像ビットストリーム４０２のソースはＡＳＩＣ  ２１６或いはＰＣＩバスインタフェース２２２である可能性がある。ＡＳＩＣ  ２１６或いはＰＣＩバスインタフェース２２２の３２バイトバッファに貯蔵されたデータはＤＭＡを用いてフレームバッファＳＤＲＡＭメモリ１１４（図１）に伝達される。
【００２７】
ＤＳＰコア２０１は圧縮画像ビットストリーム４０２内の構文情報を検査する。ＤＳＰコア２０１はビットストリームプロセッサ２３４により圧縮画像ビットストリーム４０２を処理し始められるに先立って構文情報から圧縮画像ビットストリーム４０２のフォーマットを決定する。プロセッサ２０２はレジスタファイル３２４にあるＢＰ＿ＭＯＤＥレジスタに記録して本実施形態で多重標準中の一つからなる圧縮画像ビットストリーム４０２のフォマットを示す。ＢＰ＿ＭＯＤＥレジスタのフォーマットは次の表１のようである。
【表１】
0003558840.tif 000002
【００２８】
ＢＰ＿ＭＯＤＥレジスタバイト０のビット２：０は“ＳＦ”或いは圧縮画像ビットストリーム４０２の標準フォーマットを意味する。次の開始コード４０５を検出する作動中制御状態のマシン（ｃｏｎｔｒｏｌ  ｓｔａｔｅ  ｍａｃｈｉｎｅ）３０７は標準フォーマット情報を用いて多重標準開始コード検出システム３００を正確に制御する。次の表２はＳＦを規定する。
【表２】
0003558840.tif 000003
【００２９】
ビットストリームプロセッサ２３４がＤＳＰコア２０１によってイネーブルされると、圧縮画像ビットストリーム４０２はＩ／Ｏバス２１２、Ｉ／Ｏバスインタフェースユニット３２０、Ｉ／Ｏバッファ３２２を通して本実施形態で１６ビットフリップフロップ装着型ＦＩＦＯバッファの後続データバッファ３０６に入力される。情報はＩ／Ｏバス２１２，Ｉ／Ｏバスインタフェースユニット３２０、Ｉ／Ｏバッファ３２２の間で両方向に伝送される。圧縮画像ビットストリーム４０２の初期受信過程で制御状態マシン３０７はゲート３２６をオープンさせ、後続データバッファ３０６内の１６ビットデータは本実施形態でやはり１６ビットフリップフロップ装着型ＦＩＦＯバッファの現在データバッファ３０４に伝送される。
【００３０】
現在データバッファ３０４の内容はシフタ３１２によって１６ビットレジスタのｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４にシフトされる。圧縮画像ビットストリーム４０２の次の１６ビットは後続データバッファ３０６に貯蔵される。次に、処理された圧縮画像ビットストリーム４０２はＩ／Ｏバス２１２を通じてビットストリームプロセッサ２３４からＤＳＰコア２０１に伝送される。ＤＳＰコア２０１は画像データ４０８の終了を検出すると、ビットストリームプロセッサ２３４をして次の開始コード４０５を探し出すように命令する。
【００３１】
ビットストリームプロセッサ２３４をして次の開始コード４０５を探し出すように要請するために、プロセッサ２０２或いはコプロセッサ２０４はビットストリームプロセッサ２３４をアイドル状態に置くが、もうアイドル状態でなければ、ビットストリームプロセッサ２３４をして次の開始コード４０５を検出するように要請し、ビットストリームプロセッサ２３４が処理動作を始めるようにイネーブルさせる。レジスタファイル３２４内に位置するＢＰ＿ＣＯＮＴＲＯＬレジスタのＳＯＦＴ＿ＲＥＳＥＴビットに“１”を記録することにより、ビットストリームプロセッサ２３４がアイドルでなければ、ビットストリームプロセッサ２３４をアイドル状態に置くために、プロセッサ２０２或いはコプロセッサ２０４はビットストリームプロセッサ２３４へソフトウェアリセット命令を送り出す。プロセッサ２０２或いはコプロセッサ２０４はＢＰ＿ＣＯＮＴＲＯＬレジスタのＤＥＴＥＣＴ＿ＳＴＡＲＴ＿ＣＯＤＥビットに“１”を記録することにより、ビットストリームプロセッサ２３４をして次の開始コード４０５を検出するようにすることもできる。
【００３２】
ビットストリームプロセッサ２３４をリセットし次の開始コード４０５の検出を要請した後、プロセッサ２０２或いはコプロセッサ２０４はＢＰ＿ＣＯＮＴＲＯＬレジスタのＢＰ＿ＥＮビットに“１”を記録することによりビットストリームプロセッサ２３４をイネーブルさせて処理を始める。ＢＰ＿ＣＯＮＴＲＯＬレジスタのフォーマットは次の表３に与えられる。
【表３】
0003558840.tif 000004
【００３３】
＜多重標準開始コード検出システム＞（ＭＵＬＴＩ−ＳＴＡＮＤＡＲＤ  ＳＴＡＲＴ  ＣＯＤＥ  ＤＥＴＥＣＴＯＲ  ＳＹＳＴＥＭ）
ビットストリームプロセッサ２３４の多重標準開始コード検出システム３００は画像データ４０８の終了が検出されるか、ＤＳＰコア２０１或いはビットストリームプロセッサ２３４によって損傷された画像データ４０８が検出された後に圧縮画像ビットストリーム４０２の次の開始コードを検索し始める。次の開始コード４０５を検出する動作を始めると同時に、多重標準開始コード検出システム３００は少なくとも次の開始コード４０５の一部が検出されるまで全てのビットグループを迅速に廃棄する。このような動作はバイト整列されたビットストリーム及びバイト整列されていないビットストリーム全部に対して行われる。バイト整列されていないフォーマットを含む次の開始コード検出動作は制限的な１ビットずつの廃棄を伴う。個々のビットでないビットグループを廃棄することにより、開始コードの検出時間は短縮され、有用な情報の処理により多くの時間が与えられることができる。
【００３４】
開始コード検索作動中であり、画像データ４０８の中で損傷したデータが検出されなく、ビットストリームプロセッサ２３４がイネーブルされて次の開始コード４０５を検出するように要請されると、制御状態マシン３０７は適切なイネーブル信号［１：０］を発生して次の開始コード４０５を検出する。イネーブル信号［１：０］は制御状態マシン３０７及び比較器ユニット３０８によって用いられ、次の開始コード４０５と唯一に連関するビットパターンを決定する。１６ビット比較器ユニット３０８はこのビットパターンをｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタの内容と対照される。
【００３５】
比較器ユニット３０８は排他的ＯＲロジックや排他的ＯＲアルゴリズムなどの多様な公知の回路或いはソフトウェアアルゴリズムのうちいずれかを用いて設置されたりもする。圧縮画像ビットストリーム４０２が多重標準フォーマット中の一つによってフォーマットされる時、次の開始コード４０５の最上位ビット（ｍｏｓｔ  ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔ：ＭＳＢ）は０００１ｈ（接尾語ｈは１６進数表記を意味する）を含む。イネーブル信号［１：０］を１０ｂにセットすることにより、比較器ユニット３０８が現在データバッファ３０４の内容を０００１ｈに対応させる。
【００３６】
比較器ユニット３０８による比較動作と同時に次のデータバッファ３０６に貯蔵された次のデータは開始コード形式事前検出ロジック３１０を用いて処理される。ゼロ充填ビット４０６は可変長であることもできるためである。次のデータバッファ３０６内で次の開始コード４０５が占めている正確な位置は予測することができない。ゼロ充填ビット４０６が可変長なので、シフタ３１２は８からアキュムレータ３３６の最下位ビット（ｌｅａｓｔ  ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔ：ＬＳＢ）の３つのＡｃｃ［２：０］を引いたものに該当する数だけゼロ充填ビット４０６の最初数字をシフトアウト（ｓｈｉｆｔ  ｏｕｔ）させる。後術するように、５ビットアキュムレータ３３６は分析された画像データ４０８エントロピーコードワードを察する。もし画像データ４０８がバイト整列されなければ、バイト整列されるものとの差は８からＡｃｃ［２：０］を引いたものと同一である。
【００３７】
通常、ｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタから全体ビットグループを廃棄しながら、次の開始コード４０５を検出する比較器ユニット３０８によって用いられるパターンの数を最小化するために、次の開始コード４０５の形態及び属性は次のデータバッファ３０６内で低オーバヘッド（ｏｖｅｒｈｅａｄ）の処理動作によって事前検出される。一旦、次の開始コード４０５の定形（ｐｒｅｄｅｔｅｒｍｉｎｅｄ  ｆｅａｔｕｒｅ）が事前検出されると、次の開始コード４０５の定形が次のデータバッファ３０６によって用いられたビットパターンと一致するようにするために現在データシフトサイズが修正される。事前検出動作は後述する次のデータバッファ３０６の比較動作に伴われるビットパターンの数を増加させることにより省略されることができる。
【００３８】
開始コード検出動作中の次の開始コード４０５の検出動作の開始前に画像データ４０８の終了点に達すると、次の開始コード４０５を受信する前に次のデータバッファ３０６にはゼロ充填ビット４０６のみ存在する。低オーバヘッドの開始コード形式事前検出動作は開始コード形式事前検出ロジック３１０によって行われる。開始コード形式事前検出ロジック３１０は“１”を検出するために次のデータバッファ３０６の内容に対して論理ＯＲ動作を行う。“１”が検出されると、ｎｏｔ＿ａｌｌ＿ｚｅｒｏの開始コード形式事前検出ロジック３１０出力信号は“１”にセットされ、比較器ユニット３０８の入力部に付加される。そうでなければ、ｎｏｔ＿ａｌｌ＿ｚｅｒｏ出力信号は“０”にセットされる。
【００３９】
圧縮画像ビットストリーム４０２を処理する間、比較器ユニット３０８が次の開始コード４０５の内容を０００１ｈとマッチングさせてｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタの内容から次の開始コード４０５を検出することができなく、ｎｏｔ＿ａｌｌ＿ｚｅｒｏ信号も“０”であれば、比較器ユニット３０８は本実施形態で１６ビットの現在データバッファ３０４のビット容量と同一の５ビット出力信号ｓｋｉｐ＿ｓｉｚｅをセットする。
【００４０】
このような次の開始コード４０５検出動作中に制御状態マシン３０７はマルチプレクサ３２８を通してシフタ３１２に伝送するための比較器ユニット３０８出力信号ｓｋｉｐ＿ｓｉｚｅを選択する。シフタ３１２はｓｈｉｆｅｒ＿ｒｅｓｕｌｔ３３４レジスタの１６ビット内容をシフトアウトさせ、制御状態マシン３０７はゲート制御線３３０で導かれる制御信号を用いてゲート３２６をオープンさせる。次のデータバッファ３０６の１６ビット内容全体は現在データバッファ３０４にロードされ、次の１６ビット圧縮画像ビットストリーム４０２は次のデータバッファ３０６にロードされる。現在データバッファ３０４の内容は再びｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタにロードされる。このような過程は開始コード形式事前検出ロジック３１０によってｎｏｔ＿ａｌｌ＿ｚｅｒｏ信号がセットされる時まで繰り返される。
【００４１】
次の開始コード４０５検出動作中のいずれかの時点で少なくとも次の開始コード４０５の一部が次のデータバッファ３０６にロードされることができる。開始コード形式事前検出ロジック３１０はこのようにして次の開始コード４０５の最上位ビットに含まれた“１”を検出し、出力信号ｎｏｔ＿ａｌｌ＿ｚｅｒｏを“１”にセットする。圧縮画像ビットストリーム４０２がバイト整列されていれば、次のデータバッファ３０６内の次の開始コード４０５の０番ビット或いは８番ビットは“１”にセットされる。
【００４２】
前述したようにビットストリームプロセッサ２３４はＤＳＰコア２０１によってＢＰ＿ＭＯＤＥレジスタのＳＦビットを通じて圧縮画像ビットストリーム４０２形式の通報されるが、バイト整列された場合、ＳＦビットは圧縮画像ビットストリーム４０２がＭＰＥＧ−１或いはＭＰＥＧ−２によってバイト整列でフォーマットされたことを示す。比較器ユニット３０８は出力信号ｓｋｉｐ＿ｓｉｚｅを８（１０００ｂ）にセットするが、これは比較器ユニット３０８が次の開始コード４０５を検出し得ない状態にならないようにする。ｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタの内容であるＡｃｃ［４：０］は出力信号ｓｋｉｐ＿ｓｉｚｅによって０１０００ｂにセットされる（接尾語ｂは２進数表記であることを示す）。シフタ３１２は最上位８ビットをｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタからシフトアウトさせ、次のデータバッファ３０６からの次のデータのうち８ビットがｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタの最下位ビット位置にロードされる。
【００４３】
１バイトシフトアウト後ごとにｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタの内容は１０００ｂずつ増加する。Ａｃｃ［４：０］が１５を超過する時ごとに制御状態マシン３０７はゲート３２６をオープンし、次のデータバッファ３０６の内容は現在データバッファ３０４にロードされる。現在データバッファ３０４の内容はｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタ内にシフトアウトされ、次の１６ビット圧縮画像ビットストリーム４０２は次のデータバッファ３０６にロードされる。比較器ユニット３０８はｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタの内容を次の開始コード４０５に唯一に連関するビット形式（本実施形態において０００１ｈ）と対照する。
【００４４】
２サイクル内に比較器ユニット３０８は現在データバッファ３０４の内容を０００１ｈとマッチさせる。一致点を検出する瞬間、比較器ユニット３０８は２番目の出力信号ｄｅｔｅｃｔｏｒ＿ｓｔａｔｕｓを“１”にセットするが、これはｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタ内の現在データが次の開始コード４０５の１６個の最上位ビットを含んでいることを意味する。制御状態マシン３０７は開始コードが検出されたことをＤＳＰコア２０１に知らせ、比較器ユニット３０８をアイドル状態に置くために出力信号ｅｎａｂｌｅ［１：０］を００ｂにセットする。そうすると、ビットストリームプロセッサ２３４はＤＳＰコア２０１からの後続情報を待つか、次の開始コード４０５がスライス開始コードであれば、次の開始コード４０５をデコードする。
【００４５】
開始コード形式事前検出ロジック３１０が出力信号ｎｏｔ＿ａｌｌ＿ｚｅｒｏを“１”に断定したならば、ビットストリームプロセッサ２３４がＤＳＰコア２０１によって圧縮画像ビットストリーム４０２がＨ．２６１或いはＨ．２６３によってバイト整列されていないことをＢＰ＿ＭＯＤＥレジスタのＳＦビットを通じて通報される場合、次のデータバッファ３０６内で次の開始コード４０５の０００１ｈ部分中の１ｈの位置が分からない。比較器ユニット３０８は出力信号ｓｋｉｐ＿ｓｉｚｅを１にセットする。シフタ３１２はｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタの内容を１ビットずつ成功的にシフトアウトさせながら最下位ビットを次のデータバッファ３０６からの最上位ビットで置き換える。それぞれ１ビットずつのシフトアウト後、比較器ユニット３０８はｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタ内の現在データを次の開始コード４０５に唯一に連結するビット形式と対照する。
【００４６】
このような処理は一致状態が検出される時まで繰り返されるが、長くても１６サイクル内には生じる。一致状態が検出されると、ｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタは少なくとも次の開始コード４０５の一部を含み、比較器ユニット３０８は出力信号ｄｅｔｅｃｔｏｒ＿ｓｔａｔｕｓを“１”にセットして、ｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタの内容が次の開始コード４０５の０００１ｈ部分を含んでいることを制御状態マシン３０７に知らせる。これに応じてビットストリームプロセッサ２３４は出力信号ｅｎａｂｌｅ［１：０］を００ｂにリセットして比較器ユニット３０８をアイドル状態に置く。制御状態マシン３０７は開始コードが検出されたことをＤＳＰコア２０１に知らせ、出力信号ｅｎａｂｌｅ［１：０］を００ｂにセットして比較器ユニット３０８をアイドル状態に置く。そうすると、ビットストリームプロセッサ２３４はＤＳＰコア２０１からの後続情報を待つか、次の開始コード４０５がスライス（ｓｌｉｃｅ）開始コードであれば、次の開始コード４０５をデコードする。
【００４７】
ビットストリームプロセッサ２３４が画像データ４０８内でエラーを検出すると、ビットストリームプロセッサ２３４はプロセッサ２０２をインタラプトし、レジスタファイル２３４内のＢＰ＿ＣＯＮＴＲＯＬレジスタ内で表３のｅｒｒ＿ｈａｎｄｌｅ＿ｍｏｄｅフラグ内容をチェックする。ｅｒｒ＿ｈａｎｄｌｅ＿ｍｏｄｅフラグが“１”にセットされる時、ビットストリームプロセッサ２３４は自動的に次の開始コード４０５を探し出してエラーからの回復を催促する。ｅｒｒ＿ｈａｎｄｌｅ＿ｍｏｄｅフラグが“０”にセットされると、ビットストリームプロセッサ２３４はアイドル状態に入り、ＤＳＰコア２０１からの後続情報を待つ。米国特許出願番号ｘｘ／ｘｘｘ，ｘｘｘ（代理人処理番号Ｍ−４３６８）Ｃ．Ｒｅａｄｅｒの“Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｐｒｏｃｅｓｓｉｎｇ  Ｖｉｄｅｏ  Ｄａｔａ”における付録Ａの第１０章第１３行はビットストリームプロセッサ２３４とＤＳＰコア２０１との間の“ｊｏｂ  ｈａｎｄ−ｓｈａｋｉｎｇ”をより詳しく説明している。
【００４８】
また、受信されたビットストリームデータ内にエラーが検出されると、ビットストリームプロセッサ２３４は次の開始コード４０５の少なくとも一部が検出される時までデータをビットグループ単位で廃棄する。
画像データ４０８内にエラーが検出され、ｅｒｒ＿ｈａｎｄｌｅ＿ｍｏｄｅフラグが“１”にセットされると、ビットストリームプロセッサ２３４は次の開始コード４０５を検出するための効果的な動作を直ちに開始する。制御状態マシン３０７は出力信号ｅｎａｂｌｅ［１：０］を１０ｂにセットして、比較器ユニット３０８が画像データ４０８内に含まされていない定形を探し出すように要請する。本実施形態では多重標準フォーマットによってフォーマットされた圧縮画像ビットストリーム４０２の画像データ４０８内に００００ｈを許容しない。比較器ユニット３０８はｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタの１６ビット内容を００００ｈと比較し始める。一致状態が検出されなければ、出力信号ｄｅｔｅｃｔｏｒ＿ｓｔａｔｕｓは“０”に保持される。
【００４９】
比較器ユニット３０８は出力信号ｓｋｉｐ＿ｓｉｚｅを“１００００ｈ”にセットし、制御状態マシン３０７はシフタ３１２へ伝送するためにマルチプレクサ３２８向きのｓｋｉｐ＿ｓｉｚｅ入力信号を選択する。制御状態マシン３０７はゲート制御線３３０の制御信号によってゲート３２６をイネーブルさせて次のデータバッファ３０６に貯蔵された次の１６ビットを現在データバッファ３０４に伝送する。圧縮画像ビットストリーム４０２からの１６ビットは次のデータバッファ３０６にロードされ、現在データバッファ３０４の内容はｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタにロードされる。比較器ユニット３０８は再びｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタの内容を００００ｈと比較する。その動作は比較器ユニット３０８によって位置状態が検出される時まで続き、比較器ユニット３０８は出力信号ｄｅｔｅｃｔｏｒ＿ｓｔａｔｕｓを“１”にして一致状態検出を制御状態マシン３０７に知らせる。このような動作時点で多重標準開始コード検出システム３００はゼロ充填ビット４０６を検出した。
【００５０】
画像データ４０８内におけるエラー検出に次いでエラーを処理する開始コード検出動作を完了するために、制御状態マシン３０７は出力信号ｅｎａｂｌｅ［１：０］を０１ｂにセットする。開始コード検出処理は前述したように続いてバイト整列されない圧縮画像ビットストリーム４０２を推定するかエントロピーコードワードを探し出し、前述したようにゼロ充填ビット４０６を整列し、前述したように圧縮画像ビットストリーム４０２がバイト整列されたことを推定する。
【００５１】
＜多重標準開始コード検出システム３００の作動例＞
次は初期に圧縮画像ビットストリーム４０２がＭＰＥＧ−１，ＭＰＥＧ−２，Ｈ．２６１或いはＨ．２６３標準によってフォーマットされたと推定する多重標準開始コード検出システム３００の作動例である。また、本実施形態は有用な画像データ４０８がＸＸＸＸ１ＸＸＸＸ２ｈ（接尾語はただ１６進グループを示す例示の目的で使用する）に該当し、ゼロ充填ビット４０６が００００１００００１００３ａｈであり、次の開始コード４０５が００３ｂ０１４ａＸＸ４ｂｈ（接尾語“ａ”と“ｂ”はそれぞれ１６ビットグループの１番目及び２番目のバイトを示す）を含むと推定される。当業界で通常の知識を有する者にはこのような説明によって多重標準開始コード検出システム３００が他の画像及び非画像標準にも適用され得ることは明らかなことである。
【００５２】
画像データ４０８にエラーがないか有用であれば、比較器ユニット３０８出力信号ｅｎａｂｌｅ［１：０］は制御状態マシン３０７によって初期に全て論理“０”にセットされ、レジスタファイル３２４内の出力信号ｄｅｔｅｃｔ＿ｓｔａｒｔ＿ｃｏｄｅフラグがＤＳＰコア２０１によってセットされる時まで比較器ユニット３０８をアイドル状態に置く。多重標準開始コード検出システム３００が圧縮画像ビットストリーム４０２を受ける時、１６ビットの有用な画像データ４０８のＸＸＸＸ１ｈは現在データバッファ３０４及びｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタにロードされ、次の１６ビットの有用な画像データ４０８のＸＸＸＸ２ｈは次のデータバッファ３０６にロードされる。比較器ユニット３０８がアイドル状態にある間、現在データＸＸＸＸ１ｈはシフタ３１２によってｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタから後術するエントロピーコードビット長さ探索モジュール３１４へ適切にシフトアウトされる。Ａｃｃ［４：０］が１５を超過する時、引き続き次のデータＸＸＸＸ２ｈはゲート３２６を通して現在データバッファ３０４にロードされ、ｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタにロードされる。圧縮画像ビットストリーム４０２の次の１６ビット００００１ｈは次のデータバッファ３０６にロードされる。
【００５３】
比較器ユニット３０８を引き続きアイドル状態に置いたままｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタ内の現在データＸＸＸＸ２ｈはエントロピーコードビット長探索モジュール３１４にシフトアウトされ、次のデータ００００１ｈは現在データバッファ３０４及びｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタにロードされる。圧縮画像ビットストリーム４０２の次の１６ビット００００２ｈは次のデータバッファ３０６にロードされる。ＤＳＰコア２０１が有用な画像データ４０８の終了を検出した後、ＤＳＰコア２０１はｄｅｔｅｃｔ＿ｓｔａｒｔ＿ｃｏｄｅフラグを“１”にセットし、制御状態マシン３０７は出力信号ｅｎａｂｌｅ［１：０］を０１ｂにセットして、比較器ユニット３０８がｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタの内容を０００１ｈと比較するように要請する。これに加えて、ゼロ充填ビット４０６は前述したように適切であれば、好ましくはバイト整列される。このようにしてイネーブル状態になる比較器ユニット３０８は次の開始コード４０５を探し出し始める。
【００５４】
現在データバッファ３０４及びｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタにある現在データは００００１ｈに該当し、次のデータバッファ３０６にある次のデータは００００２ｈに該当する。開始コード形式事前検出ロジック３１０はＯＲロジックを用いて次のデータバッファ３０６の内容００００２ｈを処理する。次のデータバッファ３０６の内容は全て論理“０”なので、出力信号ｎｏｔ＿ａｌｌ＿ｚｅｒｏはロー（ｌｏｗ）の論理“０”を保持する。比較器ユニット３０８は現在データを０００１ｈと比較して現在データが次の開始コード４０５の定形と一致しないことを確認する。出力信号ｎｏｔ＿ａｌｌ＿ｚｅｒｏがローであり、比較器ユニット３０８によって一致点が検出されないので、比較器ユニット３０８は出力信号ｓｋｉｐ＿ｓｉｚｅを１００００ｈにセットし、ｄｅｔｅｃｔｏｒ＿ｓｔａｔｕｓを“０”にセットする。出力信号ｄｅｔｅｃｔｏｒ＿ｓｔａｔｕｓがローなので、出力信号ｅｎａｂｌｅ［１：０］は０１ｂに保持される。シフタ３１２は出力信号ｓｋｉｐ＿ｓｉｚｅに応答し、能率的に現在データ００００１ｈを廃棄する。
【００５５】
制御状態マシン３０７はゲート３２６をオープンして次のデータ００００２ｈを現在データバッファ３０４に伝送し、これはシフタ３１２によってｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタにシフトアウトされる。圧縮画像ビットストリーム４０２の次の１６ビット００３ａ００３ｂｈは次のデータバッファ３０６にロードされる。多重標準開始コード検出動作は前記の説明のように続き、比較器ユニット３０８による不一致信号及び開始コード形式事前検出ロジック３１０の出力信号ｎｏｔ＿ａｌｌ＿ｚｅｒｏの“０”に応答して００００２ｈがｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタから能率的に廃棄される。次のデータバッファ３０６の内容００３ａ００３ｂｈは現在データバッファ３０４及びｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタにロードされる。０１４ａＸＸ４ｂｈビットは次のデータバッファ３０６にロードされる。
【００５６】
開始コード形式事前検出ロジック３１０は次のデータバッファ３０６の内容を処理し、“１”ビットを検出して出力信号ｎｏｔ＿ａｌｌ＿ｚｅｒｏを“１”にセットする。比較器ユニット３０８は００３ａ００３ｂｈを０００１ｈと比較して一致状態を検出しなければ、出力信号ｄｅｔｅｃｔｏｒ＿ｓｔａｔｕｓをローに保持する。ＤＳＰコア２０１が圧縮画像ビットストリーム４０２がバイト整列されたと認識すると、ＢＰ＿ＭＯＤＥレジスタ“ＳＦ”ビット（表１及び表２）を適切にセットして次のデータバッファ３０６の内容が０００１ｈであるかもしくは０１ＸＸｈであることをビットストリームプロセッサ２３４に知らせる。
【００５７】
このようにして比較器ユニット３０８は出力信号ｓｋｉｐ＿ｓｉｚｅを０１０００ｂにセットするが、次のデータバッファ３０６が少なくとも次の開始コード４０５の一部を有するためである。シフタ３１２は００３ａｈを能率的に捨て、ｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタは０１４ａｈを次のデータバッファ３０６からシフトアウトさせて現在データ００３ｂ０１４ａｈを有する。比較器ユニット３０８は現在データ及び開始コード形式０００１ｈとの間で一致状態を検出して出力信号ｄｅｔｅｃｔｏｒ＿ｓｔａｔｕｓをハイ（ｈｉｇｈ）にセットする。制御状態マシン３０７は出力信号ｅｎａｂｌｅ［１：０］を００ｂにセットして比較器ユニット３０８をアイドル状態に置き、ＤＳＰコア２０１に次の開始コード４０５が検出されたことを知らせる。
【００５８】
これからはバイト整列される代わりに、圧縮画像ビットストリーム４０２がバイト整列されないことを前述のようにＤＳＰコア２０１がビットストリームプロセッサ２３４に適切に通報すると仮定する。多重標準開始コード検出システム３００は本実施形態の０１４ａＸＸ４ｂｈに該当する次のデータバッファ３０６の内容において開始コード形式事前検出ロジック３１０によって論理“１”が検出される時まで前述したように進行する。開始コード形式事前検出ロジック３１０は出力信号ｎｏｔ＿ａｌｌ＿ｚｅｒｏをハイにセットし、比較器ユニット３０８は現在データ００３ａ００３ｂｈが０００１ｈと一致するかを調べる。
【００５９】
一致状態が検出されず、比較器ユニット３０８は出力信号ｓｋｉｐ＿ｓｉｚｅを００００１ｂにセットするが、これは次の開始コード４０５の０００１ｈビットの位置を知らないからである。ｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタの内容を制御するシフタ３１２及び制御状態マシン３０７はｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタ内の連続する最上位ビットを１ビットずつ能率的に廃棄する。１ビットずつのシフトアウト後、比較器ユニット３０８はｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタ内の現在データを調査して０００１ｈとの一致を発見する時まで検出する。本実施形態で８番の１ビットシフトアウト後、現在データは００３ｂ０１４ａｈに該当し、比較器ユニット３０８は一致状態を検出する。一致状態を検出した後、圧縮画像ビットストリーム４０２の作動は前述した通りに進行する。
【００６０】
これからは次の開始コード４０５において、例えばビットストリームプロセッサ２３４またはＤＳＰコア２０１によってエラーが検出されることを仮定する。ＢＰ＿ＣＯＮＴＲＯＬレジスタ内で表３のｅｒｒ＿ｈａｎｄｌｅ＿ｍｏｄｅフラグが“１”にセットされると、ビットストリームプロセッサ２３４はまず最上位ゼロ充填ビット４０６に対して全体１６ビットグループを調査し、その後次の開始コード４０５の０００１ｈに対して調査することにより、次の開始コード４０５サーチ動作を始める。制御状態マシン３０７は出力信号ｅｎａｂｌｅ［１：０］を１０ｂにセットし、比較器ユニット３０８はｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタの内容を００００ｈと比較する。一致状態が検出される時まで、比較器ユニット３０８は出力信号ｓｋｉｐ＿ｓｉｚｅを１００００ｂにセットする。
【００６１】
従って、ｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタにおいて現在データの１６ビットグループはシフタ３１２によって能率的に廃棄され、制御状態マシン３０７はゲート３２６を制御して次のデータバッファ３０６の１６ビット内容をｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタにシフトアウトされる現在データバッファ３０４へ伝送する。圧縮画像ビットストリーム４０２の次の１６ビットは次のデータバッファ３０６に入力される。本実施形態でＸＸＸＸ１ｈに該当する損傷した画像データ４０８は比較器ユニット３０８によって００００ｈに比較され、次にＸＸＸＸ２ｈは００００ｈに比較される。３番目の比較動作では０００１１ｈを００００ｈと比較し、一致状態を検出する。比較器ユニット３０８は出力信号ｄｅｔｅｃｔｏｒ＿ｓｔａｔｕｓを“１”にセットし、制御状態マシン３０７は出力信号ｅｎａｂｌｅ［１：０］を０１ｂにセットする。開始コード検出動作は前述したように圧縮画像ビットストリーム４０２のバイト整列特性によって行われる。
【００６２】
＜エントロピーコードビット長さ探索モジュール＞（ＥＮＴＲＯＰＹ  ＣＯＤＥ  ＢＩＴ  ＬＥＮＧＴＨ  ＳＥＡＴＣＨＩＮＧ  ＭＯＤＵＬＥＳ）
圧縮画像ビットストリーム４０２は多様なＶＬＣ表、即ちエントロピーコードテーブル（また、ハフマン（Ｈｕｆｆｍａｎ）テーブルともいう）によってエンコードされる。一実施形態として、ビットストリームプロセッサ２３４はそれぞれのＭＰＥＧ−１，ＭＰＥＧ−２，Ｈ．２６１及びｈ．２６３画像標準文書内で説明され、推薦された全てのハフマンテーブルを支援する。大部分のテーブルはルックアップテーブル（ｌｏｏｋ−ｕｐ  ｔａｂｌｅ：ＬＵＴ）３３２内に提供される。一実施形態として、ＬＵＴ３３２は７６８＊１２ビット読出し専用メモリ（ＲＯＭ）である。
【００６３】
やや単純で且つかなり複雑なハフマンテーブルは固定配線（ｈａｒｄｗｉｒｅｄ）ロジックを用いて提供される。ＬＵＴ３３２方法論及び位相に対する詳細情報は同時係留中の米国特許出願番号ｘｘ／ｘｘｘ，ｘｘｘ（代理人処理番号Ｍ−４３６８）Ｃ．Ｒｅａｄｅｒの“Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｐｒｏｃｅｓｓｉｎｇ  Ｖｉｄｅｏ  Ｄａｔａ”付録Ｂを参照する。エントロピーコード化は一般に冗長（ｒｅｄｕｎｄａｎｃｙ）を減らすための信号の可変長コード化と定義される。通常、エントロピーコード化によって短いエントロピーコードワードは頻度の高いことに割り当てられ、長いエントロピーコードワードは頻度の低いことに割り当てられる。
【００６４】
ＬＵＴ３３２関連のデコーディング動作は可変長エントロピーコード入力を用いてデコードデータ出力信号を提供する。圧縮画像ビットストリーム４０２のエントロピーコードワードは事前検出され圧縮されて連続ビットストリームを形成する。エントロピーコード圧縮に対する詳細情報のために、同時出願及び係留中の米国特許出願番号ｘｘ／ｘｘｘ，ｘｘｘ（代理人処理番号Ｍ−４３９５）Ｊａｅ  Ｃｈｅｏｌ  Ｓｏｎの“Ｓｙｓｔｅｍ  ｆｏｒ  Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｅ  Ｄａｔａ  Ｓｔｒｅａｍ  Ｐｏｓｉｔｉｏｎ  Ａｒｒａｎｇｅｍｅｎｔ”を参照するが、このようなことは全て以下で参考事項として全体的に含まれる。圧縮画像ビットストリーム４０２をデコードするために、圧縮画像ビットストリーム４０２が個々のエントロピーコードワードに分解され、４３２のためのアドレスを発生する。
【００６５】
圧縮画像ビットストリーム４０２を連続的なエントロピーコードワードに分解する方法としては、エントロピーコードビット長さ探索モジュール３１４を用いて現在エントロピーコードワードのビット長さを決定する方法がある。ビット長さが決定されると、エントロピーコードワードは認識され、圧縮画像ビットストリーム４０２から分解されてデコードされる。このようなデコーディング動作はエントロピーコードビット長さに配置された従来の別途のＲＯＭを代替し、相対的によりコンパクトなデザインを提供する。
【００６６】
図３を参照すると、デコーディング動作中に制御状態マシン３０７は出力信号ｅｎａｂｌｅ［１：０］を００ｂにして比較器ユニット３０８をアイドル状態に置く。シフタ３１２は圧縮画像ビットストリーム４０２データをｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタからエントロピーコードビット長さ探索モジュール３１４に供給し、エントロピーコードビット長さ探索モジュール３１４は現在エントロピーコードのビット長さを決定する。次のデータバッファ３０６から現在データバッファ３０４にデータを入力させ、現在データバッファ３０４からｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタに内容をシフトアウトさせ、次のデータバッファ３０６に次の１６ビットの圧縮画像ビットストリーム４０２を入力させる動作は、制御状態マシン３０７の制御の下にあり、前述したようにアキュムレータ３３６の内容に依存する。
【００６７】
制御状態マシン３０７はマルチプレクサ３２８を通してシフタ３１２に伝送するための信号ｂｉｔ＿ｌｅｎｇｔｈ＿ｃｏｄｅを選択する。決定されたビット長さ情報はマルチプレクサ３２８を通してシフタ３１２に伝送され、シフタ３１２はｂｉｔ＿ｌｅｎｇｔｈ＿ｃｏｄｅによって示された既定のビット長さによってｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタの内容を分解する。シフタ３１２はアキュムレータ３３６の内容Ａｃｃ［４：０］を用いてｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタ内で以前に分解された内容を追跡する。現在データバッファ３０４はｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタが空く（例えば、未分解ビットがない）時にのみ次のデータバッファ３０６から再充填される。
【００６８】
図５を参照すると、エントロピーコードビット長さ探索モジュール３１４はそれぞれＮ＋１個のエントロピーコードビット長さ探索ロジックモジュールＳＬＭ［Ｎ：０］から構成される。それぞれのエントロピーコードビット長さ探索ロジックモジュールＳＬＭ［Ｎ：０］は、ビットストリームプロセッサ２３４によって支援されるフォーマット標準、一実施形態としてＭＰＥＧ−１，ＭＰＥＧ−２，Ｈ．２６１及びＨ．２６３による既定の通りにそれぞれのＶＬＣテーブルを示すように構成される。従って、Ｎ＋１は多重標準フォーマットによって用いられるテーブル数に該当するが、本実施形態では２８である。
【００６９】
それぞれのエントロピーコードビット長さ探索ロジックモジュールＳＬＭ［Ｎ：０］はｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタから並列導線を通じて１６個のｃｕｒｒｅｎｔ＿ｄａｔａビットを受信する。制御状態マシン３０７は次のデータバッファ３０６の最上位ビットを受信する。一実施形態として、それぞれのエントロピーコードビット長さ探索ロジックモジュールＳＬＭ［Ｎ：０］にいっぺんに貯蔵されるｃｕｒｒｅｎｔ＿ｄａｔａビット数の最大は１６ビットであるが、これは最大のエントロピーコードワードビット長さから多重標準フォーマットによって使用されたものを引いたものに該当する。もしそれぞれのエントロピーコードビット長さ探索ロジックモジュールＳＬＭ［Ｎ：０］中の一つが１７ビット長さのエントロピーコードワードを検出すると、制御状態マシン３０７は信号ｂｉｔ＿ｌｅｎｇｔｈ＿ｃｏｄｅによって通報され、最下位ビット（１７番目）をｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタの内容に付加する。
【００７０】
エントロピーコードワードがそれぞれのエントロピーコードビット長さ探索ロジックモジュールＳＬＭ［Ｎ：０］によって示されたテーブルに属すると、それぞれのエントロピーコードビット長さ探索ロジックモジュールＳＬＭ［Ｎ：０］は受信された最上位エントロピーコードワードのビット長さを決定する。それぞれのエントロピーコードビット長さ探索ロジックモジュールＳＬＭ［Ｎ：０］は最上位エントロピーコードワードの決定された長さを表すようにそれぞれの出力信号ｂｉｔ＿ｌｅｎｇｔｈ＿ｃｏｄｅ［Ｎ：０］を有する。制御状態マシン３０７はマルチプレクサ５０２の出力端を通過する最上位エントロピーコードワードに関連したテーブルを示す出力信号ｂｉｔ＿ｌｅｎｇｔｈ＿ｃｏｄｅ［Ｎ：０］中の一つを選択する。制御状態マシン３０７は出力信号ｓｅｌｅｃｔ＿ｌｏｇｉｃ＿ｍｏｄｕｌｅ＿ｉｎｐｕｔをマルチプレクサ５０２の選択端に付加してこのような選択を行う。
【００７１】
デコーディング動作中に制御状態マシン３０７はマルチプレクサ５０２の出力端を通じてシフタ３１２の入力端に伝えられる出力信号ｂｉｔ＿ｌｅｎｇｔｈ＿ｃｏｄｅを選択する。シフタ３１２は入力信号ｂｉｔ＿ｌｅｎｇｔｈ＿ｃｏｄｅに該当するビット数をｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタの最上位未使用内容からＬＵＴ３３２をシフトアウトさせることにより、入力信号ｂｉｔ＿ｌｅｇｎｔｈ＿ｃｏｄｅに対応する。従って、通常数ｎｓ（ｎａｎｏｓｅｃｏｎｄｓ）内に、シフタ３１２は入力信号ｂｉｔ＿ｌｅｎｇｔｈ＿ｃｏｄｅに該当するｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタからの最上位未使用ビット数をエントロピーコードビット長さ探索モジュール３１４にシフトアウトさせる。
【００７２】
現在データバッファ３０４及び次のデータバッファ３０６のビットはエントロピーコードビット長さ探索モジュール３１４に伝送されたことがなければ、これに関連して“未使用”と見なす。ｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタが空ければ、即ち両側に用いられたビットのみ有すると、現在データバッファ３０４はゲート３２６を通じて次のデータバッファ３０６の内容がさらに入力される。現在データバッファ３０４の内容はｓｈｉｆｔｅｒ＿ｒｅｓｕｌｔ３３４レジスタにシフトアウトされ、次のデータバッファ３０６は次の１６ビットの圧縮画像ビットストリーム４０２が更に入力される。
【００７３】
図６を参照すると、エントロピーコードビット長さ探索ロジックモジュールＳＬＭ［Ｍ］はそれぞれのエントロピーコードビット長さ探索ロジックモジュールＳＬＭ［Ｎ：０］の一実施形態を示す。エントロピーコードビット長さ探索ロジックモジュールＳＬＭ［Ｍ］の全体構成はエントロピーコードマッチングモジュールＭＭ［Ｍ：０］（即ち、マッチングモジュールＭＭ［Ｍ］からＭＭ［０］まで）をマッチングモジュールグループＧ［ｔ：０］に整列することを含む。ＶＬＣテーブル内の潜在的なエントロピーコードビット長さのそれぞれはＭＰＥＧ−１，ＭＰＥＧ−２，Ｈ．２６１，及びＨ．２６３で説明したようにグループＧ［ｔ：０］中の一つで表現される。マッチングモジュールグループ内のそれぞれのマッチングモジュールは入力信号ｃｕｒｒｅｎｔ＿ｄａｔａを通じて圧縮画像ビットストリーム４０２のｎビットを受信してｎ−ｘに該当するビット長さを有するエントロピーコードワードを検出する。
【００７４】
また、“ｎ−ｘ”はマッチングモジュールグループ内の特定マッチングモジュールに示されたビット長さに該当することを注目する。従って、“ｘ”は各マッチングモジュールグループによって変わる。例えば、エントロピーコードビット長さ探索ロジックモジュールＳＬＭ［Ｍ］が表４のＭＰＥＧ−１モーションＶＬＣテーブルと連関すると、マッチングモジュールグループＧ［０］は最小ビット長さ、すなわち本テーブルにおいて１（コード０）を有するエントロピーコードワードを検出する。従って、ｘは１６に該当し、ｎ−ｘは１に該当する。また、マッチングモジュールグループＧ［ｔ］は最大ビット長さ、すなわち表４のＶＬＣテーブルにおいて１１（コード−１６から−１１まで、及び１１から１６まで）を有するエントロピーコードワードを検出する。
【００７５】
従って、ｘは６に該当し、ｎ−ｘは１１に該当する。それぞれのエントロピーコードマッチングモジュールＭＭ［Ｍ：０］は最上位ｎ−ｘビットを一つ以上の定形エントロピーコードワードに相応するビット形式と一致させる。マッチングモジュールグループ内のマッチングモジュール数は、好ましくは特定グループに関連したビット長さを有する全ての定形エントロピーコードワードを検出誤り或いは検出漏れ無しで正確に検出するのに必要なビット形式の最小限の数を基準として選択される。例えば、マッチングモジュールグループＧ［０］を一致させるための“ａ＋１”、マッチングモジュールグループＧ［ｔ］を一致させるための“ｍ＋ｂ＋１”などのグループ内でマッチングモジュールの数を予め決めることと、マッチングモジュールグループの数（“ｔ＋１”）を予め決めることは下記により詳しく説明される。
【表４】
0003558840.tif 000005
【００７６】
表４は特にＭＰＥＧ−１文書の付録Ｂ．４にある画像ベクトルに対するエントロピーコードを示す。前記表４に関連した下の例は多重標準フォーマットのような他のフォーマット標準のエントロピーコードテーブルに適用するように採用される。
それぞれのエントロピーコードマッチングモジュールＭＭ［Ｍ：０］はマッチングモジュールの最上位ｎ−ｘビットが完全なエントロピーコードワードであるかを示す出力信号を発生する。エントロピーコードマッチングモジュールＭＭ［Ｍ：０］は只一つのマッチングモジュールが１サイクルの間一つの論理１を発生するように構成される。マッチングモジュール内に入力された最上位ｎ−ｘビットがエントロピーコードワードを示す時、このマッチングモジュールは論理１出力信号を発生する。
【００７７】
エントロピーコードマッチングモジュールＭＭ［Ｍ：０］は、好ましくは各マッチングモジュールグループＧ［ｔ］内に少なくとも一つのマッチングモジュールが存在するように構成される。それぞれのマッチングモジュールグループＧ［ｔ］に対する最小限のマッチングモジュール数を決定するために、エントロピーコードビット長さ探索ロジックモジュールＳＬＭ［Ｍ］で表れたエントロピーコードテーブルが調査されるが、エントロピーコードワードテーブル内容は独特な属性を有する共通最上位ビット共通パターンによってビット長さ別にグループを成す。
【００７８】
図４を参照して最小エントロピーコードワードで、例えば最小エントロピーコードワードがどれほど多くの先行ゼロ（ｌｅａｄｉｎｇ  ｚｅｒｏ）をもっているか決定する。Ｘ個の先行ゼロがあれば、同じ先行ゼロ数Ｘをもつより長いエントロピーコードワードを調査する。最小エントロピーコードワード中の一つからＹ個の最上位ビットを取ることによりパターンが決定されるが、最小エントロピーコードワードに比べて異なる長さを有するエントロピーコードワード内容のＹ個の最上位ビットには比較一致が発生しなくなる。このような処理は最小エントロピーコードワードのそれぞれに対して繰り返される。それぞれ異なる所定の数は最小ビット長さに対するマッチングモジュールグループ内のマッチングモジュールの数と同一である。このような処理は個々のエントロピーコードワード内容に対して繰り返される。本技術分野の通常の技術を有する者は唯一の一致パターンが多様な方法によって決定されることが分かる。
【００７９】
例えば、図４を参照すると、ＭＰＥＧ−１モーションＶＬＣテーブルに対するエントロピーコードビット長さ探索ロジックモジュールＳＬＭ［Ｍ］は８個のマッチングモジュールグループＧ［７：０］を有する。各マッチングモジュールグループＧ［４：０］はそれぞれ一つのエントロピーコードマッチングモジュールＭＭ［０］を有し、各マッチングモジュールグループＧ［７：５］はそれぞれ２つのエントロピーコードマッチングモジュールＭＭ［１：０］を有する。また、前記表４はそれぞれのマッチングモジュールに関連した独特なパターンを含む。ビット長さＺのパターンがエントロピーコードビット長さ探索ロジックモジュールＳＬＭ［Ｍ］の各マッチングモジュール内へのｎビット入力の最上位Ｚビットに対して一致すると、一致状態はマッチングモジュールグループＧ［７：０］中の一つのみから発見される。前記表４から分かるように、ビット長さを決定するＬＵＴ  ＲＯＭを含むことに比べてエントロピーコードワードのビット長さを決定するエントロピーコードビット長さ探索モジュール３１４を提供するためのチップ領域が減少される。
【００８０】
図７を参照すると、マッチングモジュールＭＭ［ｉ］はそれぞれ図６のマッチングモジュールグループＧ［ｔ：０］で個々のエントロピーコードマッチングモジュールＭＭ［ｍ：０］を示す。マッチングモジュールＭＭ［ｉ］はｃｕｒｒｅｎｔ＿ｄａｔａ入力信号パス７０４を通じて受信される圧縮画像ビットストリーム４０２のｎ個の現在データビットＥＣ［ｎ−１：０］を貯蔵するエントロピーコードバッファ７０２を含む。最上位ビットＥＣ［ｎ−１：ｘ］はｎ−ｘパターンビットＰ［（ｎ−１）−ｘ：０］と比較されるが、ｎ−ｘは前述したマッチングモジュールに関連したパターンのビット長さに該当する。
【００８１】
例えば、図４を参照すると、マッチングモジュールＭＭ［ｉ］がビット長さ１０のエントロピーコードワードマッチングモジュールを検出するマッチングモジュールグループＧ［６］のマッチングモジュールＭＭ［１］を示し、ｎが１７であれば、関連したパターン００００  ０１００１ｂは９ビット長さである。従って、ｘは８になり、ｎ−ｘは９になる。このようにしてＥＣ［ｎ−１］はＥ［ｘ］になり、Ｐ［（ｎ−１）−ｘ］はＰ［０］になる。比較器ユニット３０８は最上位エントロピーコードデータビットＥＣ［ｎ−１：ｘ］を最上位パターンビットＰ［（ｎ−１）−ｘ：０］と１対１で比較する。一致状態が検出されると、マッチングモジュールＭＭ［ｉ］は論理“１”出力信号を出力線７１０に付加し、そうでなければ、マッチングモジュールＭＭ［ｉ］は論理“０”を付加する。
【００８２】
比較器ユニット３０８は排他的ＯＲロジック或いは排他的ＯＲアルゴリズムのような公知の多様な回路或いはソフトウェアアルゴリズムを用いて行うことができる。パターンビットＰ［（ｎ−１）−ｘ：０］は固定配線から構成することができるが、柔軟性を向上させるかエントロピーコードビット長さ探索ロジックモジュールの数を減らすために、現在のエントロピーコードワードに関連したエントロピーコードテーブルによってプログラムすることもできる。
マッチングモジュールグループＧ０：Ｇ１のマッチングモジュールが認識中にあるエントロピーコードマッチングモジュールＭＭ［ｍ：０］中の一つから論理“１”出力信号によって指示された通りにエントロピーコードワードを認識したか決定するためにロジックモジュールが用いられる。図６の実施形態において、それぞれのマッチングモジュールグループＧ［ｔ：０］からのマッチングモジュール出力信号はそれぞれのＯＲロジックモジュールＬ［ｔ：０］に付加される。現在エントロピーコードのビット長さはＯＲロジックモジュールＬ［ｔ：０］中のいずれかが論理１出力信号ｈｉｔ＿ｔ：ｈｉｔ＿０のそれぞれを有するか否かによって決定される。
【００８３】
ビット長さエンコーダ６０２はそれぞれの導線からＯＲロジックモジュールＬ［ｔ：０］出力信号ｈｉｔ＿ｔ：ｈｉｔ＿０を受信する。ビット長さエンコーダ６０２は論理１出力信号を発生したマッチングモジュールをもつマッチングモジュールグループに該当するコード化された出力信号ｂｉｔ＿ｌｅｎｇｔｈ＿ｃｏｄｅ＿Ｍを発生する。例えば、ｔがマッチングモジュールグループＧ［ｔ：０］のための７になると、マッチングモジュールグループＧ［ｔ：０］は互いに異なる８個のエントロピーコードビット長さを示す。
【００８４】
従って、出力信号ｂｉｔ＿ｌｅｎｇｔｈ＿ｃｏｄｅは８個の暫定的なエントロピーコードビット長さを直接的に示す８個の暫定的な出力信号値を有する。ｂｉｔ＿ｌｅｎｇｔｈ＿ｃｏｄｅ＿Ｍ出力信号パス６０４はこれによって、ｂｉｔ＿ｌｅｎｇｔｈ＿ｃｏｄｅ＿Ｍの４ビットを示す４個の出力線を有する。エントロピーコードマッチングモジュールＭＭ［ｍ：０］及びマッチングモジュールグループＧ［ｔ：０］は、エントロピーコードマッチングモジュールＭＭ［ｍ：０］中の只一つが１サイクルの間に論理１出力信号を発生するように構成されるために、ｂｉｔ＿ｌｅｎｇｔｈ＿ｃｏｄｅ＿Ｍは論理１出力信号を発生するマッチングモジュールのｎ−ｘ最上位ビット内に入力された現在エントロピーコードワードのビット長さを直接的に示す。
【００８５】
図５を参照すると、各エントロピーコードビット長さ探索ロジックモジュールＳＬＭ［Ｎ：０］はそれぞれの出力信号ｂｉｔ＿ｌｅｎｇｔｈ＿ｃｏｄｅ［Ｎ：０］をそれぞれのマルチプレクサ５０２の入力端に付加する。制御状態マシン３０７の出力信号ｓｅｌｅｃｔ＿ｌｏｇｉｃ＿ｍｏｄｕｌｅ＿ｉｎｐｕｔはマルチプレクサ３２８の選択端に付加される。マルチプレクサ３２８に伝達されるように選択された信号ｂｉｔ＿ｌｅｎｇｔｈ＿ｃｏｄｅ［Ｎ：０］中の一つは現在エントロピーコードワードに対応してＶＬＣテーブルに割り当てられたエントロピーコードビット長さ探索ロジックモジュールＳＬＭ［Ｎ：０］中の一つによって生成された信号である。
【００８６】
ｂｉｔ＿ｌｅｎｇｔｈ＿ｃｏｄｅに導かれたマルチプレクサ５０２の出力信号ｂｉｔ＿ｌｅｎｇｔｈ＿ｃｏｄｅはマルチプレクサ３２８の選択端に付加される。デコーディング過程で、制御状態マシン３０７はシフタ３１２に連結するためのｂｉｔ＿ｌｅｎｇｔｈ＿ｃｏｄｅ出力信号を選択する。シフタ３１２は前述したように現在データバッファ３０４からｂｉｔ＿ｌｅｎｇｔｈ＿ｃｏｄｅ信号に該当する多数のビットをＬＵＴ３３２にシフトアウトさせる。このようなビットはデコードされ、レジスタファイル３２４内の多目的レジスタに伝達される。このようなビットはＩ／Ｏバス２１２を通じてＤＳＰコア２０１に有用になる
【００８７】
【発明の効果】
以上述べたように、本発明を特定の好ましい実施形態に関連して図示し説明したが、本発明がそれに限定されるのではない。例えば、ビットストリームプロセッサ２３４は比較器ユニット３０８内にプログラマブルビットパターンメモリを含ませて一致パターンを選択するように適用されることができる。このため、他の画像及び非画像標準の形式も適用されることが分かる。従って、特許請求の範囲によって設けられる本発明の精神や分野を外れない限度内で多様な改造及び変化できることは当業界で通常の知識を有する者に明らかなことである。
【図面の簡単な説明】
【図１】本発明の第１実施形態によるマルチメディアマルチプロセッサシステムを示す上位レベルの概略的なブロック図。
【図２】図１に示したマルチメディアマルチプロセッサシステムのマルチメディア信号処理器を示す概略的なブロック図。
【図３】図１のマルチメディア信号処理器のビットストリームプロセッサを示すブロック図。
【図４】圧縮標準によって圧縮されたビットストリームを代表する例示図。
【図５】図３のビットストリームプロセッサによるエントロピーコードビット長さ探索ロジックを示す例示図。
【図６】図５のエントロピーコードビット長さ探索ロジックを一つのＶＬＣテーブルに対して示す例示図。
【図７】図６のエントロピーコードビット長さ探索ロジックによって採用されるエントロピーコードマッチングモジュールの一実施形態を示す例示図。
【符号の説明】
１００  マルチメディアマルチプロセッサシステム
２００  マルチメディア信号処理器
２０１  ＤＳＰコア
２０４  コプロセッサ
２３４  ビットストリームプロセッサ
３００  多重標準開始コード検出システム
３０７  制御状態マシン
３０８  比較器ユニット
３１０  開始コード形式事前検出ロジック
３１４  エントロピーコードビット長さ探索モジュール
【図１】
0003558840.tif 000006
【図２】
0003558840.tif 000007
【図３】
0003558840.tif 000008
【図４】
0003558840.tif 000009
【図５】
0003558840.tif 000010
【図６】
0003558840.tif 000011
【図７】
0003558840.tif 000012