(57)【要約】【課題】  効率的にハードウェア、ソフトウェアの処理能力を利用することが可能となり、またハードウェアの処理能力限界前に、処理の一部をソフトウェアに切り替えることによるフェールソフトなトランスポート分離装置およびそれを有するデジタル放送受信機に関する。【解決手段】  トランスポートストリームから所望のデータを分離するために複数の処理過程を備え、ハードウェアトランスポートストリーム分離手段と、ソフトウェアトランスポートストリーム分離手段と、任意の処理過程を、前記両分離手段のいずれで行うかを切り替える処理切り替え手段とを備える。【選択図】    図１
2006054861.tif 000002
【特許請求の範囲】
【請求項１】
トランスポートストリームから所望のデータを分離するために複数の処理過程を備えたトランスポートストリーム処理装置において、
ハードウェアトランスポートストリーム分離手段と、
ソフトウェアトランスポートストリーム分離手段と、
任意の処理過程を、前記両分離手段のいずれで行うかを切り替える処理切り替え手段と、
を備えることを特徴とするトランスポートストリーム処理装置。
【請求項２】
請求項１に記載のトランスポートストリーム処理装置において、
前記トランスポートストリーム処理装置の状態を取得し、前記取得の状態に応じて前記処理切り替え手段の切り替えを変更する処理切り替え命令を出力する状態判断手段を備えることを特徴とするトランスポートストリーム処理装置。
【請求項３】
請求項１に記載のトランスポートストリーム処理装置において、
前記複数の処理過程を実行する手段として、
入力されたトランスポートストリーム（ＴＳ）からトランスポートストリームパケット（ＴＳＰ）単位でデータを取り出す同期手段と、
入力される前記ＴＳＰをＰＩＤに従いフィルタリングをするＰＩＤフィルタリング手段と、
ＰＩＤフィルタリングされた前記ＴＳＰをデスクランブルするデスクランブル手段と、ＰＩＤフィルタリングおよびデスクランブルされたデータから、所定のデータ転送単位であるセクションを検出してセクションパターンに従いフィルタリングするセクションフィルタリング手段と、
前記セクションのＣＲＣエラーを検出するＣＲＣチェック手段と、
を備えることを特徴とするトランスポートストリーム処理装置。
【請求項４】
請求項１に記載のトランスポートストリーム処理装置において、
前記複数の処理過程を実行する手段として、
入力された前記ＴＳからＴＳＰ単位でデータを取り出す同期手段と、
入力される前記ＴＳＰをＰＩＤに従いフィルタリングをするＰＩＤフィルタリング手段と、
ＰＩＤフィルタリングされたＴＳＰをデスクランブルするデスクランブル手段と、
ＰＩＤフィルタリングおよびデスクランブルされたデータから、所定のデータ転送単位であるパッケージドエレメンタリストリーム（ＰＥＳ）パケットを検出して前記ＰＥＳパケットパターンに従いフィルタリングするＰＥＳパケットフィルタリング手段と、
を備えることを特徴とするトランスポートストリーム処理装置。
【請求項５】
請求項３に記載のトランスポートストリーム処理装置において、
前記処理切り替え手段は、
ＣＲＣチェック切り替えフラグを備え、
前記ＣＲＣチェック切り替えフラグが無効な場合、ハードウェアによるＣＲＣチェックを行い、
前記ＣＲＣチェック切り替えフラグが有効な場合、ソフトウェアによるＣＲＣチェックを行うことを特徴とするトランスポートストリーム処理装置。
【請求項６】
請求項５に記載のトランスポートストリーム処理装置において、
プロセッサと、
前記プロセッサ上で動作するソフトウェアがアクセス可能な記憶手段と、
任意の前記処理過程における出力結果を前記記憶手段に出力する出力手段とを備え、
前記処理切り替え手段は、
前記ＣＲＣチェック切り替えフラグが無効な場合、セクションにハードウェアによるＣＲＣチェック結果を示すＣＲＣログを付与し、
前記ＣＲＣチェック切り替えフラグが有効な場合、セクションにハードウェアによるＣＲＣチェックを行わなかった事を示す前記ＣＲＣログを付与するか、または何も付与せずに前記出力手段によって前記記憶手段に出力し、
前記ＣＲＣログにより、ソフトウェアによるＣＲＣチェックの要否を判別することを特徴とするトランスポートストリーム処理装置。
【請求項７】
請求項３に記載のトランスポートストリーム処理装置において、
前記処理切り替え手段は、セクションフィルタリング切り替えフラグを備え、前記セクションフィルタリング切り替えフラグが無効な場合、ハードウェアによるセクションフィルタリングを行い、
前記セクションフィルタリング切り替えフラグが有効な場合、
ソフトウェアによるセクションフィルタリングを行うことを特徴とするトランスポートストリーム処理装置。
【請求項８】
請求項７に記載のトランスポートストリーム処理装置において、
プロセッサと、
前記プロセッサ上で動作するソフトウェアがアクセス可能な記憶手段と、
任意の前記処理過程における出力結果を前記記憶手段に出力する出力手段とを備え、
前記処理切り替え手段は、前記セクションフィルタリング切り替えフラグが無効な場合、セクションにハードウェアによるセクションフィルタリングを行った事を示すセクションフィルタリングログを付与し、
前記セクションフィルタリング切り替えフラグが有効な場合、セクションもしくはペイロードの一部にハードウェアによるセクションフィルタリングを行わなかった事を示すセクションフィルタリングログを付与するか、または何も付与せずに前記出力手段によって前記記憶手段に出力し、
前記セクションフィルタリングログによりソフトウェアによるセクションフィルタリングの要否を判断することを特徴とするトランスポートストリーム処理装置。
【請求項９】
請求項４に記載のトランスポートストリーム処理装置において、
前記処理切り替え手段は、
ＰＥＳパケットフィルタリング切り替えフラグを備え、
前記ＰＥＳパケットフィルタリング切り替えフラグが無効な場合、ハードウェアによるＰＥＳパケットフィルタリングを行い、
前記ＰＥＳパケットフィルタリング切り替えフラグが有効な場合、
ソフトウェアによるＰＥＳパケットフィルタリングを行うことを特徴とするトランスポートストリーム処理装置。
【請求項１０】
請求項９に記載のトランスポートストリーム処理装置において、
前記処理切り替え手段は、
前記ＰＥＳパケットフィルタリング切り替えフラグが無効な場合、ハードウェアによるＰＥＳパケットフィルタリングを行い、ＰＥＳパケットにハードウェアによるＰＥＳパケットフィルタリングを行った事を示すＰＥＳパケットフィルタリングログを付与し、
前記ＰＥＳパケットフィルタリング切り替えフラグが有効な場合、ＰＥＳパケットにハードウェアによるＰＥＳパケットフィルタリングを行わなかった事を示すＰＥＳパケットフィルタリングログを付与するか、または何も付与せずに前期出力手段により前記記憶手段に出力し、
前記ＰＥＳパケットフィルタリングログによりソフトウェアによるＰＥＳパケットフィルタリングの要否を判別することを特徴とするトランスポートストリーム処理装置。
【請求項１１】
請求項３に記載のトランスポートストリーム処理装置において、
前記処理切り替え手段は、
ＰＩＤフィルタリング切り替えフラグを備え、
前記ＰＩＤフィルタリング切り替えフラグが無効な場合、ハードウェアによるＰＩＤフィルタリングを行い、
前記ＰＩＤフィルタリング切り替えフラグが有効な場合、ソフトウェアによるＰＩＤフィルタリングを行うことを特徴とするトランスポートストリーム処理装置。
【請求項１２】
請求項１１に記載のトランスポートストリーム処理装置において、
プロセッサと、
前記プロセッサ上で動作するソフトウェアがアクセス可能な記憶手段と、
任意の前記処理過程における出力結果を前記記憶手段に出力する出力手段とを備え、
前記処理切り替え手段は、
前記ＰＩＤフィルタリング切り替えフラグが無効な場合、ハードウェアによるＰＩＤフィルタリングを行い、
前記ＰＩＤフィルタリング切り替えフラグが有効な場合、ＴＳＰにハードウェアによるＰＩＤフィルタリングを行わなかった事を示すＰＩＤフィルタリングログを付与するか、または何も付与せずに前記出力手段により前記記憶手段に出力し、
前記ＰＩＤフィルタリングログによりソフトウェアによるＰＩＤフィルタリングの要否を判断することを特徴とするトランスポートストリーム処理装置。
【請求項１３】
請求項２に記載のトランスポートストリーム処理装置において、
入力されたＴＳからＴＳＰ単位でデータを取り出す同期手段を備え、
前記状態判断手段として、前記同期手段に入力されるＴＳのビットレートを判断し、前記ビットレートとビットレート閾値を比較し、かつ、前記処理切り替え手段の、任意の前記処理過程をハードウェアによって行うかソフトウェアによって行うかの切り替えを変更する処理切り替え命令を出力するビットレート判断手段を備えることを特徴とするトランスポートストリーム処理装置。
【請求項１４】
請求項２に記載のトランスポートストリーム処理装置において、
入力されるＴＳＰを一時的に記憶する一時記憶手段と、
前記状態判断手段として、前記一時記憶手段に記憶されているＴＳＰ数を判断し、前記ＴＳＰ数とＴＳＰ閾値を比較し、前記処理切り替え手段の、任意の前記処理過程をハードウェアによって行うかソフトウェアによって行うかの切り替えを変更する処理切り替え命令を出力する一時記憶手段ＴＳＰ数判断手段と、
を備えることを特徴とするトランスポートストリーム処理装置。
【請求項１５】
請求項２に記載のトランスポートストリーム処理装置において、
入力されたＴＳからＴＳＰ単位でデータを取り出す同期手段を備え、
前記状態判断手段として、前記同期手段に入力されるＴＳの数を判断し、前記ＴＳ数とマルチＴＳ数閾値を比較し、前記処理切り替え手段の、任意の前記処理過程をハードウェアによって行うかソフトウェアによって行うかの切り替えを変更する処理切り替え命令を出力するマルチＴＳ数判断手段を備えることを特徴とするトランスポートストリーム処理装置。
【請求項１６】
請求項２に記載のトランスポートストリーム処理装置において、
前記状態判断手段として、ＴＳＰが前記同期手段に入力されてから所望のデータに分離されるまでの処理時間を判断し、前記処理時間と処理時間閾値を比較し、前記処理切り替え手段の、任意の前記処理過程をハードウェアによって行うかソフトウェアによって行うかの切り替えを変更する処理切り替え命令を出力するＴＳＰ処理時間判断手段を備えることを特徴とするトランスポートストリーム処理装置。
【請求項１７】
請求項２に記載のトランスポートストリーム処理装置において、
前記状態判断手段として、前記プロセッサ上で動作するソフトウェアが稼動している割合、ＣＰＵ稼働率を判断し、前記ＣＰＵ稼働率とＣＰＵ稼働率閾値を比較し、前記処理切り替え手段の、任意の前記処理過程をハードウェアによって行うかソフトウェアによって行うかの切り替えを変更する処理切り替え命令を出力するＣＰＵ稼働率判断手段を備えることを特徴とするトランスポートストリーム処理装置。
【請求項１８】
請求項２に記載のトランスポートストリーム処理装置において、
前記状態判断手段として、ＰＩＤを判断し、前記ＰＩＤとＰＩＤ閾値を比較し、前記処理切り替え手段の、任意の前記処理過程をハードウェアによって行うかソフトウェアによって行うかの切り替えを変更する処理切り替え命令を出力するＰＩＤ判断手段を備えることを特徴とするトランスポートストリーム処理装置。
【請求項１９】
請求項７に記載のトランスポートストリーム処理装置において、
前記状態判断手段として、１ＴＳＰ内に多重されているマルチセクション数を判断し、前記マルチセクション数とマルチセクション閾値を比較し、前記処理切り替え手段の、任意の前記処理過程をハードウェアによって行うかソフトウェアによって行うかの切り替えを変更する処理切り替え命令を出力するマルチセクション数判断手段を備えることを特徴とするトランスポートストリーム処理装置。
【請求項２０】
請求項３に記載のトランスポートストリーム処理装置において、
前記セクションは、番組情報およびユーザ情報を転送する転送単位であることを特徴とするトランスポートストリーム処理装置。
【請求項２１】
請求項４に記載のトランスポートストリーム処理装置において、
前記パッケージドエレメンタリストリーム（ＰＥＳ）パケットは、画像、音声および字幕を転送する転送単位であることを特徴とするトランスポートストリーム処理装置。
【請求項２２】
請求項１に記載のトランスポートストリーム処理装置を有するデジタル放送受信機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル放送受信機において、トランスポートストリームパケット（ＴＳＰ）形式で入力されるデータを処理するトランスポートストリーム処理装置およびそれを有するデジタル放送受信機に関する。
【背景技術】
【０００２】
日本国内において１９９５年から放送されているＣＳデジタル放送、２０００年１２月１日から放送されているＢＳデジタル放送では、放送局側にデジタル情報を圧縮した映像情報、音声情報、およびそれに付加される番組情報等の付加情報などをＭＰＥＧ２システム規格によって多重化したトランスポートストリーム（ＴＳ）をデジタル変調して送信している。そして、デジタル放送受信機においては、受信した信号をデジタル復調してえられたトランスポートストリーム（ＴＳ）から映像、音声、その他の情報を分離して再生するようになっており、このようなデジタル放送受信機は普及しつつある。
【０００３】
このようにして、デジタル放送における映像や音声などの多重化データはトランスポートストリームパケット（ＴＳＰ）と呼ばれる固定長のデータ列であるトランスポートストリーム（ＴＳ）に乗せて送られる。
【０００４】
図２０は、トランスポートストリームパケット（ＴＳＰ）の一般的なフォーマットを示す模式図である。トランスポートストリームパケット（ＴＳＰ）は１８８バイト固定長のパケットで、最初の４バイトは特にパケットヘッダと呼ばれている。１バイト目はトランスポートストリームパケット（ＴＳＰ）を処理する処理装置と同期を取るための同期バイトであり、データ値は常に”４７ｈ”（ｈは１６進数を意味する）である。以降、復調回路にてデータエラーを検出した場合に’１’が立つトランスポートエラーインジケーター（ＴＥＩ）ビット、セクションまたはパッケージドエレメンタリストリーム（ＰＥＳ）パケットの先頭があることを示すペイロードユニット開始インジケータ（ＰＵＳＩ）ビット、ＴＳＰのスクランブル情報を示すトランスポートスクランブル制御（ＴＳＣ）ビット、アダプテーションフィールドの有無を示すＡＦＣビット、パケットの連続性を示すコンティニュイティカウンタ（ＣＣ）などがアサインされている。
【０００５】
５バイト目以降は、可変長（Ｎバイト）のアダプテーションフィールドと可変長の（１８８−４−Ｎバイト）のペイロードとで構成される。ペイロードのエリアには、画像や音声、字幕を含むＰＥＳパケット、受信者を特定するための情報や各種サービス情報などが格納されている。
【０００６】
デジタル放送受信機で受信したＴＳＰは必要なデータのみを取り出すフィルタリングや、特定の契約者のみが視聴できるようにスクランブルがかかっているデータのデスクランブルが施されてから出力される。出力先はＣＰＵがアクセス可能なメモリや音声／映像を取り出すＡＶデコーダなどがある。そのようにＴＳＰにフィルタリングやデスクランブルなどの処理を施して所望のデータを分離し取り出す装置をトランスポートストリーム分離装置と呼ぶ。
【０００７】
従来のトランスポートストリーム分離装置はＰＩＤフィルタリングやデスクランブルなどのトランスポートストリーム分離のための処理過程をすべてハードウェアで行う実装となっている。この他、トランスポートストリーム分離処理過程をすべてソフトウェアで行う実装や、ＰＩＤフィルタリング、デスクランブルをハードウェアで行い、セクションフィルタリング、ＣＲＣチェックをソフトウェアで行うと言ったハードウェアとソフトウェアで処理を分割する実装も考えられる。
【０００８】
例えば、トランスポートストリーム分離のための複数の処理過程のすべてをハードウェアで行っているトランスポートストリーム分離装置について、特許文献１，特許文献２，および特許文献３が開示されており、トランスポートストリーム分離のための複数の処理過程をハードウェアとソフトウェアとで分担するトランスポートストリーム分離装置について、特許文献４が開示されている。
【特許文献１】特開平１０−３４１４１９
【特許文献２】特開２０００−１３４４８（Ｐ２０００−１３４４８Ａ）
【特許文献３】特開平１１−２３９１８６
【特許文献４】特開平１０−２１０４６１
【発明の開示】
【発明が解決しようとする課題】
【０００９】
トランスポートストリーム分離のための複数の処理過程をすべてハードウェアで行う場合、起こり得るすべての状況や状態（例えば、多数マルチセクションのリアルタイム処理、多種スクランブル方式等）に対応しようとすると、高い動作周波数や、回路追加が必要になってしまう。また、すべてソフトウェアで行う場合、常に高いＣＰＵパワーを必要としてしまう。また処理を分割する実装も、処理の分割方法が固定していては最大の性能を発揮できない可能性がある。
【００１０】
例えば、図２３は従来においてＮ個のマルチセクションを処理した場合の処理時間の相関を表した図である。マルチセクション数の増加に従い、セクションフィルタにかかる時間の合計時間が増加する。ハードウェアがすべてのセクションフィルタリングを終了するまでの時間が、次に処理すべきＴＳＰ到着までの時間を超えてしまった場合、トランスポートストリーム分離処理のリアルタイム性を保証できない。これを解決するためには先の処理時間を短縮するための動作周波数の向上や、処理時間が間に合わないＴＳＰを一時記憶するためのバッファの増加などの修正が必要であった。
【課題を解決するための手段】
【００１１】
上記課題を達成するため、本発明のトランスポートストリーム処理装置は、トランスポートストリーム（ＴＳ）から所望のデータを分離するために複数の処理過程を備えたトランスポートストリーム処理装置であって、ハードウェアトランスポートストリーム分離手段とソフトウェアトランスポートストリーム分離手段と、任意の処理過程を前記両分離手段のいずれで行うかを切り替える処理切り替え手段とを備えたことを特徴とするものである。
【００１２】
本発明によると、トランスポートストリーム（ＴＳ）の分離をハードウェアによる処理とソフトウェアによる処理との分担を固定ではなく、切り替え可能な構成としており、状況に応じてハードウェアによる処理とソフトウェアによる処理との分担を切り替えることで、従来、動作周波数の向上や回路追加を引き換えにハードウェアで実装しなければならなかった処理をソフトウェアで行うことが可能となる。またソフトウェアで行っていた処理をハードウェアに実装した場合、その処理過程を切り替えることが可能となる。効率的にハードウェア、ソフトウェアの処理能力を利用することが可能となり、またハードウェアの処理能力限界前に、処理の一部をソフトウェアに切り替える事によるフェールソフトなトランスポートストリーム処理装置を構成可能となる。
【００１３】
上記切り替えの判断要素となる状態としては、入力されるＴＳのビットレート、ＴＳＰを一時的に格納するための一時記憶手段のＴＳＰ蓄積数、入力されるＴＳの本数、トランスポートストリーム分離処理の処理時間、ＣＰＵ稼働率、ＰＩＤ、１ＴＳＰ内に含まれるマルチセクション数などが考えられる。切り替え可能な処理過程として、ＰＩＤフィルタ、デスクランブラ、セクションフィルタ、ＣＲＣチェック、ＰＥＳパケットフィルタなどが考えられ各々の処理過程を切り替えるための手段を備える事を特徴とする。
【００１４】
なお、ハードウェアとソフトウェアとの間で処理過程を切り替えるためには、任意の処理過程の入出力をハードウェアとソフトウェアの間で互いにアクセス可能な構成にする必要がある。そのための手段として、プロセッサと、トランスポートストリーム分離のための任意の処理過程の出力結果をソフトウェアからアクセス可能なメモリに出力する出力手段と、ソフトウェアによって処理を施されたデータを任意の処理過程に入力するための入力手段とを備えることが好ましい。
【発明の効果】
【００１５】
本発明によれば、状況に応じてハードウェアによる処理とソフトウェアによる処理の分担を切り替えることで、従来動作周波数の向上や回路追加を引き換えにハードウェアで実装しなければならなかった処理をソフトウェアで行うことが可能となる。また、ソフトウェアで行っていた処理をハードウェアに実装した場合、その処理過程を切り替えることが可能となる。よって、効率的にハードウェア、ソフトウェアの処理能力を利用することが可能となり、またハードウェアの処理能力限界前に、処理の一部をソフトウェアに切り替えることによるフェールソフトなトランスポート分離装置およびそれを有するデジタル放送受信機を構成可能となる。
【発明を実施するための最良の形態】
【００１６】
本発明の実施の形態を説明する前に、本発明が実施されるデジタル放送受信機内のデータ受信に関わる基本構成の概略を図２１，２２を参照して説明する。
【００１７】
図２１はデジタル放送受信機内のデータ受信に関わる構成を概略して示すブロック図である。主に、プロセッサとしてのＣＰＵ（プロセッサ）２１１と、ＣＰＵ２１１上で動作するソフトウェアがアクセス可能なメモリ（記憶手段）２１２と、受信電波の中から目的の搬送波を周波数選択し、さらに復調および誤り訂正を行い、搬送波から１つのトランスポートストリームを選択し出力する処理までを行うチューナー２１７と、トランスポートストリーム分離装置２１３がデータ受信に関わる。二重線矢印はデータの流れを示す。トランスポートストリーム分離装置は同期手段２１０１と、ＰＩＤフィルタ２１０２と、デスクランブラ２１０３と、セクションフィルタ２１０４と、ＣＲＣチェック手段２１０５と、メモリ出力手段２１０６と、ＰＥＳパケットフィルタ２１０７とを備える。ＰＩＤはパケット識別子と同義である。
【００１８】
同期手段２１０１は、入力されるＴＳから先頭データを検出し、ＴＳＰを抽出、出力する。
【００１９】
ＰＩＤフィルタ２１０２は、同期手段２１０１から入力されたＴＳＰのＰＩＤを基に、必要なＴＳＰだけを出力し、必要でないＴＳＰを破棄する。デスクランブラ２１０３はＰＩＤフィルタ２１０２から入力されるＴＳＰのＴＳＣを判断し、スクランブルがかかっていた場合、データにかかったスクランブルを解除（デスクランブル）し、ＴＳ２１０２として出力する。スクランブルがかかっていなかった場合、何もせずにＴＳ２１０２として出力する。
【００２０】
セクションフィルタ２１０４は、入力されるＴＳＰの中からセクションを取り出し、セクションのヘッダ部に対してフィルタリングを行い、必要なセクションだけをＴＳ２１０３として出力し、必要でないセクションを破棄する。
【００２１】
ＣＲＣチェック手段２１０５は、セクションフィルタ２１０４によって出力されたセクションのＣＲＣエラーをチェックしＣＲＣチェック結果を付与して出力手段２１０６よりＴＳ２１０４をメモリ２１２に出力する。ただしＣＲＣを持たないセクション（ＳＳＩ（Ｓｅｃｔｉｏｎ  Ｓｙｎｔａｘ  Ｉｎｄｉｃａｔｏｒ）＝０のセクション）に関しては、ＣＲＣチェックを行わず、そのまま出力する。ＰＥＳパケットフィルタ２１０７は、入力されるＴＳ２１０２の中からＰＥＳパケットを取り出し、ＰＥＳパケットヘッダに対してフィルタリングを行い、必要なＰＥＳパケットをＴＳ２１０５として出力手段２１０６よりメモリ２１２へ出力し、必要でないＰＥＳパケットを破棄する。
【００２２】
セクション取得処理の例をフローチャートを図２２に示す。ハードウェアによるトランスポートストリーム分離ステップｓ２２１として同期ステップｓ２２０１、ＰＩＤフィルタリングステップｓ２２０２、デスクランブラステップｓ２２０３、セクションフィルタリングステップｓ２２０４、ＣＲＣチェックステップｓ２２０５を持つ。ステップｓ２２０１は、同期ステップで、入力されるＴＳから先頭データを検出し、ＴＳＰを抽出し、ステップｓ２２０２に進む。ステップｓ２２０２は、ＰＩＤフィルタリングステップで、入力されたＴＳＰのＰＩＤを基に、必要なＴＳＰだけを取り出し、必要でないＴＳＰを破棄して次のステップｓ２２０３に進む。ステップｓ２２０３は、デスクランブルステップで、ＴＳＰのトランスポートスクランブルコントロール（ＴＳＣ）を判断し、スクランブルがかかっていた場合、データにかかったスクランブルを解除（デスクランブル）し、スクランブルがかかっていなかった場合、何もせずにステップｓ２２０４に進む。ｓ２２０４はセクションフィルタリングステップで、入力されるＴＳＰの中からセクションを取り出し、セクションのヘッダ部に対してフィルタリングを行い、必要なセクションを取り出し、必要でないセクションは破棄しｓ２２０５に進む。ステップｓ２２０５は、ＣＲＣチェックステップで、セクションのＣＲＣエラーをチェックしｓ２２０６に進む。ステップｓ２２０６はメモリ出力ステップで、ｓ２２０５までで処理されたデータをＣＰＵよりアクセス可能なメモリに出力する。
【００２３】
以下、本発明の実施の形態について図面を参照して説明する。
【００２４】
（実施の形態１）
図１および図２を参照して実施の形態１を説明する。図１は実施の形態１のデジタル放送受信機内のデータ受信に関わる構成を概略して示すブロック図である。デジタル放送受信装置では、主に、プロセッサとしてのＣＰＵ１１と、ＣＰＵ１１上で動作するソフトウェアがアクセス可能なメモリ（記憶手段）１２と、受信電波の中から目的の搬送波を周波数選択し、さらに復調および誤り訂正を行い、搬送波から１つのトランスポートストリームを選択し出力する処理までを行うチューナー１７と、トランスポートストリーム処理装置がデータ受信に関わる。単線矢印は制御の流れを示し、二重線矢印はデータの流れを示す。図１において、実施の形態１のトランスポートストリーム処理装置は、ハードウェアトランスポートストリーム分離手段１３と、ソフトウェアトランスポートストリーム分離手段１４と、トランスポートストリーム分離処理をハードウェアトランスポートストリーム分離手段１３によるハードウェアで行うか、ソフトウェアトランスポートストリーム分離手段１４によるソフトウェアで行うかを切り替える処理切り替え手段１５とを備える。
【００２５】
ハードウェアトランスポートストリーム分離手段１３は、同期手段１０１と、ＰＩＤフィルタ１０２と、デスクランブラ１０３と、セクションフィルタ１０４と、ＣＲＣチェック手段１０５と、出力手段１０６とを備える。同期手段１０１は、入力されるトランスポートストリーム（ＴＳ）から先頭データを検出し、トランスポートストリームパケット（ＴＳＰ）を抽出して出力する。ＰＩＤフィルタ（ＰＩＤフィルタリング手段）１０２は、同期手段１０１から入力されたＴＳＰのＰＩＤを基に、必要なＴＳＰだけをＴＳ１０１として出力し、必要でないＴＳＰを破棄する。デスクランブラ１０３は、ＰＩＤフィルタ１０２から入力されるＴＳ１０１のトランスポートスクランブルコントロール（ＴＳＣ）を判断し、スクランブルがかかっていた場合、データにかかったスクランブルを解除（デスクランブル）し、ＴＳ１０２として出力する。スクランブルがかかっていなかった場合、何もせずにＴＳ１０２として出力する。
【００２６】
ソフトウェアトランスポートストリーム分離手段１４は、セクションフィルタ（セクションフィルタリング手段）１０７と、ＣＲＣチェック手段１０８とを備える。
【００２７】
処理切り替え手段１５は、セクションフィルタ１０４とセクションフィルタ１０７とのいずれかのセクションフィルタ処理を切り替えるセクションフィルタ切り替えフラグと、ＣＲＣチェック手段１０５とＣＲＣチェック手段１０８とのいずれかのＣＲＣチェック処理を切り替えるＣＲＣチェック切り替えフラグとを備える。なお、セクションフィルタ切り替えフラグとＣＲＣチェック切り替えフラグとの両フラグはＣＰＵ１１により設定可能である。
【００２８】
以下、セクションフィルタ切り替えフラグの状態とＣＲＣチェック切り替えフラグの状態とによる処理の切り替えついて説明する。
【００２９】
セクションフィルタ切り替えフラグが無効な場合、従来の通り、ハードウェアトランスポートストリーム分離手段１３によるセクションフィルタリングを行う。セクションフィルタ１０４は、入力されるＴＳＰの中からセクションを取り出し、セクションのヘッダ部に対してフィルタリングを行う。セクションフィルタ１０４は、フィルタリングの結果、必要なセクションはセクション開始ログを付与してＴＳ１０３として出力し、必要でないセクションは破棄する。
【００３０】
セクションフィルタ切り替えフラグが有効な場合、ハードウェアトランスポートストリーム分離手段１３によるセクションフィルタリングを行わずに、ＴＳ１０２にセクションフィルタリングスルー（通過）ログを付与して出力手段１０６よりメモリ（記憶手段）１２に出力する。
【００３１】
ＣＲＣチェック切り替えフラグが無効な場合、従来例通りハードウェアによるＣＲＣチェックを行う。ＣＲＣチェック手段１０５は、セクションフィルタ１０４からの出力ＴＳ１０３のセクションのＣＲＣエラーをチェックし、ＣＲＣチェック結果ログを付与して出力手段１０６よりＴＳ１０４をメモリ１２に出力する。ただしＣＲＣを持たないセクション（ＳＳＩ（Ｓｅｃｔｉｏｎ  Ｓｙｎｔａｘ  Ｉｎｄｉｃａｔｏｒ）＝０のセクション）に関しては、ＣＲＣチェック手段１０５は、ＣＲＣチェックを行わず、そのまま出力する。また、ＣＲＣチェック結果がＮＧだった場合、そのセクションを破棄する実装も考えられる。
【００３２】
ＣＲＣチェック切り替えフラグが有効な場合、ハードウェアによるＣＲＣチェックを行わず、ログは付与せずＴＳ１０３を出力手段１０６よりメモリ１２に出力する。
【００３３】
次にメモリ１２に格納されたデータに対するＣＰＵ１１の動作について説明する。
【００３４】
ＣＰＵ１１は、メモリ１２に格納されたパケットを処理する場合、最初にメモリ１２に格納されているパケットの前後に付加されたログを読み込み、ログの状態によって処理が切り替わる。また、ログではなく、処理切り替え手段１５のセクションフィルタ切り替えフラグ、ＣＲＣチェック切り替えフラグを見て処理を切り替える実装も考えられるが、実施の形態１ではログによる処理の切り替えについて説明する。
【００３５】
読み込んだログが、セクション開始ログ、ＣＲＣチェック結果ログを含んでいた場合、従来の通り、セクションの処理を行う。読み込んだログが、セクションフィルタリングスルー（通過）ログだった場合、ソフトウェアによるセクションフィルタリング、およびＣＲＣチェックを行う。セクションフィルタリングスルー（通過）ログを確認すると、ソフトウェアトランスポート分離手段１４は、書き込まれたパケットをメモリ１２から読み出しセクションフィルタ１０７にＴＳ１０７として入力する。セクションフィルタ１０７はＴＳ１０７に対して、セクションを取り出し、セクションのヘッダ部に対してフィルタリングを行い、必要なセクションだけをＴＳ１０８として出力し、必要でないセクションを破棄する処理を行う。
【００３６】
ここでＴＳ１０７は、ＴＳＰのペイロード部（全部、もしくは一部）であり、マルチセクションでセクションが格納されている可能性があるため、ソフトウェアセクションフィルタリング１０７は、書き込まれたペイロード部のセクションをすべてＴＳ１０８として出力するまで処理を続ける。この処理を続ける指標として、セクションフィルタリングスルー（通過）ログには、書き込んだペイロードの長さ（バイト数）情報を付与する事も考えられる。
【００３７】
また、ここでＴＳ１０７は、ＴＳＰのペイロード部（全部、もしくは一部）であり、格納されているセクションがＴＳＰをまたがるセクションである可能性があるため、その構成のためセクションフィルタリングスルー（通過）ログには、ＰＦ（Ｐｏｉｎｔｅｒ  Ｆｉｅｌｄ）情報、ＰＵＳＩ情報などを付与することも考えられる。ＣＲＣチェック手段１０８は、セクションフィルタ１０７によって出力されたセクションＴＳ１０８のＣＲＣエラーをチェックし、ＣＲＣチェック結果ログを付与してＴＳ１０９をメモリ１２に出力する。ただしＣＲＣを持たないセクション（ＳＳＩ（Ｓｅｃｔｉｏｎ  Ｓｙｎｔａｘ  Ｉｎｄｉｃａｔｏｒ）＝０のセクション）に関しては、ＣＲＣチェックを行わず、そのまま出力する。また、ＣＲＣチェック結果がＮＧだった場合、そのセクションを破棄する実装も考えられる。この際、ＣＲＣチェック手段１０８からの出力先のメモリ領域は、セクションフィルタ１０７の入力元のメモリ領域同じであっても異なっていても構わない。また読み込んだログが、ＣＲＣチェック結果ログを含んでいなかった場合、ソフトウェアによるＣＲＣチェックを行う。ＣＲＣチェック結果ログを含んでいなかったことを確認すると、ソフトウェアトランスポート分離手段１４は、書き込まれたパケットをメモリ１２から読み出しＣＲＣチェック手段１０８にＴＳ１０８として入力する。
【００３８】
ＣＲＣチェック手段１０８は、ＴＳ１０８のＣＲＣエラーをチェックし、ＣＲＣチェック結果ログを付与してＴＳ１０９をメモリ１２に出力する。ただしＣＲＣを持たないセクション（ＳＳＩ（Ｓｅｃｔｉｏｎ  Ｓｙｎｔａｘ  Ｉｎｄｉｃａｔｏｒ）＝０のセクション）に関しては、ＣＲＣチェックを行わず、そのまま出力する。また、ＣＲＣチェック結果がＮＧだった場合、そのセクションを破棄する実装も考えられる。この際、ＣＲＣチェック手段１０８からの出力先のメモリ領域は、ＣＲＣチェック手段１０８の入力元のメモリ領域同じであっても異なっていても構わない。
【００３９】
このように、ハードウェアで行わなかったトランスポートストリーム分離処理をソフトウェアで行う事により、メモリに書き込むセクションに対して、従来通りの処理を施す事が可能となる。
【００４０】
処理のフローチャートを図２に示す。
【００４１】
処理切り替えステップｓ２３として、セクションフィルタのハードウェアとソフトウェアの処理を切り替えるセクションフィルタ切り替えステップｓ２０４、ＣＲＣチェックのハードウェアとソフトウェアの処理を切り替えるＣＲＣチェック切り替えステップｓ２０６を持つ場合を説明する。
【００４２】
ハードウェアによるトランスポートストリーム分離ステップｓ２１として同期ステップｓ２０１、ＰＩＤフィルタリングステップｓ２０２、デスクランブラステップｓ２０３、セクションフィルタリングステップｓ２０５、ＣＲＣチェックステップｓ２０７を持つ。ソフトウェアによるトランスポートストリーム分離ステップｓ２２としてセクションフィルタリングステップｓ２１０、ＣＲＣチェックステップｓ２１１を持つ。
【００４３】
以下、処理フローに従い説明する。
【００４４】
ステップｓ２０１は、同期ステップで、入力されるＴＳから先頭データを検出し、ＴＳＰを抽出し、ステップｓ２０２に進む。ステップｓ２０２は、ＰＩＤフィルタリングステップで、入力されたＴＳＰのＰＩＤを基に、必要なＴＳＰだけを取り出し、必要でないＴＳＰを破棄して次のステップｓ２０３に進む。ステップｓ２０３は、デスクランブルステップで、ＴＳＰのＴＳＣ（Ｔｒａｎｓｐｏｒｔ  Ｓｃｒａｍｂｌｅ  Ｃｏｎｔｒｏｌ）を判断し、スクランブルがかかっていた場合、データにかかったスクランブルを解除（デスクランブル）し、スクランブルがかかっていなかった場合、何もせずにステップｓ２０４に進む。
【００４５】
セクションフィルタ切り替えステップｓ２０４にて、セクションフィルタ切り替えフラグが無効ならば、ハードウェアによるトランスポート分離ステップｓ２１のｓ２０５に進む。有効ならば、ｓ２０９に進む。ｓ２０５はセクションフィルタリングステップで、入力されるＴＳＰの中からセクションを取り出し、セクションのヘッダ部に対してフィルタリングを行い、必要なセクションを取り出し、必要でないセクションは破棄しｓ２０６に進む。
【００４６】
ＣＲＣチェック切り替えステップｓ２０６にて、ＣＲＣチェック切り替えフラグが無効ならば、ハードウェアによるトランスポート分離ステップｓ２１のｓ２０７に進む。有効ならば、ソフトウェアによるトランスポート分離ステップｓ２２のｓ２１１に進む。
【００４７】
ステップｓ２０７は、ＣＲＣチェックステップで、セクションのＣＲＣエラーをチェックしｓ２０８に進む。ステップｓ２０８はメモリ出力ステップであり、ステップｓ２０７までで処理されたデータをＣＰＵ１１よりアクセス可能なメモリ１２に出力する。ステップｓ２０９はメモリ出力ステップで、ｓ２０３までで処理されたデータをＣＰＵ１１よりアクセス可能なメモリ１２に出力し、ソフトウェアによるトランスポート分離ステップｓ２２のｓ２１０に進む。ｓ２１０はセクションフィルタリングステップで、入力されるＴＳＰの中からセクションを取り出し、セクションのヘッダ部に対してフィルタリングを行い、必要なセクションを取り出し、必要でないセクションは破棄しｓ２１１に進む。ステップｓ２１１は、ＣＲＣチェックステップであり、セクションのＣＲＣエラーをチェックしてステップｓ２１２に進む。ステップｓ２１２はメモリ出力ステップで、ｓ２１１までで処理されたデータをＣＰＵ１１よりアクセス可能なメモリ１２に出力する。
【００４８】
以上のような、ハードウェアで行わなかったトランスポートストリーム分離ステップをソフトウェアで行う事により、メモリに書き込むセクションに対して、従来と同じ処理を施す事が可能となる。
【００４９】
（実施の形態２）
図３ないし図５を参照して、実施の形態２を説明する。実施の形態２においては、ハードウェアトランスポートストリーム分離手段に、状態判断手段３６として、マルチセクション数判断手段３１１を備えている。マルチセクション数判断手段３１１は、デスクランブラ３０３から出力されるＴＳ３０２の１ＴＳＰ内に多重化されているマルチセクション数Ｎをペイロードの先頭より数え、ＣＰＵ（プロセッサ）３１より設定されるマルチセクション閾値ｎより大きくなったセクションよりソフトウェアによって処理するよう、処理切り替え制御信号を処理切り替え手段３５へ出力する。処理切り替え制御信号を受けた切り替え手段３５は、セクションフィルタ切り替えフラグを有効に変更し、ソフトウェアによるセクションフィルタ（セクションフィルタリング手段）３０７、同じくソフトウェアによるＣＲＣチェック（ＣＲＣチェック手段）３０８を行うようよう設定を切り替える。
【００５０】
マルチセクション閾値に０を設定した場合、すべてのセクションをソフトウェアによって処理するよう制御を行う事も可能である。また予めマルチセクション数を数え、マルチセクション閾値より大きいＴＳＰだった場合、ペイロードすべてソフトウェアによって処理するよう制御を行う事も可能である。
【００５１】
処理のフローチャートを図４に示す。
【００５２】
実施の形態２では、図２のフローチャートを基本に、状態判断ステップｓ４４として、マルチセクション数判断ステップｓ４０４を加えた場合を説明する。マルチセクション数判断ステップ４０４は、ハードウェアによるトランスポート分離ステップｓ４１のセクションフィルタリングステップｓ４０７、ＣＲＣチェックステップｓ４０８、メモリ３２出力ステップｓ４０９を行うごとにｓ４１１のマルチセクション数インクリメントステップでカウントされて行くマルチセクション数とＣＰＵ３１より設定されるマルチセクション閾値を比較し、マルチセクション数の方が大きくなった時点で、ｓ４０５によってセクションフィルタリング切り替えフラグを有効にし、ソフトウェアによるトランスポート分離ステップｓ４２に進むように処理を切り替える。セクションフィルタ切り替えステップｓ４０６にて、セクションフィルタ切り替えフラグが無効ならば、ハードウェアによるトランスポート分離ステップｓ４１のｓ４０７に進む。有効ならば、ｓ４１２に進む。ｓ４０７はセクションフィルタリングステップで、入力されるＴＳＰの中からセクションを取り出し、セクションのヘッダ部に対してフィルタリングを行い、必要なセクションを取り出し、必要でないセクションは破棄しｓ４０８に進む。ステップｓ４０８は、ＣＲＣチェックステップで、セクションのＣＲＣエラーをチェックしｓ４０９に進む。
【００５３】
ステップｓ４０９はメモリ出力ステップで、ｓ４０８までで処理されたデータをＣＰＵ３１よりアクセス可能なメモリ３２に出力する。ｓ４１０は入力されるＴＳＰの中のセクションをすべて処理したかを確認する。すべて処理していた場合、このＴＳＰに対する処理を終了する。まだ未処理のデータが存在する場合、ステップｓ４１１へ進む。ステップｓ４１１は先の説明であったように、ｓ４１で処理したセクションの数をマルチセクション数としてインクリメントし、ステップｓ４０４に進む。ステップｓ４１２はメモリ出力ステップであり、ステップｓ４１で処理されたデータの残りをＣＰＵ３１よりアクセス可能なメモリ３２に出力し、ソフトウェアによるトランスポート分離ステップｓ４２のｓ４１３に進む。ステップｓ４１３はセクションフィルタリングステップで、入力されるデータの中からセクションを取り出し、セクションのヘッダ部に対してフィルタリングを行い、必要なセクションを取り出し、必要でないセクションは破棄してステップｓ４１４に進む。
【００５４】
ステップｓ４１４は、ＣＲＣチェックステップであり、セクションのＣＲＣエラーをチェックしｓ４１５に進む。ステップｓ４１５はメモリ出力ステップで、ステップｓ４１４までで処理されたデータをＣＰＵ３１よりアクセス可能なメモリ（記憶手段）３２に出力してステップｓ４１６に進む。ステップｓ４１６は入力されるデータの中のセクションをすべて処理したかを確認する。すべて処理していた場合、このデータに対する処理を終了する。まだ未処理のデータが存在する場合、ｓ４１３へ戻り処理を続ける。また、格納されているセクションがＴＳＰをまたがるセクションである可能性があるため、その構成を行うためのステップを備えることも考えられる。
【００５５】
以上のような、状態判断ステップを加える事で、ハードウェアで行っていたトランスポートストリーム分離ステップを状況に応じてソフトウェアで行うよう動的に切り替えることが可能となる。
【００５６】
図５は、本発明においてＣＰＵ３１よりマルチセクション数判断手段３６のマルチセクション閾値にｎを設定した場合の、Ｎ個のマルチセクションを処理した場合の処理時間の相関を表した図である。セクションｎまでをハードウェアトランスポート分離手段３３で処理し、ｎ〜Ｎまでのセクションをソフトウェアトランスポート分離手段３４で処理するよう処理負荷を分散させている。これより、ハードウェアがすべてのセクションフィルタリングを終了するまでの時間が、次に処理すべきＴＳＰ到着までの時間を超えてしまうことを防ぐ事が出来る。
【００５７】
（実施の形態３）
図６および図７を参照して実施の形態３を説明する。図６に、図１のトランスポートストリーム処理装置においては、ハードウェアトランスポートストリーム分離手段１３に、状態判断手段６６として、処理時間判断手段６１１を加えた場合を説明する。
【００５８】
処理時間判断手段６１１は、デスクランブラ６０３から出力されるＴＳ６０２の処理開始から現在までの時間Ｔ１を計測し、ＣＰＵより設定される処理時間閾値ｔより大きくなった時点で、処理切り替え制御信号を処理切り替え手段６５へ出力する。処理切り替え制御信号を受けた切り替え手段６５は、セクションフィルタ切り替えフラグを有効に変更し、ソフトウェアによるセクションフィルタ６０７、ＣＲＣチェック６０８を行うようよう設定を切り替える。処理時間閾値に０を設定した場合、ペイロードをすべてソフトウェアによって処理するよう制御を行う事も可能である。
【００５９】
処理のフローチャートを図７に示す。
【００６０】
実施の形態３では、図２のフローチャートを基本に、状態判断ステップｓ７４として、処理時間判断ステップｓ７０４を加えた場合を説明する。ｓ７１１は、ｓ７０３までのハードウェアによるトランスポート分離ステップを終了し、次の処理を開始する処理開始時間を記憶する。処理時間判断ステップ７０４はＣＰＵ６１より設定される処理時間閾値と、現在時間―処理開始時間の差を比較し、現在時間―処理開始時間の差の方が大きくなった時点で、ｓ７０５によってセクションフィルタリング切り替えフラグを有効にし、ソフトウェアによるトランスポート分離ステップｓ７２に進むように処理を切り替える。セクションフィルタ切り替えステップｓ７０６にて、セクションフィルタ切り替えフラグが無効ならば、ハードウェアによるトランスポート分離ステップｓ７１のｓ７０７に進む。有効ならば、ｓ７１２に進む。ｓ７０７はセクションフィルタリングステップで、入力されるＴＳＰの中からセクションを取り出し、セクションのヘッダ部に対してフィルタリングを行い、必要なセクションを取り出し、必要でないセクションは破棄しｓ７０８に進む。ステップｓ７０８は、ＣＲＣチェックステップで、セクションのＣＲＣエラーをチェックしｓ７０９に進む。
【００６１】
ステップｓ７０９はメモリ出力ステップであり、ステップｓ７０８までで処理されたデータをＣＰＵ６１よりアクセス可能なメモリ６２に出力する。ステップｓ７１０は入力されるＴＳＰの中のセクションをすべて処理したかを確認する。すべて処理していた場合、このＴＳＰに対する処理を終了する。まだ未処理のデータが存在する場合、ステップｓ７０４へ戻り処理を続ける。ステップｓ７１２はメモリ出力ステップであり、ステップｓ７１で処理されたデータの残りをＣＰＵ６１よりアクセス可能なメモリ６２に出力し、ソフトウェアによるトランスポート分離ステップｓ７２のｓ７１３に進む。ステップｓ７１３はセクションフィルタリングステップであり、入力されるデータの中からセクションを取り出し、セクションのヘッダ部に対してフィルタリングを行い、必要なセクションを取り出し、必要でないセクションは破棄してステップｓ７１４に進む。ステップｓ７１４は、ＣＲＣチェックステップで、セクションのＣＲＣエラーをチェックしてステップｓ７１５に進む。
【００６２】
ステップｓ７１５はメモリ出力ステップで、ステップｓ７１４までで処理されたデータをＣＰＵ６１よりアクセス可能なメモリ６２に出力しｓ７１６に進む。ステップｓ７１６は入力されるデータの中のセクションをすべて処理したかを確認する。すべて処理していた場合、このデータに対する処理を終了する。まだ未処理のデータが存在する場合、ｓ７１３へ戻り処理を続ける。また、格納されているセクションがＴＳＰをまたがるセクションである可能性があるため、その構成を行うためのステップを備えることも考えられる。
【００６３】
以上のような、状態判断ステップを加える事で、ハードウェアで行っていたトランスポートストリーム分離ステップを状況に応じてソフトウェアで行うよう動的に切り替えることが可能となる。
【００６４】
（実施の形態４）
図８および図９を参照して実施の形態４を説明する。実施の形態４においては、処理切り替え手段８５に、ＰＥＳパケットフィルタのハードウェアとソフトウェアとの処理を切り替えるＰＥＳパケットフィルタ切り替えフラグを備え、ソフトウェアトランスポートストリーム分離手段８４としてＰＥＳパケットフィルタ８０６を備える。ＰＥＳパケットフィルタ切り替えフラグはＣＰＵ８１により設定可能である。
【００６５】
ハードウェアトランスポートストリーム分離手段８３は、同期手段８０１と、ＰＩＤフィルタ８０２と、デスクランブラ８０３と、セクションフィルタ８０４と、ＣＲＣチェック手段８０５と、出力手段８０６とを備える。同期手段８０１は、入力されるＴＳから先頭データを検出し、ＴＳＰを抽出、出力する。ＰＩＤフィルタ８０２は同期手段８０１から入力されたＴＳＰのＰＩＤを基に、必要なＴＳＰだけをＴＳ８０１として出力し、必要でないＴＳＰを破棄する。デスクランブラ８０３はＰＩＤフィルタ８０２から入力されるＴＳ８０１のトランスポートスクランブルコントロール（ＴＳＣ）を判断し、スクランブルがかかっていた場合、データにかかったスクランブルを解除（デスクランブル）し、ＴＳ８０２として出力する。スクランブルがかかっていなかった場合、何もせずにＴＳ８０２として出力する。
【００６６】
以下、ＰＥＳパケットフィルタ切り替えフラグの状態によって処理が切り替わる。
【００６７】
ＰＥＳパケットフィルタ切り替えフラグが無効な場合、従来例通りハードウェアによるＰＥＳパケットフィルタリングを行う。ＰＥＳパケットフィルタ８０４は、入力されるＴＳＰの中からＰＥＳパケットを取り出し、ＰＥＳパケットのヘッダ部に対してフィルタリングを行う。フィルタリング結果、必要なＰＥＳパケットはＰＥＳパケット開始ログを付与してＴＳ１０３として出力し、必要でないＰＥＳパケットは破棄する。ＰＥＳパケットフィルタ切り替えフラグが有効な場合、ハードウェアによるＰＥＳパケットフィルタリングを行わずに、ＴＳ１０２にＰＥＳパケットフィルタリングスルー（通過）ログを付与して出力手段８０５よりメモリ８２に出力する。
【００６８】
次にメモリ８２に格納されたデータに対するＣＰＵ８１の動作について説明する。
【００６９】
ＣＰＵ８１は、メモリ８２に格納されたパケットを処理する場合、最初にメモリ８２に格納されているパケットの前後に付加されたログを読み込み、ログの状態によって処理が切り替わる。また、ログではなく、処理切り替え手段８５のＰＥＳパケットフィルタ切り替えフラグを見て処理を切り替える実装も考えられるが、実施の形態４ではログによる処理の切り替えについて説明する。
【００７０】
読み込んだログが、ＰＥＳパケット開始ログを含んでいた場合、従来例通りＰＥＳパケットの処理を行う。読み込んだログが、ＰＥＳパケットフィルタリングスルー（通過）ログだった場合、ソフトウェアによるＰＥＳパケットフィルタリングを行う。ＰＥＳパケットフィルタリングスルー（通過）ログを確認すると、ソフトウェアトランスポート分離手段８４は、書き込まれたパケットをメモリ８２から読み出しＰＥＳパケットフィルタ８０６にＴＳ８０４として入力する。ＰＥＳパケットフィルタ８０６はＴＳ８０４に対して、ＰＥＳパケットを取り出し、ＰＥＳパケットのヘッダ部に対してフィルタリングを行い、必要なＰＥＳパケットだけをＴＳ８０５として出力し、必要でないＰＥＳパケットを破棄する処理を行う。
【００７１】
ここでＴＳ８０４は、ＴＳＰのペイロード部（全部、もしくは一部）であるため、ソフトウェアＰＥＳパケットフィルタ８０６は、書き込まれたペイロード部のＰＥＳパケットをすべてＴＳ８０５として出力するまで処理を続ける。この処理を続ける指標として、ＰＥＳパケットフィルタリングスルー（通過）ログには、書き込んだペイロードの長さ（ｂｙｔｅ数）情報を付与する事も考えられる。
【００７２】
また、ここでＴＳ８０４は、ＴＳＰのペイロード部（全部、もしくは一部）であり、格納されているＰＥＳパケットがＴＳＰをまたがるＰＥＳパケットである可能性があるため、その構成のためＰＥＳパケットフィルタリングスルー（通過）ログには、ＰＦ（Ｐｏｉｎｔｅｒ  Ｆｉｅｌｄ）情報、ＰＵＳＩ情報等を付与することも考えられる。この際、ＰＥＳパケットフィルタ８０４からの出力先のメモリ領域は、ＰＥＳパケットフィルタ８０６の入力元のメモリ領域同じであっても異なっていても構わない。
【００７３】
処理のフローチャートを図９に示す。
【００７４】
実施の形態４では、処理切り替えステップｓ９３として、ＰＥＳパケットフィルタのハードウェアとソフトウェアの処理を切り替えるＰＥＳパケットフィルタ切り替えステップｓ９０４を持つ場合を説明する。ハードウェアによるトランスポートストリーム分離ステップｓ９１として同期ステップｓ９０１、ＰＩＤフィルタリングステップｓ９０２、デスクランブラステップｓ９０３、ＰＥＳパケットフィルタリングステップｓ９０５を持つ。ソフトウェアによるトランスポートストリーム分離ステップｓ９２としてＰＥＳパケットフィルタリングステップｓ９０７を持つ。
【００７５】
以下処理フローに従い説明する。
【００７６】
ステップｓ９０１は、同期ステップで、入力されるＴＳから先頭データを検出し、ＴＳＰを抽出し、ステップ９０２に進む。ステップｓ９０２は、ＰＩＤフィルタリングステップで、入力されたＴＳＰのＰＩＤを基に、必要なＴＳＰだけを取り出し、必要でないＴＳＰを破棄して次のステップｓ９０３に進む。ステップｓ９０３は、デスクランブルステップで、ＴＳＰのＴＳＣを判断し、スクランブルがかかっていた場合、データにかかったスクランブルを解除（デスクランブル）し、スクランブルがかかっていなかった場合、何もせずにステップｓ９０４に進む。
【００７７】
ＰＥＳパケットフィルタ切り替えステップｓ９０４にて、ＰＥＳパケットフィルタ切り替えフラグが無効ならば、ハードウェアによるトランスポート分離ステップｓ９１のｓ９０５に進む。有効ならば、ステップｓ９０７に進む。
【００７８】
ステップｓ９０５はＰＥＳパケットフィルタリングステップであり、入力されるＴＳＰの中からＰＥＳパケットを取り出し、ＰＥＳパケットのヘッダ部に対してフィルタリングを行い、必要なＰＥＳパケットを取り出し、必要でないＰＥＳパケットは破棄してステップｓ９０６に進む。ステップｓ９０６はメモリ出力ステップで、ｓ９０５までで処理されたデータをＣＰＵ８１よりアクセス可能なメモリ８２に出力する。ステップｓ９０７はメモリ出力ステップで、ステップｓ９０３までで処理されたデータをＣＰＵ８１よりアクセス可能なメモリ８２に出力し、ソフトウェアによるトランスポート分離ステップｓ９２のステップｓ９０８に進む。
【００７９】
ステップｓ９０８はＰＥＳパケットフィルタリングステップであり、入力されるＴＳＰの中からＰＥＳパケットを取り出し、ＰＥＳパケットのヘッダ部に対してフィルタリングを行い、必要なＰＥＳパケットを取り出し、必要でないＰＥＳパケットは破棄しｓ９０９に進む。ステップｓ９０９はメモリ出力ステップであり、ステップｓ９０８までで処理されたデータをＣＰＵ８１よりアクセス可能なメモリ８２に出力する。
【００８０】
以上のような、ハードウェアで行わなかったトランスポートストリーム分離処理をソフトウェアで行う事により、メモリに書き込むＰＥＳパケットに対して、従来と同じ処理を施す事が可能となる。
【００８１】
（実施の形態５）
図１０および図１１を参照して実施の形態５を説明する。図１０は実施の形態５におけるデジタル放送受信機内のデータ受信に関わる構成を示したブロック図である。デジタル放送受信機では、主に、プロセッサとしてのＣＰＵ１０１と、ＣＰＵ１０１上で動作するソフトウェアがアクセス可能なメモリ（記憶手段）１０２と、受信電波の中から目的の搬送波を周波数選択し、さらに復調および誤り訂正を行い、搬送波から１つのトランスポートストリームを選択し出力する処理までを行うチューナー１０７と、トランスポートストリーム処理装置がデータ受信に関わる。単線矢印は制御の流れを示し、二重線矢印はデータの流れを示す。図１０において、トランスポートストリーム処理装置は、ハードウェアトランスポートストリーム分離手段１０３と、ソフトウェアトランスポートストリーム分離手段１０４と、それからトランスポートストリーム分離処理をハードウェアで行うかソフトウェアで行うかを切り替える処理切り替え手段１０５、状態判断手段１０６とを備える。
【００８２】
ソフトウェアトランスポートストリーム分離手段１０４としてＰＩＤフィルタ１００７デスクランブラ１００８、セクションフィルタ１００９、ＣＲＣチェック手段１０１０を備える。
【００８３】
また、処理切り替え手段１０５に、ＰＩＤフィルタのハードウェアとソフトウェアの処理を切り替えるＣＰＵ１０１により設定可能なＰＩＤフィルタリング切り替えフラグを備える。
【００８４】
また、ハードウェアトランスポートストリーム分離手段１３における状態判断手段１０６として、ビットレート判断手段１０１２を備える。なお、この状態判断手段１０６としては、後述の実施の形態において、一時記憶手段ＴＳＰ数判断手段１０１３、もしくはマルチＴＳ数判断手段１０１４、もしくはＣＰＵ稼働率判断手段１０１５、もしくはＰＩＤ不等号判断手段１０１６を備えた場合を説明する。
【００８５】
ハードウェアトランスポートストリーム分離手段１０３は、同期手段１００１と、ＰＩＤフィルタ１００２と、デスクランブラ１００３と、セクションフィルタ１００４と、ＣＲＣチェック１００５と、出力手段１００６とを備える。
【００８６】
同期手段１００１は、入力されるＴＳから先頭データを検出し、ＴＳＰを抽出、出力する。
【００８７】
以下、ＰＩＤフィルタ切り替えフラグの状態によって処理が切り替わる。
【００８８】
ＰＩＤフィルタ切り替えフラグが無効な場合、ＰＩＤフィルタ１００２は同期手段１００１から入力されたＴＳＰのＰＩＤを基に、必要なＴＳＰだけをＴＳ１００１として出力し、必要でないＴＳＰを破棄する。デスクランブラ１００３はＰＩＤフィルタ１００２から入力されるＴＳ１００１のＴＳＣを判断し、スクランブルがかかっていた場合、データにかかったスクランブルを解除（デスクランブル）し、ＴＳ１００２として出力する。スクランブルがかかっていなかった場合、何もせずにＴＳ１００２として出力する。
【００８９】
セクションフィルタ１００４は、入力されるＴＳＰの中からセクションを取り出し、セクションのヘッダ部に対してフィルタリングを行う。フィルタリング結果、必要なセクションはセクション開始ログを付与してＴＳ１００３として出力し、必要でないセクションは破棄する。
【００９０】
ＣＲＣチェック手段１００５は、セクションフィルタ１００４からの出力ＴＳ１００２のセクションのＣＲＣエラーをチェックし、ＣＲＣチェック結果ログを付与して出力手段１００６よりＴＳ１００４をメモリ１０２に出力する。ただしＣＲＣを持たないセクション（ＳＳＩ（Ｓｅｃｔｉｏｎ  Ｓｙｎｔａｘ  Ｉｎｄｉｃａｔｏｒ）＝０のセクション）に関しては、ＣＲＣチェックを行わず、そのまま出力する。また、ＣＲＣチェック結果がＮＧだった場合、そのセクションを破棄する実装も考えられる。
【００９１】
ＰＩＤフィルタ切り替えフラグが有効な場合、ハードウェアによるトランスポート分離処理を行わず、同期手段１００１から入力されたＴＳＰ出力手段１００６よりメモリ１０２へ出力する。
【００９２】
ソフトウェアトランスポート分離手段１０４は、書き込まれたパケットをメモリ１０２から読み出しＰＩＤフィルタ１００７にＴＳＰとして入力する。ＰＩＤフィルタ１００７は入力されたＴＳＰのＰＩＤを基に、必要なＴＳＰだけをＴＳ１００５として出力し、必要でないＴＳＰを破棄する。デスクランブラ１００８はＰＩＤフィルタ１００７から入力されるＴＳ１００５のＴＳＣを判断し、スクランブルがかかっていた場合、データにかかったスクランブルを解除（デスクランブル）し、ＴＳ１００６として出力する。スクランブルがかかっていなかった場合、何もせずにＴＳ１００６として出力する。
【００９３】
セクションフィルタ１００９は、入力されるＴＳＰの中からセクションを取り出し、セクションのヘッダ部に対してフィルタリングを行う。フィルタリング結果、必要なセクションはＴＳ１００７として出力し、必要でないセクションは破棄する。
【００９４】
ＣＲＣチェック手段１０１０は、セクションフィルタ１００９からの出力ＴＳ１００７のセクションのＣＲＣエラーをチェックし、ＣＲＣチェック結果ログを付与してＴＳ１００８をメモリ１０２に出力する。ただしＣＲＣを持たないセクション（ＳＳＩ（Ｓｅｃｔｉｏｎ  Ｓｙｎｔａｘ  Ｉｎｄｉｃａｔｏｒ）＝０のセクション）に関しては、ＣＲＣチェックを行わず、そのまま出力する。また、ＣＲＣチェック結果がＮＧだった場合、そのセクションを破棄する実装も考えられる。この際、ＣＲＣチェック手段１０１０からの出力先のメモリ領域は、出力手段１００６の出力先のメモリ領域が同じであっても異なっていても構わない。
【００９５】
以上のように、ハードウェアで行うトランスポートストリーム分離ステップをソフトウェアで行い、メモリに書き込むセクションに対して、従来と同じ処理を施す事が可能となる。
【００９６】
以下に状態判断手段１０６としてビットレート判断手段１０１２を備えて、トランスポートストリーム分離ステップを切り替える場合を説明する。
【００９７】
ビットレート判断手段１０１２は、同期手段１００１に入力されるＴＳのビットレートを判断し、ＣＰＵ１０１より設定されるビットレート閾値より大きくなった時点で、ソフトウェアによってトランスポート分離処理を行うよう、処理切り替え制御信号を処理切り替え手段１０５へ出力する。
【００９８】
処理切り替え制御信号を受けた処理切り替え手段１０５は、ＰＩＤフィルタ切り替えフラグを有効に変更し、ソフトウェアによるトランスポート分離処理を行うようよう設定を切り替える。
【００９９】
処理のフローチャートを図１１に示す。
【０１００】
実施の形態５では、処理切り替えステップｓ１１３として、ｓ１１１のハードウェアによるＰＩＤフィルタリング以降の処理と、ｓ１１２のソフトウェアによるＰＩＤフィルタリング以降の処理とに切り替えるＰＩＤフィルタリング切り替えステップｓ１１０４を持ち、状態判断ステップｓ１１４として、ビットレート判断ステップｓ１１０２を持つ場合を説明する。
【０１０１】
ハードウェアによるトランスポートストリーム分離ステップｓ１１１として同期ステップｓ１１０１、ＰＩＤフィルタリングステップｓ１１０５、デスクランブラステップｓ１１０６、セクションフィルタリングステップｓ１１０７、ＣＲＣチェックステップｓ１１０８を持つ。
【０１０２】
ソフトウェアによるトランスポートストリーム分離ステップｓ１１２としてＰＩＤフィルタリングステップｓ１１１１、デスクランブラステップｓ１１１２、セクションフィルタリングステップｓ１１１３、ＣＲＣチェックステップｓ１１１４を持つ。以下処理フローに従い説明する。ステップｓ１１０１は、同期ステップで、入力されるＴＳから先頭データを検出し、ＴＳＰを抽出し、ステップ１１０２に進む。
【０１０３】
ビットレート判断ステップ１１０２は、同期ステップ１１０１に入力されるＴＳのビットレートを判断し、ＣＰ１０１Ｕより設定されるビットレート閾値より大きくなった場合、ステップｓ１１０３によってＰＩＤフィルタ切り替えフラグを有効にし、ソフトウェアによるトランスポート分離ステップｓ１１２に進むように処理を切り替える。
【０１０４】
ＰＩＤフィルタ切り替えステップｓ１１０４にて、ＰＩＤフィルタ切り替えフラグが無効ならば、ハードウェアによるトランスポート分離ステップｓ１１１のｓ１１０５に進む。有効ならば、ステップｓ１１１０に進む。
【０１０５】
ステップｓ１１０５は、ＰＩＤフィルタリングステップで、入力されたＴＳＰのＰＩＤを基に、必要なＴＳＰだけを取り出し、必要でないＴＳＰを破棄して次のステップｓ１１０６に進む。ステップｓ１１０６は、デスクランブルステップで、ＴＳＰのＴＳＣを判断し、スクランブルがかかっていた場合、データにかかったスクランブルを解除（デスクランブル）し、スクランブルがかかっていなかった場合、何もせずにステップｓ１１０７に進む。
【０１０６】
ｓ１１０７はセクションフィルタリングステップで、入力されるＴＳＰの中からセクションを取り出し、セクションのヘッダ部に対してフィルタリングを行い、必要なセクションを取り出し、必要でないセクションは破棄しｓ１１０８に進む。ステップｓ１１０８は、ＣＲＣチェックステップで、セクションのＣＲＣエラーをチェックしｓ１１０９に進む。ステップｓ１１０９はメモリ出力ステップで、ｓ１１０８までで処理されたデータをＣＰＵ１０１よりアクセス可能なメモリ１０２に出力する。
【０１０７】
次にソフトウェアによるトランスポート分離ステップｓ１１２進む場合の処理を説明する。ステップｓ１１１０はメモリ出力ステップで、ｓ１１０１までで処理されたデータをＣＰＵよりアクセス可能なメモリに出力し、ソフトウェアによるトランスポート分離ステップｓ１１２のｓ１１１１に進む。ステップｓ１１１１は、ＰＩＤフィルタリングステップで、入力されたＴＳＰのＰＩＤを基に、必要なＴＳＰだけを取り出し、必要でないＴＳＰを破棄して次のステップｓ１１１２に進む。
【０１０８】
ステップｓ１１１２は、デスクランブルステップで、ＴＳＰのＴＳＣを判断し、スクランブルがかかっていた場合、データにかかったスクランブルを解除（デスクランブル）し、スクランブルがかかっていなかった場合、何もせずにステップｓ１１１３に進む。
【０１０９】
ステップｓ１１１３はセクションフィルタリングステップで、入力されるＴＳＰの中からセクションを取り出し、セクションのヘッダ部に対してフィルタリングを行い、必要なセクションを取り出し、必要でないセクションは破棄してステップｓ１１１４に進む。
【０１１０】
ステップｓ１１１４は、ＣＲＣチェックステップであり、セクションのＣＲＣエラーをチェックしてステップｓ１１１５に進む。ステップｓ１１１５はメモリ出力ステップであり、ステップｓ１１１４までで処理されたデータをＣＰＵ１０１よりアクセス可能なメモリ１０２に出力する。
【０１１１】
ＣＰＵ１０１より設定可能なビットレート閾値を、ハードウェアトランスポートストリーム分離手段１０３の処理可能な最大入力ＴＳビットレート値に設定しておけば、ハードウェアトランスポートストリーム分離手段１０３に処理不能なＴＳが入力される前に、トランスポート分離処理をソフトウェアトランスポートストリーム分離手段１０４に切り替える事によって、システムの停止を防ぎ、フェールソフトなトランスポートストリーム処理装置を構成可能となる。
【０１１２】
また、実施の形態５ではデスクランブラの後段の処理にセクションフィルタリング、ＣＲＣチェックを行った場合について説明したが、ＰＥＳパケットフィルタリングを行った場合も同様である。
【０１１３】
（実施の形態６）
図１２および図１３を参照して実施の形態６を説明する。実施の形態６においては、状態判断手段１０６として、一時記憶手段ＴＳＰ数判断手段１２１３と、一時記憶手段１２１４とを備える。一時記憶手段ＴＳＰ数判断手段１２１３は、同期手段１２０１から出力されるＴＳＰを一時的に記憶する一時記憶手段１２１４に記憶されているＴＳＰ数を判断し、ＣＰＵ１２１より設定されるＴＳＰ閾値より大きくなった時点で、ソフトウェアによってトランスポート分離処理を行うよう、処理切り替え制御信号を処理切り替え手段１２５へ出力する。処理切り替え制御信号を受けた切り替え手段１２５は、ＰＩＤフィルタ切り替えフラグを有効に変更し、ソフトウェアによるトランスポート分離処理を行うようよう設定を切り替える。
【０１１４】
処理のフローチャートを図１３に示す。
【０１１５】
実施の形態６では、処理切り替えステップｓ１３３として、ｓ１３１のハードウェアによるＰＩＤフィルタリング以降の処理と、ｓ１３２のソフトウェアによるＰＩＤフィルタリング以降の処理とに切り替えるＰＩＤフィルタリング切り替えステップｓ１３０４を持ち、状態判断ステップｓ１３４として、ＴＳＰ数判断ステップｓ１３０３を持つ場合を説明する。
【０１１６】
ハードウェアによるトランスポートストリーム分離ステップｓ１３１として同期ステップｓ１３０１、一時記憶ステップ１３０２、ＰＩＤフィルタリングステップｓ１３０６、デスクランブラステップｓ１３０７、セクションフィルタリングステップｓ１３０８、ＣＲＣチェックステップｓ１３０９を持つ。
【０１１７】
ソフトウェアによるトランスポートストリーム分離ステップｓ１３２としてＰＩＤフィルタリングステップｓ１３１２、デスクランブラステップｓ１３１３、セクションフィルタリングステップｓ１３１４、ＣＲＣチェックステップｓ１３１５を持つ。以下処理フローに従い説明する。
【０１１８】
ステップｓ１３０１は、同期ステップであり、入力されるＴＳから先頭データを検出し、ＴＳＰを抽出し、ステップ１３０２に進む。ステップ１３０２は、一時記憶ステップで、同期ステップ１３０１から出力されるＴＳＰを一時的に記憶する。
【０１１９】
ＴＳＰ数判断ステップ１３０３は、同期ステップ１３０１から出力されるＴＳＰを一時的に記憶する一時記憶ステップ１３０２に記憶されているＴＳＰ数を判断し、ＣＰＵより設定されるＴＳＰ閾値より大きかった場合、ステップｓ１３０４によってＰＩＤフィルタ切り替えフラグを有効にし、そのＴＳＰの処理は、ソフトウェアによるトランスポート分離ステップｓ１３２に進むように切り替える。ＰＩＤフィルタ切り替えステップｓ１３０５にて、ＰＩＤフィルタ切り替えフラグが無効ならば、ハードウェアによるトランスポート分離ステップｓ１３１のステップｓ１３０６に進む。有効ならば、ステップｓ１３１１に進む。
【０１２０】
ステップｓ１３０６は、ＰＩＤフィルタリングステップで、入力されたＴＳＰのＰＩＤを基に、必要なＴＳＰだけを取り出し、必要でないＴＳＰを破棄して次のステップｓ１３０７に進む。
【０１２１】
ステップｓ１３０７は、デスクランブルステップで、ＴＳＰのＴＳＣ（Ｔｒａｎｓｐｏｒｔ  Ｓｃｒａｍｂｌｅ  Ｃｏｎｔｒｏｌ）を判断し、スクランブルがかかっていた場合、データにかかったスクランブルを解除（デスクランブル）し、スクランブルがかかっていなかった場合、何もせずにステップｓ１３０８に進む。
【０１２２】
ｓ１３０８はセクションフィルタリングステップで、入力されるＴＳＰの中からセクションを取り出し、セクションのヘッダ部に対してフィルタリングを行い、必要なセクションを取り出し、必要でないセクションは破棄してステップｓ１３０９に進む。ステップｓ１３０９は、ＣＲＣチェックステップで、セクションのＣＲＣエラーをチェックしてステップｓ１３１０に進む。
【０１２３】
ステップｓ１３１０はメモリ出力ステップで、ステップｓ１３０９までで処理されたデータをＣＰＵ１２１よりアクセス可能なメモリ１２２に出力する。
【０１２４】
次にソフトウェアによるトランスポート分離ステップｓ１３２進む場合の処理を説明する。ステップｓ１３１１はメモリ出力ステップであり、ステップｓ１３０２までで処理されたデータをＣＰＵ１２１よりアクセス可能なメモリ１２２に出力し、ソフトウェアによるトランスポート分離ステップｓ１３２のｓ１３１２に進む。ステップｓ１３１２は、ＰＩＤフィルタリングステップで、入力されたＴＳＰのＰＩＤを基に、必要なＴＳＰだけを取り出し、必要でないＴＳＰを破棄して次のステップｓ１３１３に進む。
【０１２５】
ステップｓ１３１３は、デスクランブルステップであり、ＴＳＰのＴＳＣ（Ｔｒａｎｓｐｏｒｔ  Ｓｃｒａｍｂｌｅ  Ｃｏｎｔｒｏｌ）を判断し、スクランブルがかかっていた場合、データにかかったスクランブルを解除（デスクランブル）し、スクランブルがかかっていなかった場合、何もせずにステップｓ１３１４に進む。
【０１２６】
ｓ１３１４はセクションフィルタリングステップであり、入力されるＴＳＰの中からセクションを取り出し、セクションのヘッダ部に対してフィルタリングを行い、必要なセクションを取り出し、必要でないセクションは破棄しｓ１３１５に進む。ステップｓ１３１５は、ＣＲＣチェックステップで、セクションのＣＲＣエラーをチェックしてステップｓ１３１６に進む。
【０１２７】
ステップｓ１３１６はメモリ出力ステップで、ｓ１３１５までで処理されたデータをＣＰＵ１２１よりアクセス可能なメモリ１２２に出力する。
【０１２８】
ＣＰＵ１２１より設定可能なＴＳＰ閾値を、一時記憶手段１２１４の記憶可能な最大ＴＳＰ値に設定しておけば、一時記憶手段１２１４へのＴＳＰ入力がオーバーフローする前に、ＴＳＰをソフトウェアトランスポートストリーム分離手段１２４に出力する事によって、一時記憶手段１２１４のオーバーフローを防ぎ、フェールソフトなトランスポートストリーム処理装置を構成可能となる。
【０１２９】
また、実施の形態６ではデスクランブラの後段の処理にセクションフィルタリング、ＣＲＣチェックを行った場合について説明したが、ＰＥＳパケットフィルタリングを行った場合も同様である。
【０１３０】
（実施の形態７）
図１４および図１５を参照して実施の形態７を説明する。実施の形態７においては、状態判断手段として、マルチＴＳ数判断手段１４１５を備える。マルチＴＳ数判断手段１４１５は、ハードウェアトランスポートストリーム分離手段１４３が、１つ以上の同期手段１４０１，１４１６を備え、ＴＳ入力中の同期手段の数を入力されるＴＳ数として判断し、ＣＰＵ１４１より設定されるマルチＴＳ数閾値より大きくなった時点で、そのＴＳの処理をソフトウェアによってトランスポート分離で行うよう、処理切り替え制御信号を処理切り替え手段１４５へ出力する。
【０１３１】
処理切り替え制御信号を受けた処理切り替え手段１４５は、ＰＩＤフィルタ切り替えフラグを有効に変更し、ソフトウェアによるトランスポート分離処理を行うようよう設定を切り替える。
【０１３２】
処理のフローチャートを図１５に示す。
【０１３３】
実施の形態７では、処理切り替えステップｓ１５３として、ｓ１５１のハードウェアによるＰＩＤフィルタリング以降の処理と、ｓ１５２のソフトウェアによるＰＩＤフィルタリング以降の処理とに切り替えるＰＩＤフィルタリング切り替えステップｓ１５０４を持ち、状態判断ステップｓ１５４として、マルチＴＳ数判断ステップｓ１５０２を持つ場合を説明する。
【０１３４】
ハードウェアによるトランスポートストリーム分離ステップｓ１５１として同期ステップｓ１５０１、ＰＩＤフィルタリングステップｓ１５０５、デスクランブラステップｓ１５０６、セクションフィルタリングステップｓ１５０７、ＣＲＣチェックステップｓ１５０８を持つ。
【０１３５】
ソフトウェアによるトランスポートストリーム分離ステップｓ１５２としてＰＩＤフィルタリングステップｓ１５１１、デスクランブラステップｓ１５１２、セクションフィルタリングステップｓ１５１３、ＣＲＣチェックステップｓ１５１４を持つ。以下処理フローに従い説明する。ステップｓ１５０１は、同期ステップで、入力されるＴＳから先頭データを検出し、ＴＳＰを抽出し、ステップ１５０２に進む。
【０１３６】
マルチＴＳ数判断ステップ１５０２は、ハードウェアトランスポートストリーム分離手段１４３が、１つ以上の同期ステップを備え、ＴＳ入力中の同期ステップの数を入力されるＴＳ数として判断し、入力されるＴＳ数がＣＰＵ１４１より設定されるマルチＴＳ数閾値より大きくなった時点で、ステップｓ１５０３によってＰＩＤフィルタ切り替えフラグを有効にし、そのＴＳの処理がソフトウェアによるトランスポート分離ステップｓ１５２に進むように切り替える。
【０１３７】
ＰＩＤフィルタ切り替えステップｓ１５０４にて、ＰＩＤフィルタ切り替えフラグが無効ならば、ハードウェアによるトランスポート分離ステップｓ１５１のｓ１５０５に進む。有効ならば、ｓ１５１０に進む。ステップｓ１５０５は、ＰＩＤフィルタリングステップで、入力されたＴＳＰのＰＩＤを基に、必要なＴＳＰだけを取り出し、必要でないＴＳＰを破棄して次のステップｓ１５０６に進む。ステップｓ１５０６は、デスクランブルステップで、ＴＳＰのＴＳＣを判断し、スクランブルがかかっていた場合、データにかかったスクランブルを解除（デスクランブル）し、スクランブルがかかっていなかった場合、何もせずにステップｓ１５０７に進む。
【０１３８】
ステップｓ１５０７はセクションフィルタリングステップであり、入力されるＴＳＰの中からセクションを取り出し、セクションのヘッダ部に対してフィルタリングを行い、必要なセクションを取り出し、必要でないセクションは破棄しｓ１５０８に進む。ステップｓ１５０８は、ＣＲＣチェックステップであり、セクションのＣＲＣエラーをチェックしてステップｓ１５０９に進む。ステップｓ１５０９はメモリ出力ステップであり、ステップｓ１５０８までで処理されたデータをＣＰＵ１４１よりアクセス可能なメモリ１４２に出力する。
【０１３９】
次にソフトウェアによるトランスポート分離ステップｓ１５２に進む場合の処理を説明する。ステップｓ１５１０はメモリ出力ステップであり、ステップｓ１５０１までで処理されたデータをＣＰＵ１４１よりアクセス可能なメモリ１４２に出力し、ソフトウェアによるトランスポート分離ステップｓ１５２のステップｓ１５１１に進む。ステップｓ１５１１は、ＰＩＤフィルタリングステップで、入力されたＴＳＰのＰＩＤを基に、必要なＴＳＰだけを取り出し、必要でないＴＳＰを破棄して次のステップｓ１５１２に進む。
【０１４０】
ステップｓ１５１２は、デスクランブルステップで、ＴＳＰのＴＳＣを判断し、スクランブルがかかっていた場合、データにかかったスクランブルを解除（デスクランブル）し、スクランブルがかかっていなかった場合、何もせずにステップｓ１５１３に進む。
【０１４１】
ステップｓ１５１３はセクションフィルタリングステップで、入力されるＴＳＰの中からセクションを取り出し、セクションのヘッダ部に対してフィルタリングを行い、必要なセクションを取り出し、必要でないセクションは破棄しステップｓ１５１４に進む。
【０１４２】
ステップｓ１５１４は、ＣＲＣチェックステップで、セクションのＣＲＣエラーをチェックしてステップｓ１５１５に進む。ステップｓ１５１５はメモリ出力ステップで、ステップｓ１５１４までで処理されたデータをＣＰＵ１４１よりアクセス可能なメモリ１４２に出力する。
【０１４３】
ＣＰＵより設定可能なマルチＴＳ数閾値を、ハードウェアトランスポートストリーム分離手段１４３の処理可能な最大マルチＴＳ数に設定しておけば、ハードウェアトランスポートストリーム分離手段１４３に処理可能数以上のＴＳが入力された際に、そのトランスポート分離処理をソフトウェアトランスポートストリーム分離手段１４４に切り替える事によって、回路の増加をすることなく対応可能なトランスポートストリーム処理装置を構成できる。
【０１４４】
また、実施の形態７ではデスクランブラの後段の処理にセクションフィルタリング、ＣＲＣチェックを行った場合について説明したが、ＰＥＳパケットフィルタリングを行った場合も同様である。
【０１４５】
（実施の形態８）
図１６および図１７を参照して実施の形態８を説明する。実施の形態８においては、状態判断手段１０６として、ＰＩＤ判断手段１６１８を備える。ＰＩＤ判断手段１６１８は、同期手段１６０１から入力されるＴＳＰのＰＩＤを判断し、ＰＩＤ条件式を満たしているＴＳＰは、その処理をソフトウェアによるトランスポート分離で行うよう、処理切り替え制御信号を処理切り替え手段１６５へ出力する。
【０１４６】
処理切り替え制御信号を受けた切り替え手段１６５は、ＰＩＤフィルタ切り替えフラグを有効に変更し、ソフトウェアによるトランスポート分離処理を行うようよう設定を切り替える。実施の形態８ではＣＰＵ１６１より設定されるＰＩＤ閾値より大きくなったＴＳＰは、その処理を、ソフトウェアによるトランスポート分離で行うよう切り替える場合について説明する。
【０１４７】
処理のフローチャートを図１７に示す。
【０１４８】
実施の形態８では、処理切り替えステップｓ１７３として、ｓ１７１のハードウェアによるＰＩＤフィルタリング以降の処理と、ｓ１７２のソフトウェアによるＰＩＤフィルタリング以降の処理とに切り替えるＰＩＤフィルタリング切り替えステップｓ１７０４を持ち、状態判断ステップｓ１７４として、ＰＩＤ判断ステップｓ１７０２を持つ場合を説明する。
【０１４９】
ハードウェアによるトランスポートストリーム分離ステップｓ１７１として同期ステップｓ１７０１、ＰＩＤフィルタリングステップｓ１７０５、デスクランブラステップｓ１７０６、セクションフィルタリングステップｓ１７０７、ＣＲＣチェックステップｓ１７０８を持つ。
【０１５０】
ソフトウェアによるトランスポートストリーム分離ステップｓ１７２としてＰＩＤフィルタリングステップｓ１７１１、デスクランブラステップｓ１７１２、セクションフィルタリングステップｓ１７１３、ＣＲＣチェックステップｓ１７１４を持つ。
【０１５１】
以下処理フローに従い説明する。
【０１５２】
ステップｓ１７０１は、同期ステップで、入力されるＴＳから先頭データを検出し、ＴＳＰを抽出し、ステップｓ１７０２に進む。
【０１５３】
ＰＩＤ判断ステップｓ１７０２は、同期手段１６０１から入力されるＴＳＰのＰＩＤを判断し、そのＰＩＤがＣＰＵより設定されるＰＩＤ閾値より大きいＴＳＰについては、ステップｓ１７０３によってＰＩＤフィルタ切り替えフラグを有効にし、処理がソフトウェアによるトランスポート分離ステップｓ１７２に進むように切り替える。ＰＩＤフィルタ切り替えステップｓ１７０４にて、ＰＩＤフィルタ切り替えフラグが無効ならば、ハードウェアによるトランスポート分離ステップｓ１７１のｓ１７０５に進む。有効ならば、ステップｓ１７１０に進む。
【０１５４】
ステップｓ１７０５は、ＰＩＤフィルタリングステップで、入力されたＴＳＰのＰＩＤを基に、必要なＴＳＰだけを取り出し、必要でないＴＳＰを破棄して次のステップｓ１７０６に進む。ステップｓ１７０６は、デスクランブルステップで、ＴＳＰのＴＳＣを判断し、スクランブルがかかっていた場合、データにかかったスクランブルを解除（デスクランブル）し、スクランブルがかかっていなかった場合、何もせずにステップｓ１７０７に進む。
【０１５５】
ステップｓ１７０７はセクションフィルタリングステップであり、入力されるＴＳＰの中からセクションを取り出し、セクションのヘッダ部に対してフィルタリングを行い、必要なセクションを取り出し、必要でないセクションは破棄してステップｓ１７０８に進む。ステップｓ１７０８は、ＣＲＣチェックステップで、セクションのＣＲＣエラーをチェックしてステップｓ１７０９に進む。
【０１５６】
ステップｓ１７０９はメモリ出力ステップであり、ステップｓ１７０８までで処理されたデータをＣＰＵ１６１よりアクセス可能なメモリ１６２に出力する。
【０１５７】
次にソフトウェアによるトランスポート分離ステップｓ１７２進む場合の処理を説明する。ステップｓ１７１０はメモリ出力ステップであり、ステップｓ１７０１までで処理されたデータをＣＰＵ１６１よりアクセス可能なメモリ１６２に出力し、ソフトウェアによるトランスポート分離ステップｓ１７２のｓ１７１１に進む。ステップｓ１７１１は、ＰＩＤフィルタリングステップで、入力されたＴＳＰのＰＩＤを基に、必要なＴＳＰだけを取り出し、必要でないＴＳＰを破棄して次のステップｓ１７１２に進む。
【０１５８】
ステップｓ１７１２は、デスクランブルステップであり、ＴＳＰのＴＳＣを判断し、スクランブルがかかっていた場合、データにかかったスクランブルを解除（デスクランブル）し、スクランブルがかかっていなかった場合、何もせずにステップｓ１７１３に進む。
【０１５９】
ステップｓ１７１３はセクションフィルタリングステップであり、入力されるＴＳＰの中からセクションを取り出し、セクションのヘッダ部に対してフィルタリングを行い、必要なセクションを取り出し、必要でないセクションは破棄してステップｓ１７１４に進む。
【０１６０】
ステップｓ１７１４は、ＣＲＣチェックステップで、セクションのＣＲＣエラーをチェックしてステップｓ１７１５に進む。ステップｓ１７１５はメモリ出力ステップであり、ステップｓ１７１４までで処理されたデータをＣＰＵ１６１よりアクセス可能なメモリ１６２に出力する。
【０１６１】
ＣＰＵ１６１より設定可能なＰＩＤ閾値を、例えばＰＳＩ／ＳＩ用のＰＩＤの使用する最大値に設定しておけば、ＰＳＩ／ＳＩ用の処理をハードウェアトランスポート分離手段１６３によって行い、それ以上のプログラムの持つデータの処理をソフトウェアトランスポートストリーム分離手段１６４によって行うよう切り替える事によって、ＰＩＤによる処理の分散が可能となる。
【０１６２】
また、実施の形態８ではデスクランブラの後段の処理にセクションフィルタリング、ＣＲＣチェックを行った場合について説明したが、ＰＥＳパケットフィルタリングを行った場合も同様である。
【０１６３】
（実施の形態９）
図１８および図１９を参照して実施の形態９を説明する。実施の形態９においては、状態判断手段として、ＣＰＵ稼働率判断手段１８１７を備える。ＣＰＵ稼働率判断手段１８１７はＣＰＵ１８１上で動作するソフトウェアが稼動している割合をＣＰＵ稼働率として判断し、ＣＰＵ１８１より設定されるＣＰＵ稼働率閾値より小さい時点でのみ、ＴＳの処理をソフトウェアによってトランスポート分離で行うよう切り替えを許可するよう制御信号を処理切り替え手段１８５へ出力する。
【０１６４】
処理のフローチャートを図１９に示す。
【０１６５】
実施の形態９では、処理切り替えステップｓ１９３として、ｓ１９１のハードウェアによるＰＩＤフィルタリング以降の処理と、ｓ１９２のソフトウェアによるＰＩＤフィルタリング以降の処理とに切り替えるＰＩＤフィルタリング切り替えステップｓ１９０４を持ち、状態判断ステップｓ１９４として、ビットレート判断ステップｓ１９０２およびＣＰＵ稼働率判断ステップｓ１９１６を持つ場合を説明する。
【０１６６】
ハードウェアによるトランスポートストリーム分離ステップｓ１９１として同期ステップｓ１９０１、ＰＩＤフィルタリングステップｓ１９０５、デスクランブラステップｓ１９０６、セクションフィルタリングステップｓ１９０７、ＣＲＣチェックステップｓ１９０８を持つ。
【０１６７】
ソフトウェアによるトランスポートストリーム分離ステップｓ１９２としてＰＩＤフィルタリングステップｓ１９１１、デスクランブラステップｓ１９１２、セクションフィルタリングステップｓ１９１３、ＣＲＣチェックステップｓ１９１４を持つ。以下処理フローに従い説明する。
【０１６８】
ステップｓ１９０１は、同期ステップで、入力されるＴＳから先頭データを検出し、ＴＳＰを抽出し、ステップｓ１９０２に進む。
【０１６９】
ビットレート判断ステップｓ１９０２は、同期ステップｓ１９０１に入力されるＴＳのビットレートを判断し、ＣＰＵ１８１より設定されるビットレート閾値より大きくなった場合、ＣＰＵ稼働率判断ステップｓ１９１６に進む。ＣＰＵ稼働率判断ステップｓ１９１６は、ＣＰＵ稼働率がＣＰＵ稼働率閾値より小さい場合、ステップｓ１９０３によってＰＩＤフィルタ切り替えフラグを有効にし、処理がソフトウェアによるトランスポート分離ステップｓ１９２に進むように切り替える。
【０１７０】
ＰＩＤフィルタ切り替えステップｓ１９０４にて、ＰＩＤフィルタ切り替えフラグが無効ならば、ハードウェアによるトランスポート分離ステップｓ１９１のｓ１９０５に進む。有効ならば、ステップｓ１９１０に進む。
【０１７１】
ステップｓ１９０５は、ＰＩＤフィルタリングステップであり、入力されたＴＳＰのＰＩＤを基に、必要なＴＳＰだけを取り出し、必要でないＴＳＰを破棄して次のステップｓ１９０６に進む。
【０１７２】
ステップｓ１９０６は、デスクランブルステップであり、ＴＳＰのＴＳＣを判断し、スクランブルがかかっていた場合、データにかかったスクランブルを解除（デスクランブル）し、スクランブルがかかっていなかった場合、何もせずにステップｓ１９０７に進む。ステップｓ１９０７はセクションフィルタリングステップであり、入力されるＴＳＰの中からセクションを取り出し、セクションのヘッダ部に対してフィルタリングを行い、必要なセクションを取り出し、必要でないセクションは破棄してステップｓ１９０８に進む。ステップｓ１９０８は、ＣＲＣチェックステップであり、セクションのＣＲＣエラーをチェックしｓ１９０９に進む。ステップｓ１９０９はメモリ出力ステップであり、ステップｓ１９０８までで処理されたデータをＣＰＵ１８１よりアクセス可能なメモリ１８２に出力する。
【０１７３】
次にソフトウェアによるトランスポート分離ステップｓ１９２進む場合の処理を説明する。
【０１７４】
ステップｓ１９１０はメモリ出力ステップであり、ステップｓ１９０１までで処理されたデータをＣＰＵ１８１よりアクセス可能なメモリ１８２に出力し、ソフトウェアによるトランスポート分離ステップｓ１９２のｓ１９１１に進む。ステップｓ１９１１は、ＰＩＤフィルタリングステップであり、入力されたＴＳＰのＰＩＤを基に、必要なＴＳＰだけを取り出し、必要でないＴＳＰを破棄して次のステップｓ１９１２に進む。ステップｓ１９１２は、デスクランブルステップで、ＴＳＰのＴＳＣ（Ｔｒａｎｓｐｏｒｔ  Ｓｃｒａｍｂｌｅ  Ｃｏｎｔｒｏｌ）を判断し、スクランブルがかかっていた場合、データにかかったスクランブルを解除（デスクランブル）し、スクランブルがかかっていなかった場合、何もせずにステップｓ１９１３に進む。
【０１７５】
ステップｓ１９１３はセクションフィルタリングステップであり、入力されるＴＳＰの中からセクションを取り出し、セクションのヘッダ部に対してフィルタリングを行い、必要なセクションを取り出し、必要でないセクションは破棄してステップｓ１９１４に進む。
【０１７６】
ステップｓ１９１４は、ＣＲＣチェックステップであり、セクションのＣＲＣエラーをチェックしｓ１９１５に進む。ステップｓ１９１５はメモリ出力ステップであり、ステップｓ１９１４までで処理されたデータをＣＰＵ１８１よりアクセス可能なメモリ１８２に出力する。
【０１７７】
このように、ハードウェアトランスポートストリーム分離手段１８３からソフトウェアトランスポートストリーム分離手段１８４に処理切り替えの際の判断要素に、ＣＰＵ１８１の動作状態を加えて判断する事で、ソフトウェアトランスポートストリーム分離手段１８４の処理負荷によって、他のソフトウェア処理に破綻を起こしてしまうような状況を防ぐ事が出来る。
【０１７８】
また、実施の形態９ではデスクランブラの後段の処理にセクションフィルタリング、ＣＲＣチェックを行った場合について説明したが、ＰＥＳパケットフィルタリングを行った場合も同様である。
【産業上の利用可能性】
【０１７９】
本発明のトランスポートストリーム処理装置およびデジタル放送受信機は、ＣＳデジタル放送やＢＳデジタル放送に好適である。
【図面の簡単な説明】
【０１８０】
【図１】本発明の実施の形態１におけるストリーム処理装置の全体構成を示すブロック図
【図２】本発明の実施の形態１におけるフローチャート
【図３】本発明の実施の形態２におけるストリーム処理装置の全体構成を示すブロック図
【図４】本発明の実施の形態２におけるフローチャート
【図５】本発明の実施の形態２におけるマルチセクションの場合の処理時間相関図
【図６】本発明の実施の形態３におけるストリーム処理装置の全体構成を示すブロック図
【図７】本発明の実施の形態３におけるフローチャート
【図８】本発明の実施の形態４におけるストリーム処理装置の全体構成を示すブロック図
【図９】本発明の実施の形態４におけるフローチャート
【図１０】本発明の実施の形態５におけるストリーム処理装置の全体構成を示すブロック図
【図１１】本発明の実施の形態５におけるフローチャート
【図１２】本発明の実施の形態６におけるストリーム処理装置の全体構成を示すブロック図
【図１３】本発明の実施の形態６におけるフローチャート
【図１４】本発明の実施の形態７におけるストリーム処理装置の全体構成を示すブロック図
【図１５】本発明の実施の形態７におけるフローチャート
【図１６】本発明の実施の形態８におけるストリーム処理装置の全体構成を示すブロック図
【図１７】本発明の実施の形態８におけるフローチャート
【図１８】本発明の実施の形態９におけるストリーム処理装置の全体構成を示すブロック図
【図１９】本発明の実施の形態９におけるフローチャート
【図２０】トランスポートストリームパケットの構成図
【図２１】ストリーム処理装置の全体構成を示すブロック図
【図２２】セクション取得処理のフローチャート
【図２３】従来におけるマルチセクションの場合の処理時間相関図
【符号の説明】
【０１８１】
１１        ＣＰＵ（プロセッサ）
１２        外部メモリ（記憶手段）
１３        ハードウェアトランスポート分離手段
１４        ソフトウェアトランスポート分離手段
１５        処理切り替え手段
１０１      同期手段
１０２      ＰＩＤフィルタ（ＰＩＤフィルタリング手段）
１０３      デスクランブラ（デスランブル手段）
１０４      セクションフィルタ（セクションフィルタリング手段）
１０５      ＣＲＣチェック（ＣＲＣチェック手段）
１０６      出力手段
１０７      セクションフィルタ（セクションフィルタリング手段）
１０８      ＣＲＣチェック（ＣＲＣチェック手段）
１０９      セクションフィルタ切り替え手段
１１０      ＣＲＣチェック切り替え手段
ＴＳＰ        トランスポートストリームパケット
ＴＳ１０１    ＰＩＤフィルタ後のＴＳＰ
ＴＳ１０２    デスクランブル後のＴＳＰ
ＴＳ１０３    セクションデータ処理したセクションデータ
ＴＳ１０４    ＣＲＣチェックしたセクションデータ
ＴＳ１０７    メモリから読み出したデスクランブル後のＴＳＰ
ＴＳ１０８    メモリから読み出したセクションデータ処理したセクションデータ
ＴＳ１０９    ＣＲＣチェックしたセクションデータ
【図１】
2006054861.tif 000003
【図２】
2006054861.tif 000004
【図３】
2006054861.tif 000005
【図４】
2006054861.tif 000006
【図５】
2006054861.tif 000007
【図６】
2006054861.tif 000008
【図７】
2006054861.tif 000009
【図８】
2006054861.tif 000010
【図９】
2006054861.tif 000011
【図１０】
2006054861.tif 000012
【図１１】
2006054861.tif 000013
【図１２】
2006054861.tif 000014
【図１３】
2006054861.tif 000015
【図１４】
2006054861.tif 000016
【図１５】
2006054861.tif 000017
【図１６】
2006054861.tif 000018
【図１７】
2006054861.tif 000019
【図１８】
2006054861.tif 000020
【図１９】
2006054861.tif 000021
【図２０】
2006054861.tif 000022
【図２１】
2006054861.tif 000023
【図２２】
2006054861.tif 000024
【図２３】
2006054861.tif 000025