(57)【要約】【課題】フォーマット変換時にストリームを分断する。【解決手段】ステップＳ４１で１つのClipInfoで定義されているストリームに含まれるプログラムシーケンスの数が抽出され、ステップＳ４２でその数は２以上であると判断された場合、ステップＳ４３でストリームに含まれるプログラムシーケンスの数と位置に基づいてプログラムシーケンスの境界付近が解析されて、PMT不連続点が検出され、ステップＳ４４でPMT不連続点の境界の前の適切な位置でストリームが分断される。ステップＳ４５で１つのClipInfoで定義されているストリームに含まれるATCシーケンスの数が抽出され、ステップＳ４６でその数は２以上であると判断された場合、ステップＳ４７でストリームに含まれるATCシーケンスの数と位置に基づいて、ATCシーケンスの境界部分でストリームが分断される。本発明は、映像処理装置に適用できる。【選択図】図２５
2008199527.tif 000002
【特許請求の範囲】
【請求項１】
トランスポートストリーム、前記トランスポートストリームの実体を管理する実体管理情報、および前記トランスポートストリームの再生を管理する再生管理情報を含んで構成されるコンテンツプログラムのフォーマット変換を実行する情報処理装置において、
第１のフォーマットの前記コンテンツプログラムにおける前記実体管理情報に含まれる、前記トランスポートストリームの時間軸に関する第１の情報、および、前記コンテンツプログラム内容の変更点に関する第２の情報を取得する取得手段と、
前記取得手段により取得された前記第１の情報または前記第２の情報に基づいて、前記トランスポートストリームを分割する分割手段と、
前記分割手段により分割された前記トランスポートストリームを含む第２のフォーマットの前記コンテンツプログラムを生成する生成手段と
を備える情報処理装置。
【請求項２】
前記実体管理情報に含まれる前記第１の情報は、前記トランスポートストリームが取得された時刻に対応するカウンタ情報に基づく情報であり、
前記トランスポートストリームにおいては、前記カウンタ情報が連続性を有する部分が１シーケンスとして管理され、
前記第１のフォーマットは、１つの前記実体管理情報を用いて、複数のシーケンスを管理することが可能であり、
前記第２のフォーマットは、１つの前記実体管理情報を用いて、１つのシーケンスのみ管理可能なようになされており、
前記取得手段は、前記第１の情報に基づいて、前記実体管理情報により管理される前記トランスポートストリームを構成するシーケンス数を検出し、
前記分割手段は、前記実体管理情報により管理される前記トランスポートストリームが複数のシーケンスにより構成されていた場合、１シーケンスずつとなるように、前記トランスポートストリームを分割する
請求項１に記載の情報処理装置
【請求項３】
前記トランスポートストリームにおいては、前記変更点により分割される前記トランスポートストリームの１部分が１シーケンスとして管理され、
前記第１のフォーマットは、１つの前記実体管理情報を用いて、複数のシーケンスを管理することが可能であり、
前記第２のフォーマットは、１つの前記実体管理情報を用いて、１つのシーケンスのみ管理可能なようになされており、
前記取得手段は、前記第２の情報に基づいて、前記実体管理情報により管理される前記トランスポートストリームを構成するシーケンス数を検出し、
前記分割手段は、前記実体管理情報により管理される前記トランスポートストリームが複数のシーケンスにより構成されていた場合、１シーケンスずつとなるように、前記トランスポートストリームを分割する
請求項１に記載の情報処理装置。
【請求項４】
前記実体管理情報に含まれる前記第１の情報は、前記トランスポートストリームが取得された時刻に対応するカウンタ情報に基づく情報であり、
前記トランスポートストリームにおいては、前記カウンタ情報が連続性を有する部分が第１のシーケンスにおける１シーケンスとして管理されるとともに、前記変更点により分割される前記トランスポートストリームの１部分が第２のシーケンスにおける１シーケンスとして管理され、
前記第１のフォーマットは、１つの前記実体管理情報を用いて、前記第１のシーケンスおよび前記第２のシーケンスのいずれにおいても、複数のシーケンスを管理することが可能であり、
前記第２のフォーマットは、１つの前記実体管理情報を用いて、前記第１のシーケンスおよび前記第２のシーケンスのいずれにおいても、それぞれ１つのシーケンスのみ管理可能なようになされており、
前記取得手段は、前記第１の情報に基づいて、前記実体管理情報により管理される前記トランスポートストリームを構成する前記第１のシーケンスのシーケンス数を検出するとともに、前記第２の情報に基づいて、前記実体管理情報により管理される前記トランスポートストリームを構成する前記第２のシーケンスのシーケンス数を検出し、
前記分割手段は、前記実体管理情報により管理される前記トランスポートストリームが、前記第１のシーケンスまたは前記第２のシーケンスの少なくともいずれかにおいて、複数のシーケンスにより構成されていた場合、前記第１のシーケンスおよび前記第２のシーケンスのいずれにおいても１シーケンスずつとなるように、前記トランスポートストリームを分割する
請求項１に記載の情報処理装置。
【請求項５】
トランスポートストリーム、前記トランスポートストリームの実体を管理する実体管理情報、および前記トランスポートストリームの再生を管理する再生管理情報を含んで構成されるコンテンツプログラムのフォーマット変換を実行する情報処理装置の情報処理方法において、
第１のフォーマットのコンテンツプログラムにおける前記実体管理情報に含まれる、前記トランスポートストリームの時間軸に関する第１の情報、および、コンテンツプログラム内容の変更点に関する第２の情報を取得し、
取得された前記第１の情報または前記第２の情報に基づいて、前記トランスポートストリームを分割し、
分割された前記トランスポートストリームを含む第２のフォーマットのコンテンツプログラムを生成する
ステップを含む情報処理方法。
【請求項６】
トランスポートストリーム、前記トランスポートストリームの実体を管理する実体管理情報、および前記トランスポートストリームの再生を管理する再生管理情報を含んで構成されるコンテンツプログラムのフォーマット変換処理をコンピュータに実行させるプログラムであって、
第１のフォーマットのコンテンツプログラムにおける前記実体管理情報に含まれる、前記トランスポートストリームの時間軸に関する第１の情報、および、コンテンツプログラム内容の変更点に関する第２の情報の取得を制御し、
取得が制御された前記第１の情報または前記第２の情報に基づいて、前記トランスポートストリームを分割し、
分割された前記トランスポートストリームを含む第２のフォーマットのコンテンツプログラムを生成する
ステップを含む処理をコンピュータに実行させるプログラム。
【請求項７】
請求項６に記載のプログラムが記録されているプログラム格納媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および情報処理方法、プログラム、並びに、プログラム格納媒体に関し、特に、フォーマット変換を行う場合に用いて好適な、情報処理装置および情報処理方法、プログラム、並びに、プログラム格納媒体に関する。
【背景技術】
【０００２】
従来、ＡＶ（Audio Visual)ストリームの管理のために、ＡＶストリームとそれに付随する情報であるClip InformationのペアであるClipと、Clipのアクセスポイントを指定するタイムスタンプを有するPlayListとの２つのレイヤを有するアプリケーションフォーマットが用いられている。
【０００３】
このようなアプリケーションフォーマットにおいて、Clip Informationに、複数の異なるカウンタ情報を持たせ、それらのカウンタ情報が連続性を有する部分を、それぞれ１シーケンスとして管理することにより、記録後に編集処理が行われた場合であっても、編集後のデータを容易に管理したり、欠落することなく再生させることができるような技術がある（例えば、特許文献１）
【特許文献１】ＷＯ２００２／０７５７３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、このような形式のアプリケーションフォーマットの中に複数のフォーマットが存在する場合があり、フォーマット変換が必要とされる場合がある。
【０００５】
そして、それぞれのフォーマットにおいて、１つのPlayList（すなわち、１つのClip）で定義可能な、複数の異なるカウンタ情報に対応するそれぞれのシーケンスの上限数が異なるように定義されることが考えられる。
【０００６】
本発明はこのような状況に鑑みてなされたものであり、異なるフォーマットが存在する場合のフォーマット変換を可能とするためのものである。
【課題を解決するための手段】
【０００７】
本発明の一側面の情報処理装置は、トランスポートストリーム、前記トランスポートストリームの実体を管理する実体管理情報、および前記トランスポートストリームの再生を管理する再生管理情報を含んで構成されるコンテンツプログラムのフォーマット変換を実行する情報処理装置であって、第１のフォーマットの前記コンテンツプログラムにおける前記実体管理情報に含まれる、前記トランスポートストリームの時間軸に関する第１の情報、および、前記コンテンツプログラム内容の変更点に関する第２の情報を取得する取得手段と、前記取得手段により取得された前記第１の情報または前記第２の情報に基づいて、前記トランスポートストリームを分割する分割手段と、前記分割手段により分割された前記トランスポートストリームを含む第２のフォーマットの前記コンテンツプログラムを生成する生成手段とを備える。
【０００８】
前記実体管理情報に含まれる前記第１の情報は、前記トランスポートストリームが取得された時刻に対応するカウンタ情報に基づく情報であるものとすることができ、前記トランスポートストリームにおいては、前記カウンタ情報が連続性を有する部分が１シーケンスとして管理されるものとすることができ、前記第１のフォーマットは、１つの前記実体管理情報を用いて、複数のシーケンスを管理することが可能であるものとすることができ、前記第２のフォーマットは、１つの前記実体管理情報を用いて、１つのシーケンスのみ管理可能なようになされているものとすることができ、前記取得手段には、前記第１の情報に基づいて、前記実体管理情報により管理される前記トランスポートストリームを構成するシーケンス数を検出させるようにすることができ、前記分割手段には、前記実体管理情報により管理される前記トランスポートストリームが複数のシーケンスにより構成されていた場合、１シーケンスずつとなるように、前記トランスポートストリームを分割させるようにすることができる。
【０００９】
前記トランスポートストリームにおいては、前記変更点により分割される前記トランスポートストリームの１部分が１シーケンスとして管理されるものとすることができ、前記第１のフォーマットは、１つの前記実体管理情報を用いて、複数のシーケンスを管理することが可能であるものとすることができ、前記第２のフォーマットは、１つの前記実体管理情報を用いて、１つのシーケンスのみ管理可能なようになされているものとすることができ、前記取得手段には、前記第２の情報に基づいて、前記実体管理情報により管理される前記トランスポートストリームを構成するシーケンス数を検出させるようにすることができ、前記分割手段には、前記実体管理情報により管理される前記トランスポートストリームが複数のシーケンスにより構成されていた場合、１シーケンスずつとなるように、前記トランスポートストリームを分割させるようにすることができる。
【００１０】
前記実体管理情報に含まれる前記第１の情報は、前記トランスポートストリームが取得された時刻に対応するカウンタ情報に基づく情報であるものとすることができ、前記トランスポートストリームにおいては、前記カウンタ情報が連続性を有する部分が第１のシーケンスにおける１シーケンスとして管理されるとともに、前記変更点により分割される前記トランスポートストリームの１部分が第２のシーケンスにおける１シーケンスとして管理されるものとすることができ、前記第１のフォーマットは、１つの前記実体管理情報を用いて、前記第１のシーケンスおよび前記第２のシーケンスのいずれにおいても、複数のシーケンスを管理することが可能であるものとすることができ、前記第２のフォーマットは、１つの前記実体管理情報を用いて、前記第１のシーケンスおよび前記第２のシーケンスのいずれにおいても、それぞれ１つのシーケンスのみ管理可能なようになされているものとすることができ、前記取得手段には、前記第１の情報に基づいて、前記実体管理情報により管理される前記トランスポートストリームを構成する前記第１のシーケンスのシーケンス数を検出させるとともに、前記第２の情報に基づいて、前記実体管理情報により管理される前記トランスポートストリームを構成する前記第２のシーケンスのシーケンス数を検出させるようにすることができ、前記分割手段には、前記実体管理情報により管理される前記トランスポートストリームが、前記第１のシーケンスまたは前記第２のシーケンスの少なくともいずれかにおいて、複数のシーケンスにより構成されていた場合、前記第１のシーケンスおよび前記第２のシーケンスのいずれにおいても１シーケンスずつとなるように、前記トランスポートストリームを分割させるようにすることができる。
【００１１】
本発明の一側面の情報処理方法は、トランスポートストリーム、前記トランスポートストリームの実体を管理する実体管理情報、および前記トランスポートストリームの再生を管理する再生管理情報を含んで構成されるコンテンツプログラムのフォーマット変換を実行する情報処理装置の情報処理方法であって、第１のフォーマットのコンテンツプログラムにおける前記実体管理情報に含まれる、前記トランスポートストリームの時間軸に関する第１の情報、および、コンテンツプログラム内容の変更点に関する第２の情報を取得し、取得された前記第１の情報または前記第２の情報に基づいて、前記トランスポートストリームを分割し、分割された前記トランスポートストリームを含む第２のフォーマットのコンテンツプログラムを生成するステップを含む。
【００１２】
本発明の一側面のプログラム、および、プログラム格納媒体に格納されているプログラムは、トランスポートストリーム、前記トランスポートストリームの実体を管理する実体管理情報、および前記トランスポートストリームの再生を管理する再生管理情報を含んで構成されるコンテンツプログラムのフォーマット変換処理をコンピュータに実行させるプログラムであって、第１のフォーマットのコンテンツプログラムにおける前記実体管理情報に含まれる、前記トランスポートストリームの時間軸に関する第１の情報、および、コンテンツプログラム内容の変更点に関する第２の情報の取得を制御し、取得が制御された前記第１の情報または前記第２の情報に基づいて、前記トランスポートストリームを分割し、分割された前記トランスポートストリームを含む第２のフォーマットのコンテンツプログラムを生成するステップを含む処理をコンピュータに実行させる。
【００１３】
本発明の一側面においては、第１のフォーマットのコンテンツプログラムにおける実体管理情報に含まれる、トランスポートストリームの時間軸に関する第１の情報、および、コンテンツプログラム内容の変更点に関する第２の情報が取得され、取得された第１の情報または第２の情報に基づいて、トランスポートストリームが分割され、分割されたトランスポートストリームを含む第２のフォーマットのコンテンツプログラムが生成される。
【００１４】
ネットワークとは、少なくとも２つの装置が接続され、ある装置から、他の装置に対して、情報の伝達をできるようにした仕組みをいう。ネットワークを介して通信する装置は、独立した装置どうしであっても良いし、１つの装置を構成している内部ブロックどうしであっても良い。
【００１５】
また、通信とは、無線通信および有線通信は勿論、無線通信と有線通信とが混在した通信、即ち、ある区間では無線通信が行われ、他の区間では有線通信が行われるようなものであっても良い。さらに、ある装置から他の装置への通信が有線通信で行われ、他の装置からある装置への通信が無線通信で行われるようなものであっても良い。
【００１６】
映像処理装置は、独立した装置であっても良いし、情報処理装置や、記録再生装置などのフォーマット変換処理を行うブロックであっても良い。
【発明の効果】
【００１７】
以上のように、本発明の一側面によれば、フォーマット変換をすることができ、特に、トランスポートストリームをフォーマットにあわせて結合することができる。
【発明を実施するための最良の形態】
【００１８】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００１９】
本発明の一側面の情報処理装置（例えば、図１の映像処理装置１１）は、トランスポートストリーム（例えば、AVストリームを含んで構成されるTS）、前記トランスポートストリームの実体を管理する実体管理情報（例えば、ClipInformation）、および前記トランスポートストリームの再生を管理する再生管理情報（例えば、PlayList）を含んで構成されるコンテンツプログラムのフォーマット変換を実行する情報処理装置であって、第１のフォーマットの前記コンテンツプログラムにおける前記実体管理情報に含まれる、前記トランスポートストリームの時間軸に関する第１の情報（例えば、SequenceInfo()のnum_of_ATC_sequences）、および、前記コンテンツプログラム内容の変更点（例えば、トランスポートパケットのPIDが変化したり、ビデオストリームのコンポーネント種類がSDTVからHDTVに変更する点）に関する第２の情報（例えば、ProgramInfo()のnum_of_program_sequences）を取得する取得手段（例えば、図２３のＡＴＣシーケンス数検出部１３１、または、プログラムシーケンス数検出部１３２）と、前記取得手段により取得された前記第１の情報または前記第２の情報に基づいて、前記トランスポートストリームを分割する分割手段（例えば、図２３のストリーム分割部１３３）と、前記分割手段により分割された前記トランスポートストリームを含む第２のフォーマットの前記コンテンツプログラムを生成する生成手段（例えば、図２３の変換後データ記憶制御部１１８）とを備える。
【００２０】
前記実体管理情報に含まれる前記第１の情報は、前記トランスポートストリームが取得された時刻に対応するカウンタ情報（例えば、ATC）に基づく情報であるものとすることができ、前記トランスポートストリームにおいては、前記カウンタ情報が連続性を有する部分が１シーケンス（例えば、ATCシーケンス）として管理されるものとすることができ、前記第１のフォーマットは、１つの前記実体管理情報を用いて、複数のシーケンスを管理することが可能であるものとすることができ、前記第２のフォーマットは、１つの前記実体管理情報を用いて、１つのシーケンスのみ管理可能なようになされているものとすることができ、前記取得手段は、前記第１の情報に基づいて、前記実体管理情報により管理される前記トランスポートストリームを構成するシーケンス数を検出することができ、前記分割手段は、前記実体管理情報により管理される前記トランスポートストリームが複数のシーケンスにより構成されていた場合、１シーケンスずつとなるように、前記トランスポートストリームを分割することができる。
【００２１】
前記トランスポートストリームにおいては、前記変更点により分割される前記トランスポートストリームの１部分が１シーケンス（例えば、プログラムシーケンス）として管理されるものとすることができ、前記第１のフォーマットは、１つの前記実体管理情報を用いて、複数のシーケンスを管理することが可能であるものとすることができ、前記第２のフォーマットは、１つの前記実体管理情報を用いて、１つのシーケンスのみ管理可能なようになされているものとすることができ、前記取得手段は、前記第２の情報に基づいて、前記実体管理情報により管理される前記トランスポートストリームを構成するシーケンス数を検出することができ、前記分割手段は、前記実体管理情報により管理される前記トランスポートストリームが複数のシーケンスにより構成されていた場合、１シーケンスずつとなるように、前記トランスポートストリームを分割することができる。
【００２２】
前記実体管理情報に含まれる前記第１の情報は、前記トランスポートストリームが取得された時刻に対応するカウンタ情報（例えば、ATC）に基づく情報であるものとすることができ、前記トランスポートストリームにおいては、前記カウンタ情報が連続性を有する部分が第１のシーケンス（例えば、ATCシーケンス）における１シーケンスとして管理されるとともに、前記変更点により分割される前記トランスポートストリームの１部分が第２のシーケンス（例えば、プログラムシーケンス）における１シーケンスとして管理されるものとすることができ、前記第１のフォーマットは、１つの前記実体管理情報を用いて、前記第１のシーケンスおよび前記第２のシーケンスのいずれにおいても、複数のシーケンスを管理することが可能であるものとすることができ、前記第２のフォーマットは、１つの前記実体管理情報を用いて、前記第１のシーケンスおよび前記第２のシーケンスのいずれにおいても、それぞれ１つのシーケンスのみ管理可能なようになされているものとすることができ、前記取得手段は、前記第１の情報に基づいて、前記実体管理情報により管理される前記トランスポートストリームを構成する前記第１のシーケンスのシーケンス数を検出することができるとともに、前記第２の情報に基づいて、前記実体管理情報により管理される前記トランスポートストリームを構成する前記第２のシーケンスのシーケンス数を検出することができ、前記分割手段は、前記実体管理情報により管理される前記トランスポートストリームが、前記第１のシーケンスまたは前記第２のシーケンスの少なくともいずれかにおいて、複数のシーケンスにより構成されていた場合、前記第１のシーケンスおよび前記第２のシーケンスのいずれにおいても１シーケンスずつとなるように、前記トランスポートストリームを分割することができる。
【００２３】
本発明の一側面の情報処理方法は、トランスポートストリーム（例えば、AVストリームを含んで構成されるTS）、前記トランスポートストリームの実体を管理する実体管理情報（例えば、ClipInformation）、および前記トランスポートストリームの再生を管理する再生管理情報（例えば、PlayList）を含んで構成されるコンテンツプログラムのフォーマット変換を実行する情報処理装置（例えば、図１の映像処理装置１１）の情報処理方法であって、第１のフォーマットのコンテンツプログラムにおける前記実体管理情報に含まれる、前記トランスポートストリームの時間軸に関する第１の情報（例えば、SequenceInfo()のnum_of_ATC_sequences）、および、コンテンツプログラム内容の変更点（例えば、トランスポートパケットのPIDが変化したり、ビデオストリームのコンポーネント種類がSDTVからHDTVに変更する点）に関する第２の情報（例えば、ProgramInfo()のnum_of_program_sequences）を取得し（例えば、図２５のステップＳ４１またはステップＳ４５の処理）、取得された前記第１の情報または前記第２の情報に基づいて、前記トランスポートストリームを分割し（例えば、図２５のステップＳ４４またはステップＳ４７の処理）、分割された前記トランスポートストリームを含む第２のフォーマットのコンテンツプログラムを生成する（例えば、図２４のステップＳ１５の処理）ステップを含む。
【００２４】
本発明の一側面のプログラムは、トランスポートストリーム（例えば、AVストリームを含んで構成されるTS）、前記トランスポートストリームの実体を管理する実体管理情報（例えば、ClipInformation）、および前記トランスポートストリームの再生を管理する再生管理情報（例えば、PlayList）を含んで構成されるコンテンツプログラムのフォーマット変換処理をコンピュータに実行させるプログラムであって、第１のフォーマットのコンテンツプログラムにおける前記実体管理情報に含まれる、前記トランスポートストリームの時間軸に関する第１の情報（例えば、SequenceInfo()のnum_of_ATC_sequences）、および、コンテンツプログラム内容の変更点（例えば、トランスポートパケットのPIDが変化したり、ビデオストリームのコンポーネント種類がSDTVからHDTVに変更する点）に関する第２の情報（例えば、ProgramInfo()のnum_of_program_sequences）の取得を制御し（例えば、図２５のステップＳ４１またはステップＳ４５の処理）、取得が制御された前記第１の情報または前記第２の情報に基づいて、前記トランスポートストリームを分割し（例えば、図２５のステップＳ４４またはステップＳ４７の処理）、分割された前記トランスポートストリームを含む第２のフォーマットのコンテンツプログラムを生成する（例えば、図２４のステップＳ１５の処理）ステップを含む処理をコンピュータに実行させる。
【００２５】
以下、図を参照して、本発明の実施の形態について説明する。
【００２６】
図１は、映像処理装置１１の構成を示すブロック図である。
【００２７】
映像処理装置１１は、例えば、放送信号を受信したり、放送信号と同等のコンテンツデータを電話回線やCATVを含む各種のネットワークを介して取得して、受信または取得したデータを内部に記録したり、表示装置１３に出力して表示させたり、装着された光ディスク１２などの記録媒体に記録する処理を実行することができる。また、映像処理装置１１は、装着された光ディスク１２などの記録媒体に記録されていたデータ、受信したデータ、または、外部から供給されたデータを、必要に応じてフォーマット変換する処理を実行することができる。また、映像処理装置１１は、取得して内部に記録された、または、フォーマット変換処理が施されたデータを、装着された光ディスク１２などの記録媒体に記録したり、外部の他の装置に供給する処理などを実行することができる。
【００２８】
映像処理装置１１は、制御部３１、アンテナ３２、放送受信制御部３３、再エンコード処理部３４、データ記録処理部３５、ローカルストレージ３６、ディスクドライブ３７、ネットワークインタフェース３８、変換処理部３９、操作入力取得部４０、再生制御部４１、AVデコーダ部４２、および、表示制御部４３を含んで構成されている。
【００２９】
制御部３１は、映像処理装置１１の各部を制御するものである。具体的には、例えば、操作入力取得部４０により取得されたユーザの操作入力に基づいて、ディスクドライブ３７に装着された光ディスク１２に記録されているデータを読み取って、ユーザが所望するコンテンツを再生したり、ローカルストレージ３６に記録する処理を制御したり、放送受信制御部３３により受信が制御された放送信号や、ネットワークインタフェース３８を介して供給されたデータをローカルストレージ３６に記録する処理を制御したり、変換処理部３９を制御して、ローカルストレージ３６に記録されているデータのフォーマットを変換する処理を制御する。
【００３０】
アンテナ３２は、放送信号を受信し、放送受信制御部３３に供給する。
【００３１】
放送受信制御部３３は、アンテナ３２により受信される放送信号のチューニングや復調などを実行し、復調された放送信号を、再エンコードが必要な場合は再エンコード処理部３４に、再エンコードが必要でない場合はデータ記録処理部３５に供給する。
【００３２】
再エンコード処理部３４は、制御部３１の制御に基づいて、必要に応じて、放送受信制御部３３により受信された放送信号を、映像処理装置１１が扱えるデータ形式に変換するための再エンコード処理を実行する。
【００３３】
データ記録処理部３５は、放送受信制御部３３により受信された放送信号、ネットワークインタフェース３８から供給されたデータ、または、再エンコード処理部３４により再エンコードされた符号化データなどのトランスポートストリーム（TS）の先頭に、トランスポートストリームを取得した時刻に対応する時間情報の一種であるATS(arrival time stamp)を付加して、パケッタイズ処理を施し、ローカルストレージ３６に供給する。データ記録処理部３５に供給されるデータが、既にパケッタイズされているトランスポートストリームである場合、データ記録処理部３５は、供給されたトランスポートストリームにATSを付加して、ローカルストレージ３６に供給するものとしても良い。データ記録処理部３５の処理の詳細、および、ATSについては、図２を用いて後述する。
【００３４】
ローカルストレージ３６は、例えば、ハードディスクなどにより構成され、供給されたデータを記録する。
【００３５】
ネットワークインタフェース３８は、有線または無線によりネットワークと接続されており、制御部３１からの制御に従って、ネットワークを介して、他の装置との間で通信を行い、他の装置から取得したデータをローカルストレージ３６に供給したり、ローカルストレージ３６から供給されたデータを他の装置に送信する。また、ネットワークインタフェース３８は、放送信号と同等のコンテンツデータを電話回線やCATVを含む各種のネットワークを介して取得した場合、取得したコンテンツデータを、必要に応じて、データ記録処理部３５に供給する。
【００３６】
ディスクドライブ３７は、例えば、光ディスク１２などの記録媒体を装着し、制御部３１の制御に基づいて、装着された記録媒体からデータを読み出して、ローカルストレージ３６に供給して記録させたり、装着された記録媒体にローカルストレージ３６から供給されたデータを記録する。
【００３７】
変換処理部３９は、制御部３１の制御に基づいて、ローカルストレージ３６に記録されているデータのフォーマットを変換する処理を実行する。変換処理部３９が有する機能の詳細、および、フォーマットの変換については後述する。
【００３８】
操作入力取得部４０は、例えば、ボタン、キー、ダイヤル、タッチパッド、または、図示しないリモートコマンダから供給される赤外線などを受信する受信部を含んで構成され、ユーザからの操作入力を取得し、制御部３１に供給する。
【００３９】
再生制御部４１は、制御部３１の制御に基づいて、AVデコーダ部４２によるデータの再生を制御する。
【００４０】
AVデコーダ部４２は、再生制御部４１の制御に基づいて、ローカルストレージ３６から取得したデータを、そのデータの種類（例えば、オーディオデータであるか、ビデオデータであるか、テキストデータであるか、その他のデータであるかなど）に基づいて、それぞれ、対応する方法でデコードし、外部の表示装置１３に供給する。
【００４１】
表示制御部４３は、制御部３１の制御に基づいて、例えば、ユーザに対する通知や、メニュー画面などに対応する表示画面データを生成し、外部の表示装置１３に供給して、その表示を制御するとともに、変換処理部３９から供給された、例えば、ユーザに対する通知や、メニュー画面などに対応する表示画面データを、外部の表示装置１３に供給して、その表示を制御する。
【００４２】
上述したように、データ記録処理部３５は、放送受信制御部３３により受信された放送信号、ネットワークインタフェース３８から供給されたデータ、または、再エンコード処理部３４により再エンコードされた符号化データを、所定のフォーマットのトランスポートストリームに変換し、トランスポートストリームの先頭に、トランスポートストリームを取得した時刻に対応する時間情報の一種であるATSを付加して、ローカルストレージ３６に供給する。
【００４３】
図２に、MPEG2（Moving Picture Experts Group 2）トランスポートストリームのレコーダモデルを示す。これは、レコーディングプロセスを規定するための概念上のモデルである。MPEG2トランスポートストリームは、このモデルに従っていなければならない。図１の映像処理装置１１においては、データ記録処理部３５が、図２に示されるレコーダモデルに従って、MPEG2トランスポートストリームをパケッタイズし、ATSを付加する機能を有する。
【００４４】
入力されるMPEG2トランスポートストリームは、フルトランスポートストリームまたはパーシャルトランスポートストリームである。また、入力されるMPEG2トランスポートストリームは、ISO/IEC13818-1またはISO/IEC13818-9に従っていなければならない。
【００４５】
そして、入力されるMPEG2トランスポートストリームのi番目のバイトは、T-STD(ISO/IEC 13818-1で規定されるTransport stream system target decoder)８１とソースパケッタイザ（source packetizer）８４へ、時刻t(i)に同時に入力される。
【００４６】
なお、T-STD８１は、MPEG2トランスポートストリームのレコーダモデルのシステムにおける仮想的なデコーダであり、T-STD８１に対応するデコーダがデータ記録処理部３５に存在するのではない。
【００４７】
PLL８２は、MPEG2トランスポートストリームのPCR(Program Clock Reference)の値にロックされた周波数（例えば、27MHzのクロック）を発生する。
【００４８】
アライバルタイムクロックカウンタ（Arrival time clock counter）８３は、PLL８２が出力する27MHzの周波数のパルスをカウントするバイナリカウンタである。Arrival_time_clock(i)は、時刻t(i)におけるArrival time clock counter８３のカウント値である。
【００４９】
ソースパケッタイザ８４は、すべてのトランスポートパケットにTP_extra_headerを付加し、ソースパケットを作る。また、ソースパケッタイザ８４は、トランスポートパケットにATSを付加する。
【００５０】
換言すれば、ソースパケッタイザ８４は、アライバルタイムクロックカウンタ８３から供給されるArrival_time_clock(i)を基に、ソースパケットのTP_extra_headerにおけるATS（以下、Arrival_time_stampとも称する）の値を設定する。Arrival_time_stampは、トランスポートパケットの第１バイト目がT-STD８１とソースパケッタイザ８４の両方へ到着する時刻を表す。Arrival_time_stamp(k)は、Arrival_time_clock(k)のサンプル値であり、ここで、kはトランスポートパケットの第１バイト目を示す。
【００５１】
データ記録処理部３５に供給されるデータが、所定のフォーマットでパケッタイズされたトランスポートストリームである場合、ソースパケッタイザ８４は、供給されたソースパケットにATSを付加して、ライトバッファ８５に供給するものとしても良い。
【００５２】
ライトバッファ（Write Buffer）８５は、ローカルストレージ３６にソースパケットを記録する場合に用いられるバッファである。
【００５３】
入力トランスポートストリームの最大ビットレートをTS_recording_rateとすると、ソースパケッタイザ８４からライトバッファ８５へのソースパケットストリームの入力ビットレートであるRmaxは、次の式（１）に示されるように計算される。
【００５４】
Rmax＝TS_recording_rate×192/188・・・（１）
【００５５】
そして、ライトバッファ８５からローカルストレージ３６への出力ビットレートRudは、ライトバッファ８５が空でない時、所定の値をとり、ライトバッファ８５が空である時、ゼロである。ライトバッファ８５から出力された、T-STD８１への各パケットの到着時刻に対応するATSが付加された、ライトバッファ８５からの各パケットは、ローカルストレージ３６に供給されて記録される。
【００５６】
次に、映像処理装置１１において扱われるデータのアプリケーションフォーマットについて説明する。
【００５７】
図３は、映像処理装置１１において扱われるデータのアプリケーションフォーマットの簡単化された構造を示している。
【００５８】
アプリケーションフォーマットは、ＡＶ（Audio Visual)ストリームの管理のためにPlayListとClipの２つのレイヤをもつ。ここでは、ＡＶストリームと、必要に応じて、例えば、字幕に対応するテキストデータなど、AVストリームとともに再生可能なデータストリームと、それに付随する情報であって、対応するAVストリームの実体を管理するための情報であるClip Informationのペアを１つのオブジェクトと考え、それらをまとめてClipと称する。以下、ＡＶストリームのデータファイルをＡＶストリームファイルと称する。また、Clip InformationのデータファイルをClip Informationファイルと称する。
【００５９】
一般的に、コンピュータ等で用いられるファイルはバイト列として扱われるが、ＡＶストリームファイルなどにより構成されるコンテンツは時間軸上に展開され、Clipのアクセスポイントは、主に、タイムスタンプでPlayListにより指定される。
【００６０】
Clip中のアクセスポイントがタイムスタンプでPlayListにより示されている場合、Clip Informationファイルは、タイムスタンプから、ＡＶストリームファイルなどのストリーム中のデコードを開始すべきアドレス情報を見つけるために用いられる。
【００６１】
PlayListはAVストリームの再生を管理するための情報であり、ＡＶストリームなどの再生区間を示す情報の集合である。具体的には、例えば、あるＡＶストリーム中の１つの再生区間を示す情報はPlayItemと呼ばれ、PlayItemは、時間軸上の再生区間のIN点（再生開始点）とOUT点（再生終了点）のペアで表される。したがって、PlayListは、図３に示されるように１つ、または複数のPlayItemにより構成される。
【００６２】
図３において、左から１番目に図示されている第１のPlayListは２つのPlayItemから構成され、その２つのPlayItemにより、左側に図示される第１のClipに含まれるＡＶストリームの前半部分と後半部分がそれぞれ参照されている。また、左から２番目に図示されている第２のPlayListは１つのPlayItemから構成され、それにより、右側に図示されている第２のClipに含まれるＡＶストリーム全体が参照されている。更に、左から３番目に図示されている第３のPlayListは２つのPlayItemから構成され、その２つのPlayItemにより、左側に図示されている第１のClipに含まれるＡＶストリームの所定の部分と、右側に図示されている第２のClipに含まれるＡＶストリームの所定の部分とがそれぞれ参照されている。
【００６３】
ナビゲーションプログラム（Navigation program）は、PlayListの再生の順序や、PlayListのインタラクティブな再生をコントロールする機能を、再生制御部４１に実行させるためのプログラムである。
【００６４】
ナビゲーションプログラムは、インデックステーブル（Index table）と、インデックステーブルにより読み出されるMovie ObjectやBD−J Objectにより構成される。インデックステーブルは、コンテンツのタイトルやメニューの定義を行うものであり、各タイトルやメニューのエントリーポイントを保持している。
【００６５】
Movie ObjectやBD−J Objectは、PlayListの再生の順序や、PlayListのインタラクティブな再生をコントロールする機能を有する。また、Movie ObjectやBD−J Objectは、各種の再生の実行をユーザが指示するためのメニュー画面を表示する機能なども有する。このBD−J Objectは、例えば、Java（登録商標）などのプログラミング言語で記述される。
【００６６】
例えば、Movie ObjectやBD−J Objectにより、そのときの再生位置を表す情報として、左のPlayListに含まれる一番左側のPlayItemが指定された場合、そのPlayItemが参照する、Clipに含まれるＡＶストリームの前半部分の再生が行われる。このように、PlayListは、ＡＶストリームファイルなどの再生を管理するための再生管理情報として用いられる。
【００６７】
また、Movie ObjectやBD−J Objectには、ナビゲーションコマンドが含まれている場合がある。ナビゲーションコマンドは、ＡＶストリームファイルなどの再生を制御するための各種のコマンドである。
【００６８】
また、ナビゲーションプログラムは、各種の再生の実行をユーザが指示するためのメニュー画面を表示する機能なども有する。このナビゲーションプログラムは、例えば、Java（登録商標）などのプログラミング言語で記述され、PlayListおよびClipとともに、１つのプログラムを構成する。
【００６９】
また、図３を用いて説明したPlayListには、PlayItemにより指定されるメインパス（Main Path）に加えて、サブプレイアイテム（Sub Play Item）を用いて指定されるサブパス（Sub path）の情報を含ませるようにすることもできる。SubPlayItemを定義すると、例えば、PlayItemにより指定されるClip（例えば、MPEG2トランスポートストリーム）に多重化されていない、独立したデータストリームをＡＶストリーム再生に同期して再生させることができる。
【００７０】
例えば、PlayItemにより指定されるメインパス（Main Path）のClip ＡＶストリームに対応させて、テキスト字幕ファイル、および、レンダリングに必要となるフォントファイルから構成される字幕関連情報と、字幕関連情報の再生区間を指定したSubPlayItemを用意することで、Clip ＡＶストリームの再生と同時に、テキスト字幕ファイルに記載されているデータに対応する字幕を、フォントファイルに記載されているフォントデータに基づいた表示フォントで、表示装置１３に表示させるようにすることができる。また、例えば、PlayItemにより指定されるメインパス（Main Path）のClip ＡＶストリームに対応させて、他言語の吹き替え音声データと、吹き替え音声データに対応したSubPlayItemを用意することで、Clip ＡＶストリームの再生と同時に、他言語の吹き替え音声データを再生出力することができる。
【００７１】
同様に、PlayItemにより指定されるメインパス（Main Path）のClip ＡＶストリームに対応させて、字幕表示用のテキストデータのストリーム（TextST stream）のみならず、所定のGUI表示画面のようなビットマップ字幕をランレングス符号化したストリームであるPGストリーム（Presentation Graphics stream）や、例えば、ユーザの操作入力を受けることが可能なボタンやアイコン、または、サムネイルなどのアイテムを含むインタラクティブグラフィックメニュー（Interactive graphics presentation menu）を表示させるためのIGストリーム（Interactive graphics stream）に対応したSubPlayItemを用意することで、Clip ＡＶストリームの再生と同時に、字幕やGUI表示画面などを再生出力することができる。
【００７２】
また、映像処理装置１１において再生可能なコンテンツとそのコンテンツを再生するためのデータ、換言すれば、映像処理装置１１において扱うことができるナビゲーションプログラム、PlayList、および、Clipをコンテンツプログラム、または、単にプログラムと称するものとする。映像処理装置１１において扱うことができるコンテンツプログラムのフォーマットは、複数種類存在し、映像処理装置１１においては、ユーザの操作入力に基づいて、ローカルストレージ３６に記録されているコンテンツプログラムのフォーマットを変換することが可能である。
【００７３】
そして、PGやIGは、コンテンツプログラムのフォーマットによっては、制限ありでClipに含まれるものとしても良い。具体的には、例えば、IGをClipに含むことが可能なデータフォーマットと、IGをClipに含むことができないデータフォーマットが存在するものとすることができる。
【００７４】
次に、AVストリームファイルの構造の一例について説明する。AVストリームファイルは、例えば、図４に示すような、MPEG2トランスポートストリームの構造を有することができる。
【００７５】
MPEG2トランスポートストリームは、整数個のAligned unitから構成される。Aligned unitの大きさは、6144バイト(2048×3バイト)であり、ソースパケットの第１バイト目から始まる。ソースパケット（Source packet）は、192バイト長である。１つのソースパケットは、TP_extra_headerとトランスポートパケットから構成される。TP_extra_headerは、４バイト長であり、またトランスポートパケットは、188バイト長である。１つのAligned unitは、３２個のソースパケットから構成される。ビデオストリームやオーディオストリームのデータは、MPEG2 PES（Packetized Elementary Stream）パケットにパケット化されており、PESパケットは、トランスポートパケットにパケット化される。
【００７６】
ソースパケットのシンタクスを図５に示す。
【００７７】
TP_extra_header()は、４バイト長のヘッダである。また、transport_packet() は、 ISO/IEC 13818-1で規定される188バイト長のMPEG-2トランスポートパケットである。
【００７８】
TP_extra_headerのシンタクスを図６に示す。
【００７９】
copy_permission_indicatorは、対応するトランスポートパケットのペイロードのコピー制限を表す整数である。
【００８０】
arrival_time_stampは、AVストリームの中で、対応するトランスポートパケットが、図２を用いて説明したMPEG2トランスポートストリームのレコーダモデルにおけるT-STD８１に到着する時刻を示すタイムスタンプである。これは、arrival_time_stamp（ATS）によって指定される値を持つ整数値である。
【００８１】
また、上述したように、映像処理装置１１において扱うことができるコンテンツプログラム（ナビゲーションプログラム、PlayList、および、Clip）のフォーマットは、複数種類存在し、映像処理装置１１においては、ユーザの操作入力に基づいて、所望のデータのフォーマットを変換することが可能である。
【００８２】
映像処理装置１１において扱うことができるコンテンツプログラムのフォーマットには、１つのClipInfo（換言すれば、１つのPlayList）において定義可能なシーケンス数が異なる第１のフォーマットと第２のフォーマットとが含まれる。
【００８３】
図７を参照して、第１のフォーマットと第２のフォーマットのそれぞれにおけるトランスポートストリームの構成について説明する。
【００８４】
第１のフォーマットは、例えば、放送ストリームをそのまま記録する場合を想定したデータフォーマットであり、１つのClipInfo（換言すれば、１つのPlayList）において定義可能なATCシーケンスの数の上限が２５５である。ここで、１つのATCシーケンスとは、ATC（または、アライバルタイムベース）の不連続点を含まないソースパケット列である。
【００８５】
第２のフォーマットは、再生専用のリムーバブルメディア（例えば、再生専用の光ディスクなど）にコンテンツプログラムを記録する場合のフォーマットに近い形式の（すなわち、再生専用のリムーバブルメディア用のフォーマットと非常に互換性の高い）フォーマットであり、第１のフォーマットとは異なり、１つのClipInfo（換言すれば、１つのPlayList）において定義可能なATCシーケンスの数が１である。
【００８６】
また、第１のフォーマットおよび第２のフォーマットのいずれにおいても、１つのClipInfo（換言すれば、１つのPlayList）において定義可能なSTC(System Time Clock)シーケンスの数の上限は、２２５である。ここで、１つのSTCシーケンスとは、STCの不連続点を含まないソースパケット列である。
【００８７】
STCの定義は、MPEG-2で規定されている定義に従う。すなわち、これは、トランスポートストリームの中のPCR(Program Clock Reference)に基づいて作られる時間軸であるシステムタイムベースのクロックである。STCの値は90kHz精度、33ビット長のバイナリカウンタのカウント値で表される。
【００８８】
ATCが、例えば、放送信号の受信時や、コンテンツの基となるAVストリームデータの取得時など、入力トランスポートストリームをClip AVストリームファイルとして新しく記録する時に、映像処理装置１１においてカウントされる値であるのに対して、STCは、ストリームの供給元においてカウントされ、ストリームに付与されている値である。STCの不連続は、例えば、取得されるストリームが放送信号である場合、放送局が伝送系を切り替えた場合、記録側（すなわち、映像処理装置１１）が記録するチャンネルを切り替えた場合、ユーザが編集操作を行った場合などに発生する。
【００８９】
そして、第１のフォーマットにおいて、１つのClipInfo（換言すれば、１つのPlayList）において定義可能なプログラムシーケンス（program-sequence）の数の上限は、２５５であり、第２のフォーマットにおいて、１つのClipInfo（換言すれば、１つのPlayList）において定義可能なプログラムシーケンスの数は、１である。
【００９０】
ここで、ストリームファイルの中で本フォーマットが規定するコンテンツプログラム内容が一定であるソースパケット列が、１つのプログラムシーケンスであるものとする。例えば、トランスポートパケットのPIDが変化したり、ビデオストリームのコンポーネント種類がSDTVからHDTVに変化した場合、その変化点の前後は、異なるプログラムシーケンスとされる。
【００９１】
また、データの記録時に、１つのディレクトリに含ませることが可能なClipInfoファイルの数の上限は、第１のフォーマットで２００、第２のフォーマットで４０００となっている。
【００９２】
また、第１のフォーマットおよび第２のフォーマットのいずれにおいても、所定のGUI表示画面のようなビットマップ字幕をランレングス符号化したストリームであるPGを、一定の条件を満たすことにより、Clipに含めることが可能である。そして、第１のフォーマットにおいては、例えば、ユーザの操作入力を受けることが可能なボタンやアイコン、または、サムネイルなどのアイテムを含むインタラクティブグラフィックメニュー（Interactive graphics presentation menu）を表示させるためのIGをClipに含めることはできないが、第２のフォーマットにおいては、IGをClipに含めることが可能である。
【００９３】
また、第１のフォーマットでは、主な映像ストリームと、字幕やPGとは、いずれもビデオストリームとして取り扱われ、異なるストリームの種別であるとして、シンタクス上で明確に区別されないが、第２のフォーマットでは、主な映像ストリームと、字幕、PGおよびIGとが、異なるストリームの種別であるとして、シンタクス上で明確に区別される。
【００９４】
次に、図８を参照して、第１のフォーマットと第２のフォーマットとのフォーマット変換について説明する。
【００９５】
第１のフォーマットと第２のフォーマットとは、図７を用いて説明したように、１つのClipInfo（換言すれば、１つのPlayList）において定義可能なシーケンス数が異なる。また、PlayListおよびClipInfoの構成も異なる。
【００９６】
第１のフォーマットと第２のフォーマットとで、ATC_sequenceとProgram_sequenceの数が同一である場合、換言すれば、第１のフォーマットにおいて１つのClipInfo（換言すれば、１つのPlayList）において定義されているシーケンス数がATC_sequenceとProgram_sequenceのいずれにおいても１である場合、付随するDatabaseファイル(PlayList/ClipInfo)を変換することによって、トランスポートストリームを変換することなく、両フォーマット間でデータを変換することが可能となる。
【００９７】
これに対して、第１のフォーマットと第２のフォーマットとで、ATC_sequenceとProgram_sequenceの少なくともいずれかの数が異なる場合、換言すれば、第１のフォーマットにおいて１つのClipInfo（換言すれば、１つのPlayList）において定義されているシーケンス数がATC_sequenceとProgram_sequenceのいずれかにおいて１ではない場合、第１のフォーマットと第２のフォーマットとのフォーマット変換を行うにあたっては、付随するDatabaseファイル(PlayList/ClipInfo)を変換するとともに、トランスポートストリームを変換する必要がある。
【００９８】
すなわち、第１のフォーマットで記述されているデータを第２のフォーマットに変換する場合において、１つのClipInfo（換言すれば、１つのPlayList）で定義されているトランスポートストリームに、複数のATC_sequenceまたはProgram_sequenceが含まれているとき、ATC_sequenceおよびProgram_sequenceがそれぞれ１つになるようにトランスポートストリームが分割されるとともに、それぞれのトランスポートストリームに対応付けて、付随するDatabaseファイル(PlayList/ClipInfo)が生成され、更に、これに対応するナビゲーションプログラムのIndexファイルが生成される。
【００９９】
例えば、図９に示されるように、第１のフォーマットで記述されているデータのうち、Clip1で定義されている第１のトランスポートストリームに、＃１ATC_sequence、＃２ATC_sequence、＃３ATC_sequence、＃４ATC_sequenceの４つのATC_sequenceが含まれていた場合について考える。
【０１００】
このデータを第２のフォーマットに変換する場合、第２のフォーマットでは、１つのClipInfo（換言すれば、１つのPlayList）において定義可能なATC_sequenceの数は１つだけであるから、トランスポートストリームは４つに分割され、＃１ATC_sequenceはClip1で定義され、＃２ATC_sequenceはClip２で定義され、＃３ATC_sequenceはClip３で定義され、＃４ATC_sequenceはClip３で定義されるように、それぞれのトランスポートストリームに対応付けて、付随するDatabaseファイル(PlayList/ClipInfo)が変換されて生成される。
【０１０１】
また、第１のフォーマットで記述されているデータのうちのあるClipで定義されているトランスポートストリームが複数のATC_sequenceを含んでいるのみならず、複数のProgram_sequenceを含んでいる場合について、図１０を用いて説明する。
【０１０２】
すなわち、図１０に示されるように、第１のフォーマットで記述されているデータのうちのあるClipで定義されているトランスポートストリームが、２つのProgram_sequenceを含み、３つのATC_sequenceおよびSTC_sequenceを含み、ATC_sequenceおよびSTC_sequenceの境界位置が同一であり、かつ、２つのProgram_sequenceの境界位置と、３つのATC_sequenceおよびSTC_sequenceにおける２箇所の境界位置とがそれぞれ異なる場合について考える。
【０１０３】
このデータを第２のフォーマットに変換する場合、第２のフォーマットでは、１つのClipInfo（換言すれば、１つのPlayList）において定義可能なATC_sequenceの数、および、Program_sequenceの数はそれぞれ１つだけであるから、トランスポートストリームは、２つのProgram_sequenceの間に存在する１箇所の境界位置と、３つのATC_sequenceおよびSTC_sequenceのそれぞれの間に存在する２箇所の境界位置とのぞれぞれで分割される。すなわち、第１のフォーマットで記述されている１つのClipで定義されている１つのトランスポートストリームは、４つに分割され、分割された４つのシーケンスは、それぞれ異なる４つのClipであるClip１乃至Clip4で定義されるように、それぞれのトランスポートストリームに対応付けて、付随するDatabaseファイル(PlayList/ClipInfo)が変換されて生成される。
【０１０４】
また、第２のフォーマットで記述されているデータを第１のフォーマットに変換する場合においては、１つのClipInfo（換言すれば、１つのPlayList）で定義されているトランスポートストリームをそのまま１つのトランスポートストリームとしてもよいが、第１のフォーマットと第２のフォーマットとで１つのディレクトリに含ませることが可能なClipInfoファイルの数の上限が異なることから、ATC_sequence、STC_sequence、およびProgram_sequenceがそれぞれ２５５を超えない範囲で、複数のトランスポートストリームを結合して、１つのトランスポートストリームとすることにより、ClipInfoファイル数を減少させるようにしてもよい。トランスポートストリームが結合された場合には、トランスポートストリームの結合に対応して、対応するDatabaseファイル(PlayList/ClipInfo)が１つ生成される。
【０１０５】
上述したように、第１のフォーマットおよび第２のフォーマットのいずれにおいても、所定のGUI表示画面のようなビットマップ字幕をランレングス符号化したストリームであるPGを、一定の条件を満たすことにより、Clipに含めることが可能である。これに対して、第１のフォーマットにおいては、例えば、ユーザの操作入力を受けることが可能なボタンやアイコン、または、サムネイルなどのアイテムを含むインタラクティブグラフィックメニュー（Interactive graphics presentation menu）を表示させるためのIGをClipに含めることはできないが、第２のフォーマットにおいては、IGをClipに含めることが可能である。
【０１０６】
例えば、放送受信制御部３３により受信が制御された放送コンテンツが、第１のフォーマットでローカルストレージ３６に記録されている場合、そのままでは、IGによるメニュー画面を付けることができない。例えば、ローカルストレージ３６に記録されているコンテンツプログラムを編集したときなどにおいて、編集後のコンテンツプログラムにIGによるメニュー画面を付けることをユーザが求めた場合、そのコンテンツプログラムが第１のフォーマットで記録されているのであれば、そのコンテンツプログラムを第２のフォーマットに変換した後であれば、IGによるメニュー画面を付けることが可能となる。
【０１０７】
映像処理装置１１においては、例えば、ユーザの操作入力などに基づいて、第１のフォーマットと第２のフォーマットとのフォーマットの相互変換を行なうことができるようになされている。映像処理装置１１においては、ユーザによりフォーマットの変更が指示されたファイルのフォーマットが第１のフォーマットであるか第２のフォーマットであるかを確認し、変換後のフォーマットにおいて、１つのClipInfo（換言すれば、１つのPlayList）において定義可能なシーケンス数やファイル数の上限の制限を違反しないようにして、変換処理を実行する。
【０１０８】
次に、AVストリームファイルの再生情報を管理するデータベースフォーマットについて説明する。
【０１０９】
図１１は、第１のフォーマットにおける、Clip Information fileのシンタクスを示す。Clip Information fileは、SequenceInfo(), ProgramInfo(), CPI()を含む。
【０１１０】
type_indicatorは、ファイルのタイプを示している。
【０１１１】
version_numberは、このzzzzz.clpiファイルのバージョンナンバーを示す４個のキャラクター文字を示す。
【０１１２】
SequenceInfo_start_addressは、zzzzz.clpiファイルの先頭のバイトからの相対バイト数を単位として、SequenceInfo()の先頭アドレスを示す。相対バイト数はゼロからカウントされる。
【０１１３】
ProgramInfo_Start_addressは、zzzzz.clpiファイルの先頭のバイトからの相対バイト数を単位として、ProgramInfo()の先頭アドレスを示す。相対バイト数はゼロからカウントされる。
【０１１４】
CPI_Start_addressは、zzzzz.clpiファイルの先頭のバイトからの相対バイト数を単位として、CPI()の先頭アドレスを示す。相対バイト数はゼロからカウントされる。
【０１１５】
ClipMark_Start_addressは、zzzzz.clpiファイルの先頭のバイトからの相対バイト数を単位として、ClipMark()の先頭アドレスを示す。相対バイト数はゼロからカウントされる。
【０１１６】
MakersPrivateData_Start_addressは、zzzzz.clpiファイルの先頭のバイトからの相対バイト数を単位として、MakersPrivateData()の先頭アドレスを示す。相対バイト数はゼロからカウントされる。padding_word（パディングワード）は、zzzzz.clpiのシンタクスに従って挿入される。Ｎ１乃至Ｎ６は、ゼロまたは任意の正の整数である。それぞれのパディングワードは、任意の値を取るようにしても良い。
【０１１７】
ClipInfo()は、対応するＡＶストリームファイル（Clip ＡＶストリーム）の属性情報をストアする。第１のフォーマットと第２のフォーマットとでは、ClipInfo（）のシンタクスが異なる。それぞれのシンタクスについての詳細は、ここでは省略するが、いずれのシンタクスにおいても、Clip_stream_type、application_type、TS_type_info_blockのフィールドが含まれる。Clip_stream_typeの８ビットのフィールドは、Clip Informationファイルに対応するＡＶストリームのタイプを示す。また、application_typeは、アプリケーションのタイプを表す。
【０１１８】
SequenceInfo()は、Clip AV streamの中のATC-sequenceとSTC-sequenceの情報を定義する。SequenceInfo()については、図１７を用いて後述する。
【０１１９】
PloglamInfo()は、AVストリームファイルの中でのコンテンツプログラム内容の変化点の情報をストアする。PloglamInfo()については、図１９および図２０を用いて後述する。
【０１２０】
CPI()は、ＡＶストリームの中の時間情報とそのファイルの中のアドレスとを関連づけるための情報を定義するものである。
【０１２１】
また、クリップ内に番組の頭出し点やシーンチェンジ点などを設けることを可能にするマークの情報はClipMark()に、このClipMarkを記録した記録再生装置のメーカ固有の情報はMakersPrivateData()に、それぞれ格納される。
【０１２２】
そして、第２のフォーマットにおける、Clip Information fileのシンタクスについて、この部分の構成は、図１１を用いて説明した第１のフォーマットにおける場合と同様であるので、それぞれのフィールドなどの説明は省略するが、シンタクス内のそれぞれのフィールド等において取りうる値などは異なる。
【０１２３】
具体的には、例えば、第１のフォーマットにおいては、ClipMark()に、例えば、番組の頭出し点やシーンチェンジ点などを設けることを可能にするマークの情報が記載されるようになされているが、第２のフォーマットにおいては、対応する部分の情報の使用については未定義とされている。また、上述したように、第１のフォーマットと第２のフォーマットとにおいては、定義可能なシーケンスの数の上限が異なるため、対応する部分（例えば、SequenceInfo()やProgramInfo()など）の記載もそれぞれにおいて異なる。
【０１２４】
上述したTS_type_info_block()のシンタクスは、第１のフォーマットおよび第２のフォーマットで同一であり、映像処理装置１１をはじめとする、これらのデータフォーマットで規定されるデータを扱う装置は、TS_type_info_block()内に記載の値を参照して、データのフォーマットの種類を判断する。図１２に、第１のフォーマットおよび第２のフォーマットにおけるTS_type_info_block()のシンタクスを示す。映像処理装置１１をはじめとする、これらのデータフォーマットで規定されるデータを扱う装置は、TS_type_info_block()のFormat_IdentifierとStream_format_nameを確認することで、データのフォーマットの種類を判断する。
【０１２５】
次に、第１のフォーマットおよび第２のフォーマットにおけるSequenceInfo()のシンタクスを説明するのに先立って、SequenceInfo()において定義される、ATC-sequenceおよびSTC-sequenceについて説明する。
【０１２６】
まず、SequenceInfo()において定義される、ATC-sequenceについて説明する。
【０１２７】
AVストリームファイルを構成する各ソースパケットのarrival time stamp (ATS) に基づいて作られる時間軸を、アライバルタイムベースと呼び、そのクロックを、ATC (Arrival Time Clock)と呼ぶ。そして、ATCの不連続点（アライバルタイムベースの不連続点）を含まないソースパケット列を、ATC-sequenceと呼ぶ。
【０１２８】
図１３は、ATC-sequenceについて説明する図である。例えば、放送信号の受信時など、入力トランスポートストリームをClip AVストリームファイルとして新しく記録する時、そのClipはATCの不連続点を含んではならず、ただ１つのATC-sequenceを持つ。ATCの不連続点は、編集等によってClip AVストリームファイルのストリームデータを部分的に消去した場合にだけ作られることを想定している。
【０１２９】
AVストリームファイルの中で、新しいATCが開始するアドレス、すなわち、ATC-sequenceのスタートアドレスは、SequenceInfo()にストアされる。このアドレスは、SPN_ATC_startにより示される。
【０１３０】
AVストリームファイルの中にある最後のATC-sequence以外のATC-sequenceは、そのSPN_ATC_startで指されるソースパケットから開始し、その次のSPN_ATC_startで指されるソースパケットの直前のソースパケットで終了する。最後のATC-sequenceは、そのSPN_ATC_startで指されるソースパケットから開始し、AVストリームファイルの最後のソースパケットで終了する。
【０１３１】
図１４は、ATCの不連続点とATC-sequenceの関係を説明する図である。この例の場合、Clip AVストリームファイルは、2個のATC不連続点を持ち、３個のATC-sequenceを持つ。
【０１３２】
次に、SequenceInfo()において定義される、STC-sequenceについて説明する。
【０１３３】
STC(System Time Clock)の定義は、MPEG-2で規定されている定義に従う。すなわち、これは、トランスポートストリームの中のPCR(Program Clock Reference)に基づいて作られる時間軸であるシステムタイムベースのクロックである。STCの値は90kHz精度、33ビット長のバイナリカウンタのカウント値で表される。
【０１３４】
図１５は、連続なSTC区間について説明する図である。ここで横軸は、Arrival Time Clock（またはアライバルタイムベース）であり、縦軸はSTC（またはシステムタイムベース）である。また、図中の白丸は、TSパケットにおけるPCRの最後のバイトが到着した時刻を示している。ケース１の場合、STCは単調増加しており、その区間のSTCは連続である。ケース２の場合、３３ビットのSTCが途中でラップアラウンドしている。STCのラップアラウンド点はSTCの不連続ではない。ラップアラウンドしてもSTCは連続である。
【０１３５】
STCの不連続は、上述したように、放送局が伝送系を切り替えた場合、記録側（例えば、映像処理装置１１）が記録するチャンネルを切り替えた場合、ユーザが編集操作を行った場合などに発生する。
【０１３６】
STCの不連続点（システムタイムベースの不連続点）を含まないソースパケット列を、STC-sequenceと称する。なお、同じSTC_sequenceの中で同じSTCの値は、決して現れない。そのために、Clipの最大時間長を、３３ビットのSTCのラップアラウンド周期（約26時間）以下に制限している。
【０１３７】
AVストリームファイルの中で、新しいSTCが開始するアドレス、すなわち、STC-sequenceのスタートアドレスが、SequenceInfo()にストアされる。このアドレスは、SPN_STC_startにより示される。
【０１３８】
STC-sequenceは、ATC-sequenceの境界をまたぐことはない。
【０１３９】
AVストリームファイルの中にある最後のSTC-sequence以外のSTC-sequenceは、そのSPN_STC_startで指されるソースパケットから開始し、その次のSPN_STC_startで指されるソースパケットの直前のソースパケットで終了する。最後のSTC-sequenceは、そのSPN_STC_startで指されるソースパケットから開始し、AVストリームファイルの最後のソースパケットで終了する。
【０１４０】
図１６は、STCの不連続点とSTC-sequenceの関係、およびSTC-sequenceとATC-sequenceの関係を説明する図である。この例の場合、Clip AVストリームファイルは、３個のSTCを持ち、３個のSTC-sequenceを持つ。１つのSTC-sequenceが、ATC-sequenceの境界をまたぐことはない。
【０１４１】
AVストリームがSTCの不連続点を持つ場合、そのAVストリームファイルの中で同じ値のPTS（Program Time Stamp）が現れるかもしれない。そのため、AVストリーム上のある時刻をPTSベースで指す場合、アクセスポイントのPTSだけではそのポイントを特定するためには不十分である。PTSに加えて、そのPTSを含むところのSTC-sequenceのインデックスが必要である。そのインデックスをSTC-idと呼ぶ。
【０１４２】
そして、第１のフォーマットと第２のフォーマットとでは、SequenceInfo()のシンタクスの構造は同じだが、取れる値の制限が異なる。
【０１４３】
次に、図１７を参照して、第１のフォーマットおよび第２のフォーマットにおけるSequenceInfo()のシンタクスについて説明する。
【０１４４】
lengthは、このlengthフィールドの直後のバイトからSequenceInfo()の最後のバイトまでのバイト数を示す。
【０１４５】
num_of_ATC_sequencesは、AVストリームファイルの中にあるATC-sequenceの数を示す。
【０１４６】
すなわち、第１のフォーマットと第２のフォーマットとで、num_of_ATC_sequencesの取れる値が異なる。すなわち、num_of_ATC_sequencesの値として、第１のフォーマットでは、２５５以下の値をとることができるが、第２のフォーマットでは、１のみしか取ることができない。
【０１４７】
SPN_ATC_start[atc_id]は、AVストリームファイル上でatc_idによって指されるATC-sequenceが開始するアドレスを示す。SPN_ATC_start[atc_id]は、ソースパケット番号を単位とする大きさであり、AVストリームファイルの最初のソースパケットからゼロを初期値としてカウントされる。
【０１４８】
SequenceInfo()の中の最初のSPN_ATC_start[0]は、ゼロである。また、SequenceInfo()の中でエントリーされるSPN_ATC_start[atc_id]の値は、昇順に並んでいる。すなわち、SequenceInfo()の中でエントリーされるSPN_ATC_start[atc_id]は、次の条件を満たす。
【０１４９】
SPN_ATC_start[0]＝0
0＜atc_id＜num_of_ATC_sequencesなるatc_idについて、
SPN_ATC_start[atc_id−1]＜SPN_ATC_start[atc_id]
【０１５０】
num_of_STC_sequences[atc_id]は、atc_idによって指されるATC-sequence上にあるSTC-sequenceの数を示す。
【０１５１】
offset_STC_id[atc_id]は、atc_idによって指されるATC-sequence上にある最初のSTC-sequenceに対するsct_idのオフセット値を示す。AVストリームファイルを新たに記録する時、offset_STC_id[atc_id]は、ゼロである。
【０１５２】
atc_idによって指されるATC-sequence上にあるSTC-sequenceに対応するstc_idの値は、シンタクス中のstc_idのfor-loopによって記述される順番によって定義され、その値はoffset_STC_id[atc_id]から開始する。
【０１５３】
SequenceInfo()の中で定義される連続する２個のATC-sequenceについて、前側のATC-sequence上にある最後のSTC-sequenceに対するstc_idとそれに続くATC-sequence上にある最初のSTC-sequenceに対するstc_idは、同じ値でも良い。もし、これら２個のstc_idが同じ値の場合、それらの値で参照される２個のSTC-sequenceの中で同じSTCの値が現れることはない。
【０１５４】
SequenceInfo()の中でエントリーされるstc_idの値は、昇順に並ばなければならない。offset_STC_id[atc_id]は、この制限を満たすように値がセットされる。
【０１５５】
PCR_PID[atc_id][stc_id]は、atc_idによって指されるATC-sequence上にあるところのstc_idによって指されるSTC-sequence に有効なPCRを持つトランスポートパケットのPIDの値である。
【０１５６】
SPN_STC_start[atc_id][stc_id]は、atc_idによって指されるATC-sequence上にあるところのstc_idによって指されるSTC-sequence が、AVストリームファイル上で開始するアドレスを示す。SPN_STC_start[atc_id][stc_id]は、ソースパケット番号を単位とする大きさであり、AVストリームファイルの最初のソースパケットからゼロを初期値としてカウントされる。
【０１５７】
SequenceInfo()の中でエントリーされるSPN_STC_start[atc_id][stc_id]の値は、昇順に並んでいる。atc_idによって指されるATC-sequence上にある最初のSPN_STC_start[atc_id][stc_id]は、SPN_ATC_start[atc_id]以上の値である。すなわち、次の条件を満たす。
【０１５８】
SPN_ATC_start[atc_id]≦SPN_STC_start[atc_id][0]
【０１５９】
presentation_start_time[atc_id][stc_id]は、atc_idによって指されるATC-sequence上にあるstc_idによって指されるSTC-sequence上にあるAVストリームデータのプレゼンテーション・スタート・タイムを示す。これは、そのSTC-sequenceのSTCから導かれる45kHzを単位とするプレゼンテーション・タイムの値である。
【０１６０】
presentation_end_time[atc_id][stc_id]は、atc_idによって指されるATC-sequence上にあるstc_idによって指されるSTC-sequence上にあるAVストリームデータのプレゼンテーション・エンド・タイムを示す。これは、そのSTC-sequenceのSTCから導かれる45kHzを単位とするプレゼンテーション・タイムの値である。
【０１６１】
次に、ProgramInfo()について説明する。コンテンツプログラムは、複数のエレメンタリストリームを含んで構成することが可能であるので、これらのストリームの同期再生のために、ただ１つのシステムタイムベースを共有するものである。
【０１６２】
映像処理装置１１をはじめとする、これらのデータフォーマットで規定されるデータを扱う装置にとって、AVストリームのデコードに先だち、そのAVストリームの内容がわかることは有用である。この内容とは、例えば、ビデオやオーディオのエレメンタリストリームを伝送するトランスポートパケットのPIDの値や、ビデオやオーディオのコンポーネント種類（例えば、HDTVのビデオとMPEG-2 AACのオーディオストリームなど）などの情報である。
【０１６３】
この情報はAVストリームを参照するPlayListに基づいて、ユーザの操作入力などを促したり、内容を説明するためなどに表示されるメニュー画面を作成するのに有用であるし、また、AVストリームのデコードに先だって、映像処理装置１１のAVデコーダなどの初期状態をセットするために役立つ。この理由のために、Clip Information fileは、コンテンツプログラムの内容を説明するためのProgramInfoを持つ。
【０１６４】
MPEG2トランスポートストリームにより構成されるAVストリームファイルにおいては、そのファイルの中でプログラム内容が変化する可能性を有している。例えば、ビデオエレメンタリストリームを伝送するトランスポートパケットのPIDが変化したり、ビデオストリームのコンポーネント種類がSDTVからHDTVに変化する可能性がある。
【０１６５】
すなわち、ProgramInfoは、AVストリームファイルの中でのプログラム内容の変化点の情報をストアするものである。
【０１６６】
AVストリームファイルの中で本フォーマットが規定するプログラム内容が一定であるソースパケット列を、program-sequenceと称する。
【０１６７】
AVストリームファイルの中で、新しいprogram-sequenceが開始するアドレスがProgramInfo()にストアされる。このアドレスは、SPN_program_sequence_startにより示される。
【０１６８】
AVストリームファイルの中にある最後のprogram-sequence以外のprogram-sequenceは、そのSPN_program_sequence_startで指されるソースパケットから開始し、その次のSPN_program_sequence_startで指されるソースパケットの直前のソースパケットで終了する。最後のprogram-sequenceは、そのSPN_program_sequence_startで指されるソースパケットから開始し、AVストリームファイルの最後のソースパケットで終了する。
【０１６９】
図１８は、program-sequenceを説明する図である。この例の場合、Clip AVストリームファイルは３個のprogram-sequenceを持つ。
【０１７０】
program-sequenceは、ATC-sequenceの境界およびSTC-sequenceの境界をまたいでも良い。
【０１７１】
図１９に、第１のフォーマットにおけるProgramInfo()のシンタクスを示す。
【０１７２】
lengthは、このlengthフィールドの直後のバイトからProgramInfo()の最後のバイトまでのバイト数を示す。
【０１７３】
num_of_program_sequencesは、AVストリームファイルの中にあるprogram-sequenceの数を示す。
【０１７４】
SPN_program_sequence_startは、AVストリームファイル上でprogram-sequenceが開始するアドレスを示す。SPN_program_sequence_startは、ソースパケット番号を単位とする大きさであり、AVストリームファイルの最初のソースパケットから、ゼロを初期値としてカウントされる。ProgramInfo()の中でエントリーされるSPN_program_sequence_startの値は、昇順に並んでいる。
【０１７５】
SPN_program_sequence_startは、そのprogram-sequenceに対する最初のPMT(program map table)を持つソースパケットを指していることを前提とする。SPN_program_sequence_startは、データを記録する記録装置（例えば、映像処理装置１１など）がトランスポートストリーム中のPSI/SI(Program Specific Information/Service Information)を解析することによって作られる。記録装置（例えば、映像処理装置１１など）がPSI/SIを解析し、その変化を検出するまでの遅延時間が必要なために、SPN_program_sequence_startは、実際のPSI/SIの変化点から所定の時間以内にあるソースパケットを指しても良い。
【０１７６】
program_map_PIDは、そのprogram-sequenceに適用できるPMTを持つトランスポートパケットのPIDの値である。
【０１７７】
num_of_streams_in_psは、そのprogram-sequenceの中で定義されるエレメンタリストリームの数を示す。
【０１７８】
num_of_groupsは、そのprogram-sequenceの中で定義されるエレメンタリストリームのグループの数を示す。num_of_groupsは、１以上の値である。トランスポートストリームのPSI/SIがエレメンタリストリームのグループ情報を持つ場合、num_of_groupsは、１以上の値をとることを想定している。それぞれのグループは、マルチ・ビュー・プログラム中の１つのビューを構成する。
【０１７９】
stream_PIDは、そのprogram-sequenceのprogram_map_PIDが参照するところのPMTの中で定義されているエレメンタリストリームに対するPIDの値を示す。
【０１８０】
StreamCodingInfo()は、前記stream_PIDで指されるエレメンタリストリームの情報を示す。StreamCodingInfo()は、第１のフォーマットと第２のフォーマットとで異なる構成を有する。第１のフォーマットと第２のフォーマットとのStreamCodingInfo()のシンタクスについては、図２１および図２２を用いて後述する。
【０１８１】
num_of_streams_in_groupは、エレメンタリストリームのグループが持つエレメンタリストリームの数を示す。
【０１８２】
stream_indexは、前記エレメンタリストリームのグループが持つエレメンタリストリームに対応するところの、シンタクス中のfor-loopで定義されるstream_indexの値を示す。
【０１８３】
次に、図２０に、第２のフォーマットにおけるProgramInfo()のシンタクスを示す。
【０１８４】
第２のフォーマットにおいては、１つのClip（すなわち、１つのPlayList）では、プログラムシーケンスは、１しか定義することができない。第２のフォーマットにおけるProgramInfo()のシンタクスは、num_of_groupsが削除されて、その領域が、reserved_for_future_useとされ、num_of_groupsの値が１以上であった場合の記載が削除されている以外は、図１９を用いて説明した。第１のフォーマットにおけるProgramInfo()のシンタクスと同様の構成を有している。
【０１８５】
次に、図２１に、第１のフォーマットにおけるStreamCodingInfo()のシンタクスを示す。
【０１８６】
lengthは、このlengthフィールドの直後のバイトからStreamCodingInfo()の最後のバイトまでのバイト数を示す。
【０１８７】
stream_coding_typeは、このStreamCodingInfo()に対応するstream_PIDで指されるエレメンタリストリームの符号化タイプを示す。
【０１８８】
以下、video_format乃至original_display_aspect_ratioは、stream_coding_typeにおいて、このStreamCodingInfo()に対応するstream_PIDで指されるエレメンタリストリームの符号化タイプがビデオストリームのうちのいずれかである場合に用いられる。
【０１８９】
video_formatは、このStreamCodingInfo()に対応するstream_PIDで指されるビデオストリームのビデオフォーマットを示す。ビデオエレメンタリストリームのビデオフォーマットとしては、例えば、４８０ｉ、５７６ｉ、４８０ｐ、１０８０ｉ、７２０ｐ、および１０８０ｐが記述される。
【０１９０】
frame_rateは、このStreamCodingInfo()に対応するstream_PIDで指されるビデオストリームのフレームレートを示す。ビデオエレメンタリストリームのフレームレートとしては、例えば、２４０００／１００１、２４、２５、３００００／１００１、５０、および６００００／１００１が記述される。
【０１９１】
display_aspect_ratioは、このStreamCodingInfo()に対応するstream_PIDで指されるビデオストリームのディスプレイ・アスペクト・レシオを示す。ビデオエレメンタリストリームのアスペクト比情報としては、例えば、４：３ display aspect ratio、および１６：９ display aspect ratioが記述される。
【０１９２】
cc_flagは、このStreamCodingInfo()に対応するstream_PIDで指されるビデオストリームの中でクローズド・キャプション(closed caption data)信号が符号化されているかを示すフラグである。
【０１９３】
original_video_format_flagは、このStreamCodingInfo()の中にoriginal_video_formatとoriginal_display_aspect_ratioが存在するか否かを示すフラグである。
【０１９４】
original_video_formatは、このStreamCodingInfo()に対応するstream_PIDで指されるビデオストリームが符号化される前のオリジナルのビデオフォーマットである。
【０１９５】
original_display_aspect_ratioは、このStreamCodingInfo()に対応するstream_PIDで指されるビデオストリームが符号化される前のオリジナルのディスプレイ・アスペクト・レシオである。
【０１９６】
上述したように、第１のフォーマットにおいては、ビデオストリームにおいて、主な映像ストリームと、字幕やPGとが明確に区別されない。
【０１９７】
主な映像に対応するビデオストリームと共に、マルチメディアデータストリーム（例えば、BMLストリームや字幕など）が多重化されているトランスポートストリームをトランスコーディングする場合において、ビデオストリームは再エンコードされることによって、そのビデオフォーマットが変化する（例えば、1080iから480iへ変化する）が、マルチメディアデータストリームはオリジナルのストリームを保つ場合を考える。
【０１９８】
この時、新しいビデオストリームとマルチメディアデータストリームの間に情報のミスマッチが生じる場合がある。例えば、マルチメディアデータストリームの表示に関するパラメータは、オリジナルのビデオストリームのビデオフォーマットを想定して決められているにもかかわらず、ビデオストリームの再エンコードによって、そのビデオフォーマットが変化した場合である。
【０１９９】
このような場合、original_video_formatとoriginal_display_aspect_ratioに、オリジナルのビデオストリームに関する情報を保存する。再生装置は、前記の新しいビデオストリームとマルチメディアデータストリームから次のようにして、表示画像をつくる。
【０２００】
ビデオストリームは、original_video_formatとoriginal_display_aspect_ratioで示されるビデオフォーマットにアップ・サンプリングされる。そのアップ・サンプリングされた画像とマルチメディアデータストリームが合成されて、正しい表示画像をつくる。
【０２０１】
そして、audio_presentation_typeおよびsampling_frequencyは、このStreamCodingInfo()に対応するstream_PIDで指されるエレメンタリストリームの符号化タイプがオーディオストリームのうちのいずれかである場合に用いられる。
【０２０２】
audio_presentation_typeは、このStreamCodingInfo()に対応するstream_PIDで指されるオーディオストリームのプレゼンテーションタイプを示す。オーディオエレメンタリストリームのプレゼンテーションタイプ情報としては、例えば、single mono channel、dual mono channel、stereo(2-channel)、およびmulti-channelが記述される。
【０２０３】
sampling_frequencyは、このStreamCodingInfo()に対応するstream_PIDで指されるオーディオストリームのサンプリング周波数を示す。オーディオエレメンタリストリームのサンプリング周波数としては、例えば、４８ｋHz、および９６ｋHzが記述される。
【０２０４】
次に、図２２に、第２のフォーマットにおけるStreamCodingInfo()のシンタクスを示す。
【０２０５】
lengthは、このlengthフィールドの直後のバイトからStreamCodingInfo()の最後のバイトまでのバイト数を示す。
【０２０６】
stream_coding_typeは、このStreamCodingInfo()に対応するstream_PIDで指されるエレメンタリストリームの符号化タイプを示す。エレメンタリストリームの符号化タイプとしては、例えば、MPEG-2 video stream、MPEG−4 AVC video stream、VC−1video stream、 HDMV LPCM audio stream、Dolby AC-3 audio stream、dts audio stream、Presentation graphics stream、Interactive graphics stream、およびText subtitle streamなどが記述される。
【０２０７】
以下、video_format乃至cc_flagは、stream_coding_typeにおいて、このStreamCodingInfo()に対応するstream_PIDで指されるエレメンタリストリームの符号化タイプがビデオストリームのうちのいずれかである場合に用いられ、それらは、図２１を用いて説明した第１のフォーマットにおける場合と同様であるので、その詳細な説明は省略する。
【０２０８】
すなわち、第２のフォーマットにおけるStreamCodingInfo()のシンタクスにおいては、第１のフォーマットとは異なり、エレメンタリストリームの符号化タイプとして主な映像に対応するビデオストリームと音声ストリーム以外に、字幕(text subtitle stream)、PG、および、IGが明確に区別されているので、original_video_format_flagを定義する必要がない。
【０２０９】
そして、audio_presentation_type、sampling_frequency、および、audio_language_codeは、このStreamCodingInfo()に対応するstream_PIDで指されるエレメンタリストリームの符号化タイプがオーディオストリームのうちのいずれかである場合に用いられる。audio_presentation_typeおよびsampling_frequencyは、図２１を用いて説明した第１のフォーマットにおける場合と同様であるので、その詳細な説明は省略する。audio_language_codeは、このStreamCodingInfo()に対応するstream_PIDで指されるオーディオストリームが対応している言語コード(例えば、日本語、韓国語、中国語など)を示す。
【０２１０】
上述したように、第２のフォーマットにおけるStreamCodingInfo()のシンタクスにおいては、主な映像ビデオストリームと、その他の字幕(text subtitle stream)、PG、および、IGとが、明確に区別されている。
【０２１１】
PG_language_codeは、このStreamCodingInfo()に対応するstream_PIDで指されるエレメンタリストリームの符号化タイプがプレゼンテーショングラフィックスである場合に用いられ、このプレゼンテーショングラフィックストリームが対応している言語コード(例えば、日本語、韓国語、中国語など)を示す。
【０２１２】
IG_language_codeは、このStreamCodingInfo()に対応するstream_PIDで指されるエレメンタリストリームの符号化タイプがインタラクティブグラフィックスである場合に用いられ、このインタラクティブグラフィックストリームが対応している言語コード(例えば、日本語、韓国語、中国語など)を示す。
【０２１３】
character_codeおよびtextST_language_codeは、このStreamCodingInfo()に対応するstream_PIDで指されるエレメンタリストリームの符号化タイプがテキストサブタイトル(テキスト字幕)である場合に用いられる。
【０２１４】
character_codeは、テキスト字幕エレメンタリストリームのキャラクタコードを示す。テキスト字幕エレメンタリストリームのキャラクタコードとしては、例えば、Unicode V1.1(ISO 10646-1)、Shift JIS（Japanese）、KSC 5601-1987 including KSC 5653 for Roman character(Korean)、GB 18030-2000(Chinese)、GB2312(Chinese)、およびBIG5(Chinese)が記述される。
【０２１５】
character_codeは、textST_language_codeは、このテキストサブタイトルストリームが対応している言語コード(例えば、日本語、韓国語、中国語など)を示す。
【０２１６】
次に、第１のフォーマットと第２のフォーマットにおけるPlayListの構成について説明する。
【０２１７】
第１のフォーマットと第２のフォーマットとでは、PlayListのシンタクス構成が異なる。ここでは、その詳細については省略するが、例えば、映像信号を記録する場合を想定した第１のフォーマットにおいては、放送信号が有する所謂メタデータに対応する情報を格納する多くの領域がSyntax定義されているが、第２のフォーマットにおいては、それらの情報を格納する領域は定義されていない。第１のフォーマットのコンテンツプログラムにおいては、PGを用いたメニューを表示させることができないため、これらの情報を利用してナビゲーションプログラムによるメニューを表示することはできないが、例えば、第１のフォーマットのコンテンツプログラムを記録または再生する装置において固有に用いられるプログラムによってメニュー画面を作成するためなどに利用可能である。
【０２１８】
図１を用いて説明した映像処理装置１１の変換処理部３９は、制御部３１の制御に基づいて、上述した第１のフォーマットおよび第２のフォーマットとの間で、データを相互にフォーマット変換する。
【０２１９】
図２３は、変換処理部３９が有する機能を示す機能ブロック図である。
【０２２０】
変換処理部３９は、フォーマット種別検出部１１１、ユーザ提示情報生成部１１２、データおよび制御情報取得部１１３、ストリームデータ変換部１１４、ClipInfoファイル変換部１１５、PlayListファイル変換部１１６、Indexファイル変換部１１７、および、変換後データ記憶制御部１１８を含んで構成され、ストリームデータ変換部１１４は、ATCシーケンス数検出部１３１、プログラムシーケンス数検出部１３２、ストリーム分断部１３３、および、ストリーム結合部１３４を含んで構成されている。
【０２２１】
フォーマット種別検出部１１１は、ローカルストレージ３６に記録されているコンテンツプログラム（ここでは、PlayListおよびClipと、対応するナビゲーションプログラムにより構成される、１つまたは複数の所定のトランスポートストリームを所定の方法で再生させるために必要なデータ群をコンテンツプログラム、または、単にプログラムと称するものとする）のClipInfo()から、TS_type_info_block()のFormat_IdentifierとStream_format_nameを確認することで、それぞれのデータのフォーマットの種別を判別し、判別されたフォーマットの種別をユーザ提示情報生成部１１２に供給するとともに、データおよび制御情報取得部１１３により取得された、フォーマット変換されるデータのClipInfo()から、TS_type_info_block()のFormat_IdentifierとStream_format_nameを確認することで、それぞれのデータのフォーマットの種別を判別し、判別されたフォーマットの種別をデータおよび制御情報取得部１１３に供給する。
【０２２２】
ユーザ提示情報生成部１１２は、フォーマット種別検出部１１１から供給された、ローカルストレージ３６に記録されているコンテンツプログラムのフォーマットの種別を基に、フォーマット変換が可能なコンテンツプログラムを検出し、そのコンテンツプログラムのPlayListに関する情報をユーザに提示して、フォーマット変換を実行するデータをユーザに選択させるための補助となるような表示画面に対応するデータを生成し、表示制御部４３に供給して、表示させる。
【０２２３】
データおよび制御情報取得部１１３は、制御部３１の制御に基づいて、ローカルストレージ３６に記録されているコンテンツプログラムのうち、ユーザの操作入力によりフォーマット変換が指令されたコンテンツプログラムのデータを取得し、そのうちのトランスポートストリームデータ、および、トランスポートストリームデータの変換に必要なClipInfoファイルやPlayListファイルなどの情報をストリームデータ変換部１１４に供給し、ClipInfoファイルをClipInfoファイル変換部１１５に供給し、PlayListファイルをPlayListファイル変換部１１６に供給し、IndexファイルをIndexファイル変換部１１７に供給する。
【０２２４】
ストリームデータ変換部１１４は、データおよび制御情報取得部１１３から供給されたトランスポートストリームを変換する処理を実行し、変換後のデータを、変換後データ記憶制御部１１８に供給する。
【０２２５】
ATCシーケンス数検出部１３１は、第１のフォーマットから第２のフォーマットへのフォーマット変換時に、データおよび制御情報取得部１１３から供給された、１つのClipInfo（換言すれば、１つのPlayList）において定義されているトランスポートストリームに含まれるATCシーケンスの数をSequenceInfo()のnum_of_ATC_sequencesを参照して検出し、ストリーム分断部１３３に供給する。
【０２２６】
プログラムシーケンス数検出部１３２は、第１のフォーマットから第２のフォーマットへのフォーマット変換時に、データおよび制御情報取得部１１３から供給された、１つのClipInfo（換言すれば、１つのPlayList）において定義されているトランスポートストリームに含まれるプログラムシーケンスの数をProgramInfo()のnum_of_program_sequencesを参照して検出し、ストリーム分断部１３３に供給する。
【０２２７】
なお、ここでは、ATCシーケンス数検出部１３１は、１つのClipInfo（換言すれば、１つのPlayList）において定義されているトランスポートストリームに含まれるATCシーケンスの数をSequenceInfo()のnum_of_ATC_sequencesを参照して検出し、プログラムシーケンス数検出部１３２は、１つのClipInfoにおいて定義されているトランスポートストリームに含まれるプログラムシーケンスの数をProgramInfo()のnum_of_program_sequencesを参照して検出するものとして説明しているが、ATCシーケンス数検出部１３１およびプログラムシーケンス数検出部１３２は、異なる情報に基づいて、それぞれのシーケンス数を検出するようにしても良い。具体的には、例えば、ATCシーケンス数検出部１３１は、例えば、ストリームに対応つけられたATSを基に、ATCの連続性に基づいて、ATCシーケンスの数を検出するようにしても良いし、プログラムシーケンス数検出部１３２は、プログラムの変更点を示す時刻情報を基に、プログラムシーケンスの数を検出するようにしても良い。
【０２２８】
ストリーム分断部１３３は、ATCシーケンス数検出部１３１から供給されたATCシーケンスの数の検出結果、および、プログラムシーケンス数検出部１３２から供給されたプログラムシーケンスの数の検出結果に基づいて、データおよび制御情報取得部１１３から供給されたトランスポートストリームを分断して、分断後のデータを、変換後データ記憶制御部１１８に供給する。
【０２２９】
ストリーム結合部１３４は、第２のフォーマットから第１のフォーマットへのフォーマット変換時に、１つのClipInfo（換言すれば、１つのPlayList）において定義されているトランスポートストリームのファイル数が２００を超えている場合、または、ユーザによりフォーマット変換時におけるファイルの結合が指令された場合、データおよび制御情報取得部１１３から供給されたトランスポートストリームを結合し、結合後のデータを、変換後データ記憶制御部１１８に供給する。
【０２３０】
ClipInfoファイル変換部１１５は、データおよび制御情報取得部１１３から供給されたClipInfoファイルを変換する処理を実行し、変換後のデータを、変換後データ記憶制御部１１８に供給する。
【０２３１】
PlayListファイル変換部１１６は、データおよび制御情報取得部１１３から供給されたPlayListファイルを変換する処理を実行し、変換後のデータを、変換後データ記憶制御部１１８に供給する。
【０２３２】
Indexファイル変換部１１７は、データおよび制御情報取得部１１３から供給されたIndexファイルを変換する処理を実行し、変換後のデータを、変換後データ記憶制御部１１８に供給する。
【０２３３】
変換後データ記憶制御部１１８は、ストリーム分断部１３３、または、ストリーム結合部１３４から供給された変換後のトランスポートストリーム、ClipInfoファイル変換部１１５から供給された変換後のClipInfoファイル、PlayListファイル変換部１１６から供給された変換後のPlayListファイル、および、Indexファイル変換部１１７から供給された変換後のIndexファイルを基に、変換後のフォーマットに対応するコンテンツプログラムを生成し、変換後のフォーマットに対応するコンテンツプログラムの、ローカルストレージ３６への記憶を制御する。
【０２３４】
次に、図２４のフローチャートを参照して、映像処理装置１１が実行するデータ変換処理について説明する。
【０２３５】
ステップＳ１において、制御部３１は、操作入力取得部４０から供給された、ユーザの操作入力を表す情報に基づいて、フォーマット変換処理の開始の指令を受けたか否かを判断する。ステップＳ１において、フォーマット変換処理の開始の指令を受けていないと判断された場合、フォーマット変換処理の開始の指令を受けたと判断されるまで、ステップＳ１の処理が繰り返される。
【０２３６】
すなわち、制御部３１は、操作入力取得部４０から供給された、ユーザの操作入力を表す情報に基づいて、放送信号の受信や、光ディスク１２に記録されているコンテンツの再生など、データ変換処理以外の処理の制御を必要に応じて実行しながら、フォーマット変換処理の開始の指令の入力を待機する。
【０２３７】
ステップＳ１において、フォーマット変換処理の開始の指令を受けたと判断された場合、ステップＳ２において、制御部３１は、フォーマット変換処理の開始を、変換処理部３９に指令する。変換処理部３９のフォーマット種別検出部１１１は、ローカルストレージ３６に記録されているコンテンツプログラムのClipInfo()から、TS_type_info_block()のFormat_IdentifierとStream_format_nameを確認することで、それぞれのデータのフォーマットの種別を判別し、判別されたフォーマットの種別をユーザ提示情報生成部１１２に供給する。ユーザ提示情報生成部１１２は、フォーマット種別検出部１１１から供給された、ローカルストレージ３６に記録されているコンテンツプログラムのフォーマットの種別を基に、フォーマット変換が可能なコンテンツプログラムを検出し、フォーマット変換可能なPlayListを抽出して、フォーマット変換を実行するデータをユーザに選択させるための補助となるような表示画面に対応するデータを生成し、表示制御部４３に供給して、表示させ、ユーザに提示する。
【０２３８】
ステップＳ３において、制御部３１は、操作入力取得部４０から供給された、ユーザの操作入力を表す情報に基づいて、フォーマット変換されるPlayListの選択を受けたか否かを判断する。ステップＳ３において、フォーマット変換されるPlayListの選択を受けていないと判断された場合、フォーマット変換されるPlayListの選択を受けたと判断されるまで、ステップＳ３の処理が繰り返される。
【０２３９】
ステップＳ３において、フォーマット変換されるPlayListの選択を受けたと判断された場合、ステップＳ４において、制御部３１は、選択されたPlayListを、変換処理部３９に通知する。変換処理部３９のデータおよび制御情報取得部１１３は、フォーマット変換されるPlayListに対応するClip(ClipInfo、および、ストリームデータ）を特定し、ローカルストレージ３６から、フォーマット変換が指令されたコンテンツプログラムのデータを取得し、そのうちのトランスポートストリームデータ、および、トランスポートストリームを変換するために必要なClipInfoファイルやPlayListファイルをストリームデータ変換部１１４に供給し、ClipInfoファイルをClipInfoファイル変換部１１５に供給し、PlayListファイルをPlayListファイル変換部１１６に供給し、IndexファイルをIndexファイル変換部１１７に供給する。
【０２４０】
ステップＳ５において、ストリームデータ変換部１１４は、実行される変換処理は、第１のフォーマットから第２のフォーマットへの変換処理であるか否かを判断する。ステップＳ５において、第１のフォーマットから第２のフォーマットへの変換処理ではない、すなわち、第２のフォーマットから第１のフォーマットへの変換処理であると判断された場合、処理は、後述するステップＳ１０に進む。
【０２４１】
ステップＳ５において、第１のフォーマットから第２のフォーマットへの変換処理であると判断された場合、ステップＳ６において、図２５のフローチャートを用いて後述する、第２のフォーマットへのストリーム変換処理が実行される。
【０２４２】
ステップＳ７において、ClipInfoファイル変換部１１５は、必要に応じて、ClipInfoのプログラムシーケンスおよびATCシーケンスに関する部分を、ストリームの変換内容に対応させて変更する。具体的には、ClipInfoファイル変換部１１５は、ステップＳ６において実行される第２のフォーマットへのストリーム変換処理において、ストリームが複数に分割された場合、プログラムシーケンスおよびATCシーケンスに関する部分が、分割されたストリームのそれぞれに対応するように記載されるように、ClipInfoを変更または生成する。
【０２４３】
ステップＳ８において、ClipInfoファイル変換部１１５は、ステップＳ７において変更または生成された、ストリームの分割数に対応するClipInfoを、第２のフォーマットに変換し、変換後のデータを、変換後データ記憶制御部１１８に供給する。
【０２４４】
ステップＳ９において、PlayListファイル変換部１１６は、ストリームの分割に対応するように、PlayListを、第２のフォーマットに変換または生成し、変換後のデータを、変換後データ記憶制御部１１８に供給し、処理は、後述するステップＳ１４に進む。
【０２４５】
ステップＳ５において、第１のフォーマットから第２のフォーマットへの変換処理ではない、すなわち、第２のフォーマットから第１のフォーマットへの変換処理であると判断された場合、ステップＳ１０において、図２６のフローチャートを用いて後述する、第１のフォーマットへのストリーム変換処理が実行される。
【０２４６】
ステップＳ１１において、ClipInfoファイル変換部１１５は、必要に応じて、ClipInfoのプログラムシーケンスおよびATCシーケンスに関する部分を、ストリームの変換に対応させて変更する。具体的には、ClipInfoファイル変換部１１５は、ステップＳ１０において実行された第１のフォーマットへのストリーム変換処理において、複数のストリームが結合された場合、結合された複数のストリームに対応するClipInfoファイルに基づいて、結合後のストリームに対応するように、ClipInfoファイルを変換する。
【０２４７】
ステップＳ１２において、ClipInfoファイル変換部１１５は、ステップＳ１０において実行された第１のフォーマットへのストリーム変換処理において、複数のストリームが結合された場合、結合されたストリームに対応するClipInfoを、第１のフォーマットに変換し、変換後のデータを、変換後データ記憶制御部１１８に供給する。
【０２４８】
ステップＳ１３において、PlayListファイル変換部１１６は、ステップＳ１０において実行された第１のフォーマットへのストリーム変換処理において、複数のストリームが結合された場合、結合されたストリームを再生可能なように、PlayListを、第１のフォーマットに変換し、変換後のデータを、変換後データ記憶制御部１１８に供給する。
【０２４９】
ステップＳ９、または、ステップＳ１３の処理の終了後、ステップＳ１４において、Indexファイル変換部１１７は、必要に応じて、変換されたPlayListが順次再生されるようなIndex.bdmvファイルを生成し、生成された新たなIndex.bdmvファイルを、変換後データ記憶制御部１１８に供給する。
【０２５０】
ステップＳ１５において、変換後データ記憶制御部１１８は、ストリームデータ変換部１１４、ClipInfoファイル変換部１１５、PlayListファイル変換部１１６、Indexファイル変換部１１７において、それぞれ変換、または、生成されたデータを基に、変換後のフォーマットに対応するコンテンツプログラムを生成し、新たなフォーマットのコンテンツプログラムに含まれるファイル群を、ローカルストレージ３６の適切な記憶エリアに記憶させて、処理が終了される。
【０２５１】
このような処理により、ユーザが所望するコンテンツプログラムのデータが、フォーマット変換される。
【０２５２】
次に、図２５のフローチャートを参照して、図２４のステップＳ６において実行される、第２のフォーマットへのストリーム変換処理について説明する。
【０２５３】
ステップＳ４１において、ストリームデータ変換部１１４のプログラムシーケンス数検出部１３２は、ProgramInfo()のnum_of_program_sequencesを参照し、データおよび制御情報取得部１１３から供給された、１つのClipInfo（換言すれば、１つのPlayList）において定義されている、フォーマット変換されるストリームデータに含まれるプログラムシーケンスの数を抽出する。
【０２５４】
ステップＳ４２において、プログラムシーケンス数検出部１３２は、対応するストリームデータに含まれるプログラムシーケンスの数は２以上であるか否かを判断する。ステップＳ４２において、対応するストリームデータに含まれるプログラムシーケンスの数は２以上ではない、すなわち、１であると判断された場合、処理は、後述するステップＳ４５に進む。
【０２５５】
ステップＳ４２において、対応するストリームデータに含まれるプログラムシーケンスの数は２以上であると判断された場合、ステップＳ４３において、プログラムシーケンス数検出部１３２は、対応するストリームデータに含まれるプログラムシーケンスの数と位置をストリーム分断部１３３に通知する。ストリーム分断部１３３は、プログラムシーケンスの境界付近を解析し、PMT不連続点を検出する。
【０２５６】
ステップＳ４４において、ストリーム分断部１３３は、検出されたPMT不連続点の境界の前の適切な位置において、ストリームを分断する。
【０２５７】
ステップＳ４２において、対応するストリームデータに含まれるプログラムシーケンスの数は２以上ではない、すなわち、１であると判断された場合、または、ステップＳ４４の処理の終了後、ステップＳ４５において、ATCシーケンス数検出部１３１は、SequenceInfo()のnum_of_ATC_sequencesを参照し、データおよび制御情報取得部１１３から供給された、１つのClipInfo（換言すれば、１つのPlayList）において定義されている、フォーマット変換されるストリームデータに含まれるATCシーケンスの数を抽出する。
【０２５８】
ステップＳ４６において、ATCシーケンス数検出部１３１は、対応するストリームデータに含まれるATCシーケンスの数は２以上であるか否かを判断する。
【０２５９】
ステップＳ４６において、対応するストリームデータに含まれるATCシーケンスの数は２以上であると判断された場合、ステップＳ４７において、ATCシーケンス数検出部１３１は、対応するストリームデータに含まれるATCシーケンスの数と位置をストリーム分断部１３３に通知する。ストリーム分断部１３３は、ATCシーケンスの境界部分でストリームを分断し、分断されたそれぞれのデータを変換後データ記憶制御部１１８に供給して、処理は、図２４のステップＳ６に戻り、ステップＳ７に進む。
【０２６０】
ステップＳ４６において、対応するストリームデータに含まれるATCシーケンスの数は２以上ではない、すなわち、１つであると判断された場合、プログラムシーケンスの数に基づいて分断されたそれぞれのデータ、または、全く分断されていないデータを、変換後データ記憶制御部１１８に供給して、処理は、図２４のステップＳ６に戻り、ステップＳ７に進む。
【０２６１】
このような処理により、変換元となる第１のフォーマットのトランスポートストリームデータが、変換後の第２のフォーマットの規定に違反しないように、プログラムシーケンスの数とATCシーケンスの数に基づいて分断される。
【０２６２】
次に、図２６のフローチャートを参照して、図２４のステップＳ１０において実行される、第１のフォーマットへのストリーム変換処理について説明する。
【０２６３】
ステップＳ７１において、ストリームデータ変換部１１４のストリーム結合部１３４は、変換されるデータのうちの、１つのClipInfo（換言すれば、１つのPlayList）において定義されているトランスポートストリームファイルの数を抽出する。
【０２６４】
ステップＳ７２において、ストリーム結合部１３４は、トランスポートストリームファイルの数は２００以上であるか否かを判断する。ステップＳ７２において、２００以上であると判断された場合、処理は、後述するステップＳ７４に進む。
【０２６５】
ステップＳ７２において、２００以上ではないと判断された場合、ステップＳ７３において、ストリーム結合部１３４は、制御部３１からデータおよび制御情報取得部１１３を介して供給される情報に基づいて、ユーザから、トランスポートストリームファイルの結合が指令されたか否かを判断する。
【０２６６】
ステップＳ７２において、２００以上であると判断された場合、または、ステップＳ７３において、トランスポートストリームファイルの結合が指令されたと判断された場合、ステップＳ７４において、ストリーム結合部１３４は、結合するトランスポートストリームファイルを特定し、結合し、結合後のデータを、変換後データ記憶制御部１１８に供給して、処理は、図２４のステップＳ１０に戻り、ステップＳ１１に進む。
【０２６７】
ステップＳ７３において、トランスポートストリームファイルの結合が指令されていないと判断された場合、ストリーム結合部１３４は、結合されていないそのままのデータを変換後データ記憶制御部１１８に供給して、処理は、図２４のステップＳ１０に戻り、ステップＳ１１に進む。
【０２６８】
このような処理により、変換元となる第２のフォーマットのトランスポートストリームデータが、変換後の第１のフォーマットの規定に違反しないように、または、ユーザの指令に基づいてファイル数を減らすために、結合される。
【０２６９】
上述した処理により、映像処理装置１１においては、第１のフォーマットで記録されているコンテンツプログラムのフォーマットを第２のフォーマットに変換したり、第２のフォーマットで記録されているコンテンツプログラムのフォーマットを第１のフォーマットに変更することが可能となる。
【０２７０】
例えば、第１のフォーマットで記録されているコンテンツプログラムには、ＩＧによるメニューをつけることができない。そこで、第１のフォーマットで記録されているコンテンツプログラムを第２のフォーマットに変換することにより、ユーザは、そのコンテンツプログラムにＩＧによるメニューをつけて再生させることが可能となる。
【０２７１】
また、第２のフォーマットは、上述したように、再生専用のリムーバブルメディア用のフォーマットと非常に互換性の高いフォーマットであるので、第１のフォーマットで記録されているコンテンツプログラムを第２のフォーマットに変換することにより、そのコンテンツプログラムの再生環境が広がる。
【０２７２】
また、例えば、複数のコンテンツプログラムを編集したり、まとめて整理したい場合などに、それらの複数のコンテンツプログラムのフォーマットが混在することが考えられる。そして、その多くが第１のフォーマットで記録されている場合には、第２のフォーマットから第１のフォーマットへのフォーマット変換を行うことにより、混在したフォーマットを統一し、容易にコンテンツプログラムを編集または整理することが可能となる。
【０２７３】
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウェアにより実行させることもできる。この場合、上述した処理は、図２７に示されるようなパーソナルコンピュータ２００により実行される。
【０２７４】
図２７において、CPU（Central Processing Unit）２０１は、ROM(Read Only Memory)２０２に記憶されているプログラム、または、記憶部２０８からRAM(Random Access Memory)２０３にロードされたプログラムに従って各種の処理を実行する。RAM２０３にはまた、CPU２０１が各種の処理を実行する上において必要なデータなどが適宜記憶される。
【０２７５】
CPU２０１、ROM２０２、およびRAM２０３は、内部バス２０４を介して相互に接続されている。この内部バス２０４にはまた、入出力インターフェース２０５も接続されている。
【０２７６】
入出力インターフェース２０５には、キーボード、マウスなどよりなる入力部２０６、CRT，LCDなどよりなるディスプレイ、スピーカなどよりなる出力部２０７、ハードディスクなどより構成される記憶部２０８、並びに、モデム、ターミナルアダプタなどより構成される通信部２０９が接続されている。通信部２０９は、電話回線やCATVを含む各種のネットワークを介しての通信処理を行う。また、通信部２０９は、アンテナなどを有し、放送信号を受信することも可能であるものとしてもよい。
【０２７７】
入出力インターフェース２０５にはまた、必要に応じてドライブ２１０が接続され、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどによりなるリムーバブルメディア２１１が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部２０８にインストールされる。
【０２７８】
さらに、リムーバブルメディア２１１に記録されているのが、コンテンツデータ（ナビゲーションプログラム、PlayList、および、Clipから構成されるプログラム）である場合、リムーバブルメディア２１１から読み出されたプログラムを記憶部２０８に記憶し、ＣＰＵ２０１の処理により、フォーマット変換させたり、再生させるようにすることができる。
【０２７９】
なお、図１の再エンコード処理部３４、または、ＡＶデコーダ部４２が実行するデコードまたはエンコードの処理は、ＣＰＵ２０１により実行されてもよいし（所謂ソフトウェアコーディック）、パーソナルコンピュータ２００に、図１の再エンコード処理部３４、または、ＡＶデコーダ部４２に対応する機能を有するコーディック処理部を新たに設けるものとしても良い。
【０２８０】
そして、上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、ネットワークやプログラム格納媒体からインストールされる。
【０２８１】
このプログラム格納媒体は、図２７に示されるように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されているリムーバブルメディア２１１よりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM２０２や記憶部２０８が含まれるハードディスクなどで構成される。
【０２８２】
なお、本明細書において、コンピュータプログラムを記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２８３】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０２８４】
【図１】映像処理装置の構成を示すブロック図である。
【図２】MPEG2トランスポートストリームのレコーダモデルについて説明するための図である。
【図３】映像処理装置において扱われるデータのアプリケーションフォーマットについて説明するための図である。
【図４】、AVストリームファイルの構造について説明するための図である。
【図５】ソースパケットのシンタクスを示す図である。
【図６】TP_extra_headerのシンタクスを示す図である。
【図７】第１のフォーマットと第２のフォーマットとの差異について説明するための図である。
【図８】第１のフォーマットと第２のフォーマットとのフォーマット変換について説明するための図である。
【図９】それぞれのフォーマットにおけるATCシーケンスの数とClipの数の関係について説明するための図である。
【図１０】それぞれのフォーマットにおけるATCシーケンス、STCシーケンス、および、プログラムシーケンスの数とClipの数の関係について説明するための図である。
【図１１】Clip Information fileのシンタクスを示す図である。
【図１２】TS_type_info_block()のシンタクスを示す図である。
【図１３】ATC-sequenceについて説明するための図である。
【図１４】ATCの不連続点とATC-sequenceの関係について説明するための図である。
【図１５】連続なSTC区間について説明するための図である。
【図１６】STCの不連続点とSTC-sequenceの関係、およびSTC-sequenceとATC-sequenceの関係について説明するための図である。
【図１７】SequenceInfo()のシンタクスを示す図である。
【図１８】program-sequenceについて説明するための図である。
【図１９】第１のフォーマットにおけるProgramInfo()のシンタクスを示す図である。
【図２０】第２のフォーマットにおけるProgramInfo()のシンタクスを示す図である。
【図２１】第１のフォーマットにおけるStreamCodingInfo()のシンタクスを示す図である。
【図２２】第２のフォーマットにおけるStreamCodingInfo()のシンタクスを示す図である。
【図２３】変換処理部が有する機能を示す機能ブロック図である。
【図２４】データ変換処理について説明するためのフローチャートである。
【図２５】第２のフォーマットへのストリーム変換処理について説明するためのフローチャートである。
【図２６】第１のフォーマットへのストリーム変換処理について説明するためのフローチャートである。
【図２７】パーソナルコンピュータの構成を示すブロック図である。
【符号の説明】
【０２８５】
１１  映像処理装置  １２  光ディスク，  ３１  制御部，  ３２  アンテナ，  ３３  放送受信制御部，  ３５  データ記録処理部，  ３６  ローカルストレージ，  ３７  ディスクドライブ，  ３８  ネットワークインタフェース，  ３９  変換処理部，  ４０  操作入力取得部，  ４１  AVデコーダ部，  １１１  フォーマット種別検出部，  １１２  ユーザ提示情報生成部，  １１３  データおよび制御情報取得部，  １１４  ストリームデータ変換部，  １１５  ClipInfoファイル変換部，  １１６  PlayListファイル変換部，  １１７  Indexファイル変換部，  １１８  変換後データ記憶制御部，  １３１  ATCシーケンス数検出部，  １３２  プログラムシーケンス数検出部，  １３３  ストリーム分断部，  １３４  ストリーム結合部
【図１】
2008199527.tif 000003
【図２】
2008199527.tif 000004
【図３】
2008199527.tif 000005
【図４】
2008199527.tif 000006
【図５】
2008199527.tif 000007
【図６】
2008199527.tif 000008
【図７】
2008199527.tif 000009
【図８】
2008199527.tif 000010
【図９】
2008199527.tif 000011
【図１０】
2008199527.tif 000012
【図１１】
2008199527.tif 000013
【図１２】
2008199527.tif 000014
【図１３】
2008199527.tif 000015
【図１４】
2008199527.tif 000016
【図１５】
2008199527.tif 000017
【図１６】
2008199527.tif 000018
【図１７】
2008199527.tif 000019
【図１８】
2008199527.tif 000020
【図１９】
2008199527.tif 000021
【図２０】
2008199527.tif 000022
【図２１】
2008199527.tif 000023
【図２２】
2008199527.tif 000024
【図２３】
2008199527.tif 000025
【図２４】
2008199527.tif 000026
【図２５】
2008199527.tif 000027
【図２６】
2008199527.tif 000028
【図２７】
2008199527.tif 000029