(57)【要約】データ処理装置は、第１および第２データストリームを取得するストリーム抽出部と、ストリームの複数のパケットの識別子と異なるダミー識別子を有するダミーパケットを生成し、第１データストリームの最終パケットと第２データストリームの先頭パケットとの間に挿入するパケット挿入部と、パケット識別子に基づいて種類ごとにコンテンツデータを分離し、ダミー識別子の検出に応答してコンテンツデータとは異なるエラーデータを挿入する分離部と、データストリームのコンテンツデータを再生単位で再生し、エラーデータを検出して、第１データストリームの最後の不完全なコンテンツデータおよび第２データストリームの最初のヘッダまでのコンテンツデータを破棄して再生しないデコーダとを備えている。
2004095836.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツデータを含むデータストリームを取得しながら、コンテンツを再生するデータ処理装置であって、
前記データストリームは複数のパケットから構成され、各パケットは前記コンテンツデータおよび前記コンテンツデータの種類を識別するための識別子を有し、前記コンテンツデータのうち、再生単位の先頭部分に対応するコンテンツデータは前記再生単位を特定するヘッダを有しており、
第１データストリームを取得し、その後、第２データストリームを取得するストリーム抽出部と、
前記複数のパケットの識別子と異なるダミー識別子を有するダミーパケットを生成し、前記第１データストリームの最終パケットと前記第２データストリームの先頭パケットとの間に挿入するパケット挿入部と、
前記識別子に基づいて種類ごとに前記コンテンツデータを分離し、前記ダミー識別子の検出に応答して前記コンテンツデータとは異なるエラーデータを挿入する分離部と、
前記コンテンツデータを前記再生単位で再生し、前記エラーデータを検出して、前記第１データストリームの最後の不完全なコンテンツデータおよび前記第２データストリームの最初のヘッダまでのコンテンツデータを破棄して再生しないデコーダと
を備えたデータ処理装置。
【請求項２】
前記データストリームにはエラーを示すエラーコードが予め規定されており、
前記分離部は前記エラーデータとして前記エラーコードを挿入する、請求項１に記載のデータ処理装置。
【請求項３】
前記分離部は、前記エラーデータとして所定長の“０”のビット列をさらに挿入し、
前記デコーダは、前記エラーコードおよび前記ビット列の一方を検出したとき、前記エラーデータを検出したと判断する、請求項２に記載のデータ処理装置。
【請求項４】
前記データストリームには、可変長符号化方式によって前記コンテンツのデータが符号化されており、
前記分離部は、前記可変長符号化方式の最大符号長以上のビット長を持つビット列を挿入する、請求項２に記載のデータ処理装置。
【請求項５】
前記コンテンツは少なくとも映像を含んでおり、
前記分離部は、映像に関する可変長符号化方式の最大符号長以上のビット長を持つビット列を挿入する、請求項４に記載のデータ処理装置。
【請求項６】
前記ストリーム抽出部は、トランスポートストリームパケットから構成された前記第１データストリームおよび前記第２データストリームを取得する、請求項１に記載のデータ処理装置。
【請求項７】
前記ストリーム抽出部は、１つのコンテンツに関するデータストリームの異なる部分を、それぞれ前記第１データストリームおよび前記第２データストリームとして取得する、請求項１に記載のデータ処理装置。
【請求項８】
前記ストリーム抽出部は、記録媒体から前記第１データストリームおよび前記第２データストリームを取得する、請求項１に記載のデータ処理装置。
【請求項９】
前記ストリーム抽出部は、放送された前記第１データストリームおよび前記第２データストリームを取得する、請求項１に記載のデータ処理装置。
【請求項１０】
コンテンツデータを含むデータストリームを取得しながら、コンテンツを再生するデータ処理方法であって、
前記データストリームは複数のパケットから構成され、各パケットは前記コンテンツデータおよび前記コンテンツデータの種類を識別するための識別子を有し、前記コンテンツデータのうち、再生単位の先頭部分に対応するコンテンツデータは前記再生単位を特定するヘッダを有しており、
第１データストリームを取得し、その後、第２データストリームを取得するステップと、
前記複数のパケットの識別子と異なるダミー識別子を有するダミーパケットを生成するステップと、
前記第１データストリームの最終パケットと前記第２データストリームの先頭パケットとの間に挿入するステップと、
前記識別子に基づいて種類ごとに前記コンテンツデータを分離するステップと、
前記ダミー識別子を検出すると前記コンテンツデータとは異なるエラーデータを挿入するステップと、
前記コンテンツデータを前記再生単位で再生するステップと、
前記エラーデータを検出すると、前記第１データストリームの最後の不完全なコンテンツデータおよび前記第２データストリームの最初のヘッダまでのコンテンツデータを破棄するステップと
を包含するデータ処理方法。
【請求項１１】
前記データストリームにはエラーを示すエラーコードが予め規定されており、
前記エラーデータを挿入するステップは、前記エラーデータとして前記エラーコードを挿入する、請求項１０に記載のデータ処理方法。
【請求項１２】
前記エラーデータを挿入するステップは、前記エラーデータとして所定長の“０”のビット列をさらに挿入し、
前記破棄するステップは、前記エラーコードおよび前記ビット列の一方を検出したとき、前記エラーデータを検出したと判断する、請求項１１に記載のデータ処理方法。
【請求項１３】
前記データストリームには、可変長符号化方式によって前記コンテンツのデータが符号化されており、
前記エラーデータを挿入するステップは、前記可変長符号化方式の最大符号長以上のビット長を持つビット列を挿入する、請求項１１に記載のデータ処理方法。
【請求項１４】
前記コンテンツは少なくとも映像を含んでおり、
前記エラーデータを挿入するステップは、映像に関する可変長符号化方式の最大符号長以上のビット長を持つビット列を挿入する、請求項１３に記載のデータ処理方法。
【請求項１５】
前記取得するステップは、トランスポートストリームパケットから構成された前記第１データストリームおよび前記第２データストリームを取得する、請求項１０に記載のデータ処理方法。
【請求項１６】
前記取得するステップは、１つのコンテンツに関するデータストリームの異なる部分を、それぞれ前記第１データストリームおよび前記第２データストリームとして取得する、請求項１０に記載のデータ処理方法。
【請求項１７】
前記取得するステップは、記録媒体から前記第１データストリームおよび前記第２データストリームを取得する、請求項１０に記載のデータ処理方法。
【請求項１８】
前記取得するステップは、放送された前記第１データストリームおよび前記第２データストリームを取得する、請求項１０に記載のデータ処理方法。
【発明の詳細な説明】
【技術分野】  本発明は、データストリームから映像および／または音声を再生する技術に関する。より具体的には、本発明は、同一のデータストリームの異なる部分または複数のデータストリームを、連続的に再生する際に好適な技術に関する。
【背景技術】  近年、デジタル技術の発達により、映像や音声等に関するコンテンツのデータはＭＰＥＧ等の規格に従って符号化され、符号化データストリームとして光ディスクやハードディスク等の記録メディアに記録されている。そして、記録する技術に対応して、そのような記録メディアから符号化データストリームを再生する技術も提案され、実用化され始めている。
例えば日本国特開２００２−２８１４５８号公報は、記録媒体に記録された符号化データストリームを再生する再生装置を開示している。以下、図１を参照しながらこの再生装置の構成を説明する。図１は、従来の再生装置の機能ブロックの構成を示す。記録媒体１は、例えば光ディスクであり、映像データ、音声データ等のデータストリームが所定のフォーマットで記録されている。
再生装置の再生部２は、マイクロコントローラ３から記録媒体１のアドレスを指定され、そのアドレスに記録されているデータストリームを読み出す。再生部２は読み出したデジタル信号に対してエラー訂正処理を行った後、再生データストリームを得る。次に、ストリーム分離部４はビデオとオーディオのデータストリームを分離する。分離されたビデオデータストリームは、ビデオ信号切り替えスイッチ１２ａ、ビデオデータ記憶部５、ビデオ信号切り替えスイッチ１２ｂを経て、ビデオデコーダ６に入力される。なお、ビデオデータ記憶部５は個々にデータストリームを蓄積できる２以上の独立した記憶領域を有している。ビデオデータストリームは、一方の記憶領域を経てビデオデコーダ６に入力される。また、ストリーム分離部４によって分離されたオーディオデータストリームは、オーディオデータ記憶部９を経て、オーディオデコーダ１０に入力される。
ビデオデコーダ６は、デコードした映像をフレームデータ記憶部７に格納しながらビデオデータストリームをデコードして映像信号に変換し、ビデオ出力端子８から出力する。オーディオデコーダ１０はオーディオデータストリームをデコードして音声信号に変換し、音声出力端子１１から出力する。
再生装置は不連続なデータストリームを再生する場合がある。例えば、データストリームは記録開始から停止までの一連の動作によって記録媒体１に記録されるため、記録処理が複数回行われると２本以上のデータストリームが記録媒体１に記録される。よって、ユーザがこれらのデータストリームの連続再生を指示したときは、不連続な２本以上のデータストリームを連続して再生することになる。また、１つのデータストリームの複数の区間を連続して再生する場合にも、各区間を１つのデータストリームと考えれば不連続な２本以上のデータストリームを連続して再生すると言うことができる。後者の例は、ユーザによってプレイリストが作成され、１つのデータストリームの任意の再生区間および経路が指定されたときに相当する。
以下、再生装置が不連続なデータストリームを再生する際の処理を説明する。再生装置はビデオ信号切り替えスイッチ１２ａおよび１２ｂを制御して、まず第１データストリームをビデオデータ記憶部５の一方の記憶領域を介してビデオデコーダ６に伝送し、デコードする。ビデオデコーダ６が第１データストリームのデコードを終了した直後、マイクロコントローラ３はビデオ信号切り替えスイッチ１２ａおよび１２ｂを切り替える。これにより次に読み出された第２データストリームはビデオデータ記憶部５の他方の記憶領域を介してビデオデコーダ６に伝送される。よって、ビデオデコーダ６は、第１データストリームのデコード終了後すぐに第２データストリームを連続的にデコードできる。
しかしながら、従来の再生装置では、ハードウェアの増大は避けられず、また複雑な制御が要求されている。具体的には、再生装置には、データストリームを蓄積する独立した２以上の記憶領域をビデオデータ記憶部に設けなければならない。また、記憶領域を切り替えるための入力および出力用の各ビデオ信号切り替えスイッチも必要になる。そして、マイクロコントローラは各スイッチの切り替え制御を行わなければならない。
本発明の目的は、記憶領域およびビデオ信号切り替えスイッチを追加的に設けることなく、簡便な構成および制御により、不連続な複数のデータストリームを連続的に再生することにある。あわせて、不連続点における再生の乱れを抑えることにある。
【発明の開示】
本発明によるデータ処理装置は、コンテンツデータを含むデータストリームを取得しながら、コンテンツを再生する。前記データストリームは複数のパケットから構成され、各パケットは前記コンテンツデータおよび前記コンテンツデータの種類を識別するための識別子を有し、前記コンテンツデータのうち、再生単位の先頭部分に対応するコンテンツデータは前記再生単位を特定するヘッダを有する。前記データ処理装置は、第１データストリームを取得し、その後、第２データストリームを取得するストリーム抽出部と、前記複数のパケットの識別子と異なるダミー識別子を有するダミーパケットを生成し、前記第１データストリームの最終パケットと前記第２データストリームの先頭パケットとの間に挿入するパケット挿入部と、前記識別子に基づいて種類ごとに前記コンテンツデータを分離し、前記ダミー識別子の検出に応答して前記コンテンツデータとは異なるエラーデータを挿入する分離部と、前記コンテンツデータを前記再生単位で再生し、前記エラーデータを検出して、前記第１データストリームの最後の不完全なコンテンツデータおよび前記第２データストリームの最初のヘッダまでのコンテンツデータを破棄して再生しないデコーダとを備えている。
前記データストリームにはエラーを示すエラーコードが予め規定されており、前記分離部は前記エラーデータとして前記エラーコードを挿入してもよい。
前記分離部は、前記エラーデータとして所定長の“０”のビット列をさらに挿入し、前記デコーダは、前記エラーコードおよび前記ビット列の一方を検出したとき、前記エラーデータを検出したと判断してもよい。
前記データストリームには、可変長符号化方式によって前記コンテンツのデータが符号化されており、前記分離部は、前記可変長符号化方式の最大符号長以上のビット長を持つビット列を挿入してもよい。
前記コンテンツは少なくとも映像を含んでおり、前記分離部は、映像に関する可変長符号化方式の最大符号長以上のビット長を持つビット列を挿入してもよい。
前記ストリーム抽出部は、トランスポートストリームパケットから構成された前記第１データストリームおよび前記第２データストリームを取得してもよい。
前記ストリーム抽出部は、１つのコンテンツに関するデータストリームの異なる部分を、それぞれ前記第１データストリームおよび前記第２データストリームとして取得してもよい。
前記ストリーム抽出部は、記録媒体から前記第１データストリームおよび前記第２データストリームを取得してもよい。
前記ストリーム抽出部は、放送された前記第１データストリームおよび前記第２データストリームを取得してもよい。
本発明によるデータ処理方法は、コンテンツデータを含むデータストリームを取得しながら、コンテンツを再生する。前記データストリームは複数のパケットから構成され、各パケットは前記コンテンツデータおよび前記コンテンツデータの種類を識別するための識別子を有し、前記コンテンツデータのうち、再生単位の先頭部分に対応するコンテンツデータは前記再生単位を特定するヘッダを有している。前記データ処理方法は、第１データストリームを取得し、その後、第２データストリームを取得するステップと、前記複数のパケットの識別子と異なるダミー識別子を有するダミーパケットを生成するステップと、前記第１データストリームの最終パケットと前記第２データストリームの先頭パケットとの間に挿入するステップと、前記識別子に基づいて種類ごとに前記コンテンツデータを分離するステップと、前記ダミー識別子を検出すると前記コンテンツデータとは異なるエラーデータを挿入するステップと、前記コンテンツデータを前記再生単位で再生するステップと、前記エラーデータを検出すると、前記第１データストリームの最後の不完全なコンテンツデータおよび前記第２データストリームの最初のヘッダまでのコンテンツデータを破棄するステップとを包含する。
前記データストリームにはエラーを示すエラーコードが予め規定されており、前記エラーデータを挿入するステップは、前記エラーデータとして前記エラーコードを挿入してもよい。
前記エラーデータを挿入するステップは、前記エラーデータとして所定長の“０”のビット列をさらに挿入し、前記破棄するステップは、前記エラーコードおよび前記ビット列の一方を検出したとき、前記エラーデータを検出したと判断してもよい。
前記データストリームには、可変長符号化方式によって前記コンテンツのデータが符号化されており、前記エラーデータを挿入するステップは、前記可変長符号化方式の最大符号長以上のビット長を持つビット列を挿入してもよい。
前記コンテンツは少なくとも映像を含んでおり、前記エラーデータを挿入するステップは、映像に関する可変長符号化方式の最大符号長以上のビット長を持つビット列を挿入してもよい。
前記取得するステップは、トランスポートストリームパケットから構成された前記第１データストリームおよび前記第２データストリームを取得してもよい。
前記取得するステップは、１つのコンテンツに関するデータストリームの異なる部分を、それぞれ前記第１データストリームおよび前記第２データストリームとして取得してもよい。
前記取得するステップは、記録媒体から前記第１データストリームおよび前記第２データストリームを取得してもよい。
前記取得するステップは、放送された前記第１データストリームおよび前記第２データストリームを取得してもよい。
【図面の簡単な説明】  図１は、従来の再生装置の機能ブロックの構成を示す図である。
図２は、ＭＰＥＧ−２トランスポートストリーム２０のデータ構造を示す図である。
図３（ａ）はビデオＴＳパケット３０のデータ構造を示す図であり、図３（ｂ）は、オーディオＴＳパケット３１のデータ構造を示す図である。
図４（ａ）〜４（ｄ）は、ビデオＴＳパケットからビデオピクチャを再生する際に構築されるストリームの関係を示す図である。
図５（ａ）はピクチャデータの配置の順序を示す図であり、図５（ｂ）はピクチャの再生出力される順序を示す図である。
図６は、再生装置１００の機能ブロックの構成を示す図である。
図７は、再生装置１００において処理されるＴＳと、ＴＳから得られたＥＳとの関係を示す図である。
図８は、ストリーム分離部６４の機能ブロックの構成を示す図である。
図９は、ストリーム切り替え点前後のデータ配列を示す図である。
図１０は、ビデオデコーダ６６の機能ブロックの構成を示す図である。
図１１は、再生装置１００の処理の手順を示すフローチャートである。
【発明を実施するための最良の形態】  以下、添付の図面を参照しながら、本発明によるデータ処理装置の実施形態である再生装置を説明する。
まず初めに、本実施形態による再生装置において処理の対象となるデータストリームのデータ構造を説明し、その後、再生装置の構成および動作を説明する。
図２は、ＭＰＥＧ−２トランスポートストリーム２０のデータ構造を示す。ＭＰＥＧ−２トランスポートストリーム２０（以下「ＴＳ２０」と記述する）は、複数のＴＳオブジェクトユニット（ＴＳ  ＯＢｊｅｃｔ  Ｕｎｉｔ；ＴＯＢＵ）２１を含み、そのＴＯＢＵ２１は１以上のトランスポートパケット（ＴＳパケット）から構成されている。ＴＳパケットは、例えば、圧縮されたビデオデータが格納されたビデオＴＳパケット（Ｖ＿ＴＳＰ）３０、圧縮されたオーディオデータが格納されたオーディオＴＳパケット（Ａ＿ＴＳＰ）３１の他、番組表（プログラム・アソシエーション・テーブル；ＰＡＴ）が格納されたパケット（ＰＡＴ＿ＴＳＰ）、番組対応表（プログラム・マップ・テーブル；ＰＭＴ）が格納されたパケット（ＰＭＴ＿ＴＳＰ）およびプログラム・クロック・リファレンス（ＰＣＲ）が格納されたパケット（ＰＣＲ＿ＴＳＰ）等を含む。各パケットのデータ量は１８８バイトである。
以下、本発明の処理に関連するビデオＴＳパケットおよびオーディオＴＳパケットを説明する。図３（ａ）はビデオＴＳパケット３０のデータ構造を示す。ビデオＴＳパケット３０は、４バイトのトランスポートパケットヘッダ３０ａ、および、１８４バイトのビデオデータ３０ｂを有する。一方、図３（ｂ）は、オーディオＴＳパケット３１のデータ構造を示す。オーディオＴＳパケット３１も同様に、４バイトのトランスポートパケットヘッダ３１ａ、および、１８４バイトのオーディオデータ３１ｂを有する。
上述の例から理解されるように、一般にＴＳパケットは４バイトのトランスポートパケットヘッダと、１８４バイトのエレメンタリデータとから構成されている。パケットヘッダには、そのパケットの種類を特定するパケット識別子（Ｐａｃｋｅｔ  ＩＤ；ＰＩＤ）が記述されている。例えば、ビデオＴＳパケットのＰＩＤは“０ｘ００２０”であり、オーディオＴＳパケットのＰＩＤは“０ｘ００２１”である。エレメンタリデータは、ビデオデータ、オーディオデータ等のコンテンツデータや、再生を制御するための制御データ等である。どのようなデータが格納されているかは、パケットの種類に応じて異なる。なお、ＴＳパケットのＴＳパケットヘッダの後のデータ格納領域は、ビデオデータ、オーディオデータ等のコンテンツデータが格納されるときはＴＳパケットの「ペイロード」と呼ばれ、制御データが格納されるときは「アダプテーションフィールド」と呼ばれる。本実施形態による処理の主要な特徴は、ＴＳパケットのペイロードを利用した処理にある。
なお、図２、図３（ａ）および図３（ｂ）はトランスポートストリームに関するデータ構造の例であるが、このデータ構造は、プログラムストリームにおけるパックにも同様に適用できる。パックでは、パケットヘッダに続けてデータが配置されているからである。「パック」は、パケットの１つの例示的な形態として知られている。ただし、パケットヘッダの前にはパックヘッダが付加され、パックのデータ量は２０４８キロバイトである等の点においてパケットと相違している。
以下、本明細書では、ビデオを例に挙げて本発明の実施形態による処理を説明する。
図４（ａ）〜４（ｄ）は、ビデオＴＳパケットからビデオピクチャを再生する際に構築されるストリームの関係を示す。図４（ａ）に示すように、ＴＳ４０は、ビデオＴＳパケット４０ａ〜４０ｄを含む。なお、ＴＳ４０には、他のパケットも含まれ得るが、ここではビデオＴＳパケットのみを示している。ビデオＴＳパケットは、ヘッダ４０ａ−１に格納されたＰＩＤによって容易に特定される。
ビデオデータ４０ａ−２等の各ビデオＴＳパケットのビデオデータから、パケット化エレメンタリストリームが構成される。図４（ｂ）は、パケット化エレメンタリストリーム（ＰＥＳ）４１のデータ構造を示す。ＰＥＳ４１は、複数のＰＥＳパケット４１ａ、４１ｂ等から構成される。ＰＥＳパケット４１ａは、ＰＥＳヘッダ４１ａ−１およびピクチャデータ４１ａ−２から構成されており、これらのデータがビデオＴＳパケットのビデオデータとして格納されている。
ピクチャデータ４１ａ−２は、各ピクチャのデータを含んでいる。ピクチャデータ４１ａ−２から、エレメンタリストリームが構成される。図４（ｃ）は、エレメンタリストリーム（ＥＳ）４２のデータ構造を示す。ＥＳ４２は、ピクチャヘッダ、および、フレームデータまたはフィールドデータの組を複数有している。なお、「ピクチャ」とは、一般にフレームおよびフィールドのいずれも含む概念として用いられるが、以下ではフレームを表すとする。「ピクチャ」はビデオに関する最小の再生単位である。
図４（ｃ）に示すピクチャヘッダ４２ａには、その後に配置されたフレームデータ４２ｂのピクチャ種別を特定するピクチャヘッダコードが記述され、ピクチャヘッダ４２ｃにはフレームデータ４２ｄのピクチャ種別を特定するピクチャヘッダコードが記述されている。種別とは、Ｉピクチャ（Ｉフレーム）、Ｐピクチャ（Ｐフレーム）またはＢピクチャ（Ｂフレーム）を表す。種別がＩフレームのときのピクチャヘッダコードは、例えば１６進数にして
“００＿００＿０１＿００＿００＿８ｂ”である。
なお、ピクチャヘッダの前にさらにシーケンスヘッダ（Ｓｅｑ−Ｈ）またはＧＯＰヘッダ（ＧＯＰ−Ｈ）が記述されることがある。ＧＯＰヘッダ（ＧＯＰ−Ｈ）は、Ｉピクチャを先頭にした複数のピクチャからなる再生単位（グループ・オブ・ピクチャ（ＧＯＰ））を特定するヘッダである。また、シーケンスヘッダ（Ｓｅｑ−Ｈ）は、１以上のＧＯＰからなる再生単位（シーケンス）を特定するためのヘッダである。
フレームデータ４２ｂ、４２ｄ等は、そのデータのみによって、または、そのデータとその前および／または後に復号化されるデータとによって構築可能な１枚分のフレームのデータである。図４（ｄ）は、フレームデータ４２ｂから構築されるピクチャ４３ａおよびフレームデータ４２ｄから構築されるピクチャ４３ｂを示している。
例えば、ＭＰＥＧ−２規格のメインプロファイルにおいて採用されている双方向符号化方式によれば、映像データには、そのデータのみで完全な１枚のピクチャが構築可能なデータ（Ｉピクチャデータ）と、そのデータのみでは完全な１枚のピクチャが構築できないが、他のピクチャのデータを参照することによって完全な１枚のピクチャが構築可能なデータ（Ｐ、Ｂピクチャデータ）とが存在する。
より詳しく説明すると、あるＧＯＰ内のＰおよびＢピクチャ全てが、同じＧＯＰ内のＩピクチャまたはＰピクチャのみを参照して構築される場合がある（このデータ構造は“Ｃｌｏｓｅｄ  ＧＯＰ”と呼ばれる）。また、Ｂピクチャの中には、そのＢピクチャが属するＧＯＰの直前のＧＯＰ内のＩピクチャまたはＰピクチャを参照するものもある（このデータ構造は”Ｏｐｅｎ  ＧＯＰ”と呼ばれる）。
そして、ピクチャデータの配置と出画する順序も種々規定されている。ここで、後者（”Ｏｐｅｎ  ＧＯＰ”）での出画順序を実現するための各ピクチャのデータ配置および出画順序を、図５（ａ）および５（ｂ）を参照しながら説明する。
図５（ａ）はピクチャデータの配置の順序を示す。また、図５（ｂ）はピクチャの再生出力される順序を示す。図５（ａ）および５（ｂ）では、“Ｉ”、“Ｐ”、“Ｂ”はそれぞれＩピクチャ、ＰピクチャおよびＢピクチャを示している。各ピクチャのデータは図４（ｃ）のＥＳ４２を構成する。なお、図５（ａ）において、Ｉピクチャ５４から次のＩピクチャの手前のＢピクチャ６０までを１ＧＯＰとする。
図５（ａ）および５（ｂ）から理解されるように、ピクチャデータの配置順序と出画順序とは異なっている。例えばＩピクチャ５４のピクチャデータは、Ｂピクチャ５５、５６のピクチャデータよりも前に配置されているが、Ｉピクチャ５４の出画はＢピクチャ５５、５６の出画の後である。また、Ｐピクチャ５７のピクチャデータと、その後の２枚のＢピクチャのピクチャデータとの関係も同様である。出画の順序は、２枚のＢピクチャが先であり、Ｐピクチャ５７はその後である。
図５（ａ）において、Ｂピクチャ５５は、前方向のＰピクチャ５３および出画順では後ろ方向になるＩピクチャ５４との両方向の差分データに基づいてエンコードされている。Ｂピクチャ５６も同様である。ここでは、いずれのＢピクチャ５５および５６も、直前のＧＯＰ内のＰピクチャが参照されている。Ｂピクチャ５５、５６のデコード時には、元のピクチャ５３、５４のピクチャデータが参照される。参照される元のピクチャは参照ピクチャと呼ばれる。参照ピクチャのピクチャデータは、バッファ等に格納されて他のピクチャのデコード時に参照される。
また、Ｐピクチャ５７は直前のＩピクチャ５４との差分に基づいてエンコードされている。なお、Ｐピクチャ５８は直前のＰピクチャ５７との差分に基づいてエンコードされている。Ｐピクチャ５８のデコード時には参照ピクチャであるＰピクチャ５７のピクチャデータが必要になる。
次に、図６を参照しながら、本実施形態による再生装置の構成および動作を説明する。上述のように、本実施形態では主としてビデオを例に挙げて再生装置の各構成要素の機能を説明する。なお、本実施形態では記録媒体はハードディスクであるとする。
再生装置は、ＴＳパケットを取得し、取得したＴＳパケットに基づいてＥＳ４２（図４（ｃ））までシステムデコードし、その後、復元されたピクチャを出力する。以下では一般的な復号および出画処理を説明するために、１ＧＯＰ内のデータによって全てのピクチャが構築できる”Ｃｌｏｓｅｄ  ＧＯＰ”のデータ構造に基づいて説明する。
図６は、再生装置１００の機能ブロックの構成を示す。再生装置１００は、ハードディスク６１と、再生部６２と、マイクロコントローラ６３と、ストリーム分離部６４と、ビデオデータ記憶部６５と、ビデオデコーダ６６と、フレームデータ記憶部６７と、ビデオ出力端子６８と、オーディオデータ記憶部６９と、オーディオデコーダ７０と、オーディオ出力端子７１とを有する。なお、ハードディスク６１に対してデータを書き込みおよび読み出すためには、ハードディスク６１を回転させるモータ、磁気ヘッド等を備えたドライブ装置が必要であるが、図６では省略している。記録媒体としては、取り外しできないハードディスク６１に代えてリムーバブルなメディア、例えばＢｌｕ−ｒａｙディスク（ＢＤ）等でもよいが、その場合には再生装置１００固有の構成要素でなくてもよい。
再生装置１００は、マイクロコントローラ６３の制御に基づいて、ハードディスク６１から映像、音声等のコンテンツに関するコンテンツデータを含むＴＳを取得しながらコンテンツを再生することができる。本明細書では、ハードディスク６１に記録されたＴＳは１つであるとし、そのＴＳの一部の区間を再生した後、不連続な他の区間を再生する例を説明する。この例は、ユーザによってプレイリストが作成され、１つのデータストリームの任意の再生区間および経路が指定されたときに相当する。各再生区間は本来的には１つのＴＳの一部であるが、各部分区間は別個のＴＳ（ＴＳ−ＡおよびＴＳ−Ｂ）として取り扱うことができる。
以下、再生装置１００の機能の概略を説明する。再生装置１００の再生部６２は、ハードディスク６１からＴＳ−Ａを取得し、その後、ＴＳ−Ｂを取得する。そして、再生部６２は、各ＴＳ内の各パケット識別子（ＰＩＤ）と異なるダミー識別子を有するダミーパケットを生成し、ＴＳ−Ａの最終パケットと、後続のＴＳ−Ｂの先パケットとの間に挿入する。ストリーム分離部６４は、パケット識別子（ＰＩＤ）に基づいて、パケットの種別ごとにコンテンツデータをビデオおよびオーディオのエレメンタリデータに分離する。またストリーム分離部６４は、ダミー識別子の検出に応答してコンテンツデータとは異なるエラーデータを挿入する。デコーダ６６、７０は、コンテンツデータを再生単位で再生し、エラーデータを検出してＴＳ−Ａの最後の不完全なコンテンツデータおよびＴＳ−Ｂの最初のヘッダまでのコンテンツデータを破棄して、再生を実施しない。これにより、２つのデータストリーム（ＴＳ−ＡおよびＴＳ−Ｂ）の境界点を確実にデコーダ６６、７０に伝えることができる。
再生装置１００の各構成要素の機能は以下のとおりである。なお、各構成要素は、マイクロコントローラ６３からの指示に基づいて動作している。
再生部６２は、ハードウェアの構成としては、磁気ヘッドや信号等化回路、エラー訂正回路（図示せず）等を含んでいる。再生部６２は、ストリーム抽出部６２ａとダミーパケット挿入部６２ｂとを有する。ストリーム抽出部６２ａはハードディスク６１のアドレスをマイクロコントローラ３から受け取り、そのアドレスからデータを読み出す。そして、エラー訂正処理を行った後、ＴＳ（ＴＳ−Ａ、ＴＳ−Ｂ等）を得る。
ダミーパケット挿入部６２ｂは、ビデオＴＳパケットやオーディオＴＳパケット等のパケットの識別子（ＰＩＤ）と異なるダミー識別子を有するダミーパケットを生成して、ＴＳ−ＡとＴＳ−Ｂとの間に挿入する。
ここで図７を参照しながらダミーパケットを説明する。図７は、再生装置１００において処理されるＴＳと、ＴＳから得られたＥＳとの関係を示している。図７のＴＳに注目すると、ダミーパケット７２は、ＴＳ−Ａの最終パケット７５とＴＳ−Ｂの先頭パケット７７との間に挿入されていることが理解される。図７にはまた、ダミーパケット７２のデータ構造も示されている。ダミーパケット７２はパケットヘッダ７２ａおよびペイロード７２ｂから構成されており、ビデオＴＳパケット３０（図３（ａ））やオーディオＴＳパケット３１（図３（ｂ））等と同様のデータ構造を持っている。
パケットヘッダ７２ａには、ダミーパケット７２を他のパケットと識別するための識別子（ＰＩＤ）が記述されている。例えば、この識別子（ＰＩＤ）は“０ｘ１ＦＦＦ”であり、先に例示したビデオＴＳパケットおよびオーディオＴＳパケットの各識別子（ＰＩＤ）とは異なっている。また、ペイロード７２ｂは、予め定められた所定パターンのデータ列であるダミーデータが格納されている。ダミーデータは有意なデータ列ではなく、再生の対象ではない。例えば、通常はスタッフィングの目的でしか用いられないＮＵＬＬ（ヌル）パケットをダミーパケットとし、ＮＵＬＬパケットのＰＩＤと、それに続く特定のパターンをダミーパケットとして埋め込んでおくとよい。
ダミーパケット７２をＴＳ−Ａの最終パケット７５とＴＳ−Ｂの先頭パケット７７との間に挿入すると、以下の問題が生じる。すなわち、図４（ａ）〜（ｄ）の記載および各図に対応する説明から明らかなように、各ビデオＴＳパケットのビデオデータには、ＰＥＳヘッダ、ピクチャヘッダ、フレームデータ等が分割されて格納されている。例えば、１枚のフレームを再生するために必要なデータがＮ個のビデオＴＳパケットに分割されているとする。すると、ＴＳ−ＡのＮ個のビデオＴＳパケットの取得が完了する前にダミーパケット７２が挿入されると、ＴＳ−Ａのそのフレームはデータが完全に揃わないため再生することができない場合がある。図７の下段に例示するように、ＴＳ−Ａから得られたＥＳ７６には再生できないＩピクチャデータ７６ｂが含まれている。本明細書では、この再生できないピクチャを「不完全な」データと称している。
同様に、ダミーパケット７２が挿入された直後のＴＳ−ＢのビデオＴＳパケットが、ＴＳ−Ｂの伝送中のＮ個のビデオＴＳパケットの途中のパケットであるときには、それ以前に伝送されたビデオＴＳパケット内のフレームデータが取得できないため再生することができない。図７の下段には、ＴＳ−Ｂから得られたＥＳ７９に含まれる、再生できない一部のＢピクチャデータ７８を例示する。
また、ＴＳパケットのデータ長は１８８バイトに固定されているため、１枚のフレームを再生するために必要なデータが例えばＮ個のビデオＴＳパケットに分割された結果、フレーム前後の区切りが１個目またはＮ個目のＴＳパケットの区切りに一致しないこともあり得る。例えばダミーパケット７２が挿入された直前のＴＳ−Ａ最後のＴＳパケットが、上記したＮ個目のＴＳパケットであっても、そのパケットのビデオデータに図７のＥＳに示すＩピクチャデータ７６ｂのような後続のピクチャデータの一部が含まれることがある。この一部のピクチャデータは再生されないため、不完全なデータである。同様に、ダミーパケット７２が挿入された直後のＴＳ−Ｂの先頭のＴＳパケットに、途中まで再生できない不完全なピクチャデータが図７のＥＳに示すＢピクチャデータ７８ｂと全く同様に存在することもあり得る。なお、上述の“Ｎ”の値は通常は各ピクチャデータごとに変化している。
このような再生できないフレームデータに対して再生処理を行うと、表示されるフレーム画像が乱れたり、デコードエラーが発生する。
そこで、上述の問題を回避するため、ストリーム分離部６４およびビデオデコーダ６６において、完全に取得できなかったフレームデータを誤って再生しないための処理を行う。
以下、図８を参照しながらストリーム分離部６４の構成および機能を説明する。図８は、ストリーム分離部６４の機能ブロックの構成を示す。ストリーム分離部６４は、ＰＩＤ検出部８１と、ダミーパケット検出部８２と、ＴＳ／ＰＥＳデコーダ８３と、スイッチ８４ａおよび８４ｂと、エラーデータ生成部８５とを有する。
ＰＩＤ検出部８１は、ＴＳ−Ａ、ダミーパケット７２およびＴＳ−Ｂから構成される一連のデータストリーム（図７上段）を受け取って、各パケットのパケットヘッダを解析して識別子（ＰＩＤ）を検出する。検出された識別子（ＰＩＤ）はマイクロコントローラ６３に送られる。各パケットは種類に応じて異なる識別子（ＰＩＤ）を有するため、マイクロコントローラ６３は識別子（ＰＩＤ）の値に応じて、そのパケットがペイロード領域にどの種類のデータを格納しているかを判別できる。なお、ＰＩＤ検出部８１は、ビデオＴＳパケット３０、オーディオＴＳパケット３１およびダミーパケット７２のみならず、図２に示す番組表パケット（ＰＡＴ＿ＴＳＰ）および番組対応表パケット（ＰＭＴ＿ＴＳＰ）等の個別の識別子（ＰＩＤ）を検出することもできる。
次に、ダミーパケット検出部８２は、ダミーＰＩＤが検出された場合においてそのパケットのペイロードを解析して特定のダミーデータが存在するか否かを判別し、そのパケットがダミーパケット７２であるか否かを検出する。これにより、ダミーパケット７２を確実に検出できる。なお、ダミーパケット検出部８２はダミーＰＩＤの検出の有無にかかわらずダミーデータの検出を行ってもよい。このような処理は識別子（ＰＩＤ）のみではダミーパケットを特定して検出できなかった場合に特に有効である。ダミーパケット検出部８２は、ダミーデータが存在する場合にはダミーパケット７２を検出したと判断する。ダミーデータ７２の検出は、そのパケットの位置において、データストリームが不連続であることを示している。マイクロコントローラ６３は、ダミーパケット検出部８２からダミーパケット７２の検出の通知を得ると、そのパケット位置において、ＴＳ−ＡがＴＳ−Ｂに切り替わっていると判断できる。
ＴＳ／ＰＥＳデコーダ８３は、ビデオＴＳパケットおよびオーディオＴＳパケット等のペイロードに格納されたデータに基づいて、エレメンタリストリームのレベルまでシステムデコードを行ってデータを出力する。ただし、上述のようにダミーパケット７２に格納されたダミーデータは有意のデータではなく再生の対象にはならないため、デコード処理は行われずそのまま出力される。
ＴＳ／ＰＥＳデコーダ８３の処理を、例えば図４（ａ）〜４（ｃ）に示すビデオについて説明する。ＴＳ／ＰＥＳデコーダ８３はビデオＴＳパケット４０ａ〜４０ｄのパケットヘッダを除去してペイロードを取得する。そしてＴＳ／ＰＥＳデコーダ８３は、そのペイロードにＰＥＳヘッダが存在する場合には、そのＰＥＳヘッダを除去する。これにより、ＴＳ／ＰＥＳデコーダ８３はエレメンタリデータを得ることができる。一方、ダミーパケットに対しては、ＴＳ／ＰＥＳデコーダ８３はパケットヘッダを除去して得られたダミーデータをそのまま出力する。
なお、ＴＳ／ＰＥＳデコーダ８３の処理後に出力されるデータは、図４（ｃ）に示すエレメンタリストリーム４２であるとは限らない。ストリームにはビデオＴＳパケットの他にオーディオＴＳパケットも含まれているからである。エレメンタリストリーム４２は、後述のビデオデータ記憶部６５に格納されることによって得られる。オーディオに関するエレメンタリストリームも同様に、オーディオデータ記憶部６９に格納される。
スイッチ８４ａは、ＰＩＤ検出部８１から識別子（ＰＩＤ）の通知を受けたマイクロコントローラ６３からの指示に基づいてデータの伝送経路を切り替える。すなわち、スイッチ８４ａは、処理中のＴＳパケットの識別子（ＰＩＤ）がビデオを示す場合には、データがスイッチ８４ａに伝送されるように経路を形成する。一方、オーディオを示す場合には、データが端子８６ｂに伝送されるように経路を形成する。端子８６ｂはオーディオデータ記憶部６９と接続されており、オーディオエレメンタリストリームとしてオーディオデータ記憶部６９に格納される。
スイッチ８４ｂもまた、マイクロコントローラ６３からの指示に基づいてデータの伝送経路を切り替える。スイッチ８４ｂは通常、スイッチ８４ａを経て送られてきたＴＳ／ＰＥＳデコーダ８３からのエレメンタリデータを、端子８６ａに出力するように経路を形成している。しかし、ダミーパケット検出部８２においてダミーパケットが検出されたときは、ダミーデータがスイッチ８４ｂに入力されている期間中、スイッチ８４ｂはエラーデータ生成部８５からのデータを端子８６ａに出力するように経路を形成している。端子８６ａはビデオデータ記憶部６５と接続されており、ビデオエレメンタリストリームとしてビデオデータ記憶部６５に格納される。
エラーデータ生成部８５は、“０”のみからなる所定データ長のデータ（“０”データ）と、特定の値を示す所定データ長のシーケンスエラーデータ（ｓｅｑｕｅｎｃｅ＿ｅｒｒｏｒ）を挿入する。例えば“０”データのデータ長は、考えられる可変長符号（ＶＬＣ）（後述）の最大長と同じ、またはそれ以上である。エラーデータ生成部８５は、スイッチ８４ｂがエラーデータ生成部８５側に切り替わったときに、“０”データおよびシーケンスエラーデータをこの順序で出力する。
次に、図７および図９を参照しながら、上述のストリーム分離部６４から得られるエレメンタリストリーム（ＥＳ）を説明する。図７の下段は、ＴＳに基づいて得られたＥＳを示している。ただし、図示されているのはビデオに関するＥＳであり、ビデオデータ記憶部６５に格納された状態のデータ構造である。
ＥＳは、図７の左側から右側に向かってストリーム分離部６４から出力され、構築されたとする。まず、ＥＳにはＢピクチャに関するデータ、すなわちピクチャヘッダ（ＰＩＣ−Ｈ）に続きＢピクチャデータが配置されている。Ｂピクチャデータに続いては、Ｉピクチャが配置されている。各種ヘッダ７６ａは、Ｉピクチャヘッダの他に、例えば上述のシーケンスヘッダ、ＧＯＰヘッダを含んでいる。
各種ヘッダ７６ａに続きＩピクチャデータ７６ｂが配置されている。ただし、ビデオＴＳパケット７５に格納されていたＩピクチャデータは１枚のＩピクチャを構成するデータのうちの一部であり、全部ではない。Ｉピクチャに関するヘッダおよびピクチャデータは、例えば２０個のビデオＴＳパケットにわたって格納されることもあるため、１枚のＩピクチャを構成するデータが完全に得られる前にＴＳ−ＡがＴＳ−Ｂに切り替えられることは十分想定される。
Ｉピクチャデータ７６ｂの後ろで、かつ、ダミーパケット７２が挿入されていた範囲には、“０”データ７３およびシーケンスエラーデータ７４が配置されている。データ７３および／または７４の存在を検出したときは、この位置においてＴＳ−ＡがＴＳ−Ｂに切り替えられたことを意味する。本明細書では、データ７３および７４が存在している位置を、便宜的に「ストリーム接続点」と呼ぶ。
ストリーム接続点におけるシーケンスエラーデータ７４の後には、ＴＳ−Ｂを構成する不完全なピクチャデータ７８が格納されている。このＢピクチャデータ７８は、Ｂピクチャのピクチャヘッダを含むとは限らない。ＴＳ−Ｂの任意の位置においてＴＳ−Ａとの切り替えが行われ得るため、エレメンタリデータのみを格納するパケットが存在するからである。
ＴＳ−ＢのＢピクチャデータ７８の次には、図７の例では各種ヘッダ７９ａおよびＩピクチャデータ７９ｂが配置されている。このＩピクチャデータ７９ｂは、１枚の完全なＩピクチャを出画することができるデータである。なお、このＩピクチャデータ７９ｂの後に伝送されるピクチャデータ（例えばＢピクチャデータ）は、Ｉピクチャデータ７９ｂ等を参照して再生することができる。
図７の斜線を付した一部のＩピクチャデータ７６ｂおよびＢピクチャデータは、それぞれを出画することはできない。その理由は、すべてのピクチャデータが揃わなければ１枚のピクチャとして出画できないからである。これにより、“０”データ７３およびシーケンスエラーデータ７４が存在する位置（ストリーム接続点）の前後には再生に用いることができないデータが存在していることになる。
次に、図９を参照しながら、ストリーム接続点におけるデータ構造を詳細に説明する。図９は、ストリーム切り替え点前後のデータ配列を示す。再生に用いることができないＩピクチャデータ７６ｂから、“０”データ７３、シーケンスエラーデータ７４およびＢピクチャデータ７８までのデータが示されている。Ｉピクチャデータ７６ｂの先頭部には、シーケンスヘッダ（およびシーケンスエクステンションデータ）９０、ＧＯＰヘッダ９１およびピクチャヘッダ９２を含む各種ヘッダ７６ａが存在する。その後に、Ｉピクチャデータとしてスライスヘッダおよびマクロブロック７６ｂが配置されている。Ｉピクチャデータを構成するスライスヘッダおよびマクロブロック７６ｂは、ビデオの符号化データである可変長符号ＶＬＣ（Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｅ）を含んでいる。図９には、可変長符号ＶＬＣ−Ｉ０、Ｉ１、Ｉ２およびＩ３が示されている。そして、次の可変長符号ＶＬＣ９３において、ＴＳ−Ａの最終ＴＳパケットが終了している。可変長符号ＶＬＣ９３の残り部分はＴＳ−Ａ中の次のビデオＴＳパケット（図示せず）に格納されていたが、ＴＳ−Ｂへの切り替えのため存在しない。
可変長符号ＶＬＣ９３の後に、“０”データ７３およびシーケンスエラーデータ７４が配置されている。図９では可変長符号ＶＬＣ９３と“０”データ７３との間が開いているが、これは記載の便宜のためである。実際は可変長符号ＶＬＣ９３と“０”データ７３とは連続して配置されている。
続いて、ＴＳ−ＢのＢピクチャデータ７８のデータが配置されている。先頭の可変長符号ＶＬＣ９４は、実際には可変長符号として機能することはない。可変長符号の一部にしか過ぎず、復号できないからである。可変長符号ＶＬＣ９４の前に本来存在するはずのデータはＴＳ−Ａからの切り替えの前に伝送されており、このストリーム内には存在しない。可変長符号ＶＬＣ９４の後には、可変長符号ＶＬＣ−Ｂ２、Ｂ３、Ｂ４が存在している。これらはそれぞれ復号可能である。
ここで“０”データ７３およびシーケンスエラーデータ７４を設けた意義を説明する。まず、“０”データ７３およびシーケンスエラーデータ７４の両方を設けない場合には、可変長符号ＶＬＣ９３と可変長符号ＶＬＣ９４が接続され、連続したデータとなる。その結果、可変長符号ＶＬＣとして誤認識され、後続のビデオデコーダ６６においてデコードエラーを引き起こしてしまう。そのため、シーケンスエラーデータ７４を設けている。シーケンスエラーデータ７４は、例えば“０ｘ０００００１ｂ４”であり、このデータが検出されると、このデータは必ずエラーであることを示している。
次に、シーケンスエラーデータ７４のみを設け、“０”データ７３を設けない場合を考える。シーケンスエラーデータ７４のみによってストリーム接続点を識別することも可能な場合がある。しかし、“０”データ７３が存在しない場合には、直前の可変長符号ＶＬＣ９３とシーケンスエラーデータ７４とが接続され、１つの可変長符号ＶＬＣとして誤認識されることがある。すなわち、シーケンスエラーデータ７４として認識されなくなる場合がある。よって、このような誤認識の発生を防ぐために“０”データ７３を設けている。ただし、可変長符号ＶＬＣ−Ｉ３と“０”データ７３とが接続されることによって同様の誤認識の発生も避ける必要がある。よって“０”データ７３のデータ長は、考えられる可変長符号ＶＬＣの最大長と同じ、またはそれ以上にしている。ビデオデコーダ６６は“０”データ７３を受け取ると、存在しない可変長符号であることを検出できる。
“０”データ７３およびシーケンスエラーデータ７４を設けることにより、ストリーム接続点において、後続のビデオデコーダ６６は可変長符号ＶＬＣ−Ｉ３と“０”データ７３とが接続されたことに起因するＶＬＣエラーを検出し、または、シーケンスエラーデータ７４に基づくエラーを検出できる。ビデオデコーダ６６は接続点であることを確実に認識できる。
次に、ビデオデコーダ６６（図６）の処理を説明する。ビデオデコーダ６６は、図７に示すＥＳをビデオデータ記憶部６５から順次読み出してデコードし、その結果得られた各ピクチャのデータ（フレームデータ）をフレームデータ記憶部６７に格納しながら、完全なフレームデータが得られるとビデオ出力端子から出力する。
図１０は、ビデオデコーダ６６の機能ブロックの構成を示す。ビデオデコーダ６６は、スタートコード検出部１０１と、ＶＬＣデコード部１０２と、逆量子化部１０３と、逆ＤＣＴ部１０４と、動き補償部１０５とを有する。
スタートコード検出部１０１は、ビデオＥＳ入力端子からビデオＥＳを受け取り、シーケンスヘッダ、ＧＯＰヘッダ、Ｉピクチャヘッダ等のスタートコードを検出する。スタートコードは‘０ｘ０００００１’の２４ビットのパターンで始まるため、その後のデータにより、スタートコード検出部１０１は各種ヘッダを検出し、検出したヘッダの情報をデコードする。また、スタートコード検出部１０１はマイクロコントローラ６３からデコードエラー発生の通知を受け取る。この通知を受け取ったときは、スタートコード検出部１０１はシーケンスヘッダ、ＧＯＰヘッダおよび／またはＩピクチャヘッダをサーチする。これらの少なくとも１つのヘッダのスタートコードが検出されると、スタートコード検出部１０１はマイクロコントローラ６３にスタートコードの検出を通知する。
ＶＬＣデコード部１０２は、ＶＬＣデータをデコードしてマクロブロックデータを取得する。ＭＰＥＧの画像圧縮方式においては、ＶＬＣデータを用いて符号化され、データの効率化が図られている。符号化に際しては、デコード可能な可変長符号ＶＬＣが予め規定されている。ＶＬＣデコード部１０２は、規定されていないパターンのデータを受け取ったときはデコードエラー発生の通知をマイクロコントローラ６３に出力する。上述の“０”データ７３およびシーケンスエラーデータ７４は、この「規定されていないパターン」に該当する。
マクロブロックデータは、逆量子化部１０３において逆量子化処理され、逆ＤＣＴ部１０４において逆ＤＣＴ変換処理され、動き補償部１０５において動きベクトルによる動き補償処理される。これらの処理の結果、フレームデータが得られる。フレームデータはフレームデータ記憶部６７に格納され、他のピクチャデータの参照が不要なＩピクチャデータであればそのまま出力端子から出力される。なお、逆量子化処理、逆ＤＣＴ変換処理および動き補償処理は周知であるため、本明細書では詳細な説明は省略する。
ここで、スタートコード検出部１０１およびＶＬＣデコード部１０２に関連するマイクロコントローラ６３の処理を説明する。マイクロコントローラ６３はデコードエラー発生の通知を受け取ると、そのピクチャを表示しないように、直前のピクチャヘッダ以降のデータを破棄する。Ｉピクチャの場合には、シーケンスヘッダ以降のデータ、すなわちデータストリームの最後の不完全なコンテンツデータを破棄する。このデータには、それまでデコードしたそのピクチャのデータも含まれている。また、この通知を受け取ったときは、マイクロコントローラ６３は、スタートコード検出部１０１から次のスタートコードが検出されるまではその後に受け取ったデータを破棄する。
例えば、図９に示すデータストリームの処理に際しては、ＶＬＣデコード部１０２は“０”データ７３またはシーケンスエラーデータ７４によってデコードエラー発生をマイクロコントローラ６３に通知する。マイクロコントローラ６３は、シーケンスヘッダ９０から可変長符号ＶＬＣ９３までのデータを破棄する。さらにマイクロコントローラ６３は、スタートコード検出部１０１によって次のシーケンスヘッダが検出されるまでに受け取ったデータ９４、ＶＬＣ−Ｂ２〜ＶＬＣ−Ｂ４までを破棄する。
なお、ここまではＢピクチャがそのデータの前に既に伝送されている同じＧＯＰ内のＩピクチャ等のデータを参照して構築されている場合を想定して説明しているが、“Ｏｐｅｎ  ＧＯＰ”の場合はさらに、完全に伝送されたＢピクチャでも破棄しなければならないデータが存在する。例えば、Ｉピクチャデータ７９ｂ（図７）の直前に配置されたＧＯＰヘッダが“Ｏｐｅｎ  ＧＯＰ”を示している場合には、そのＩピクチャの後に配置されているＢピクチャデータはそのＢピクチャが含まれるＧＯＰの直前のＧＯＰ内のＩピクチャおよび／またはＰピクチャを参照する場合があるため、Ｉピクチャデータ７９ｂだけではデコードできない。よって、そのＩピクチャ後のＢピクチャのデータを破棄すればよい。図５（ａ）を参照すると、Ｉピクチャ５４のデータ以降のデータが完全に取得されていた場合であってもＩピクチャ５４からデコードを開始する場合には、Ｂピクチャ５５および５６のデータを破棄する。その結果、Ｂピクチャ５５および５６は表示されなくなる。これにより、Ｉピクチャデータ後に配置されたＢピクチャデータによってデコードエラーが発生することはなく、不正規な画像の表示を避けることができる。
次に、図１１を参照しながら、再生装置１００の動作を説明する。図１１は、再生装置１００の処理の手順を示す。図１１に示す処理は、ビデオ処理の例であり、マイクロコントローラ６３の制御に基づいて行われる。図１１では、ステップＳ１１０、Ｓ１１１、Ｓ１１３、Ｓ１１４およびＳ１１５の処理は、ストリームの切り替えを行わない通常のストリーム再生処理である。
まず、通常のストリーム再生処理を説明する。ステップＳ１１０において、ストリーム抽出部６２ａがストリームＡ（ＴＳ−Ａ）を読み出す。次のステップＳ１１１において、マイクロコントローラ６３は、ストリームＡと異なるストリームＢの再生指示を受け取ったか否かを判断する。通常の再生処理では、受け取っていないと判断してステップＳ１１３に進む。ステップＳ１１３では、ダミーパケット検出部８２はダミーパケットを検出したか否かを判断する。ダミーパケットは存在しないため、ステップＳ１１４に進みストリーム分離部６４はビデオエレメンタリデータを生成して、ビデオエレメンタリストリームとしてビデオデータ記憶部６５に格納する。ステップＳ１１５では、ビデオデコーダ６６はビデオエレメンタリストリームをデコードして再生する。そして、処理は再びステップＳ１１０に戻る。
次に、ストリームの切り替えを含む際のストリーム再生処理を説明する。ステップＳ１１１において、マイクロコントローラ６３がストリームＡと異なるストリームＢの再生指示を受け取った場合には、ステップＳ１１２に進む。ステップＳ１１２では、ダミーパケット挿入部６２ｂはダミーパケットを生成してストリームＡの末尾に付加する。その後、ストリーム抽出部６２ａはストリームＢを読み出し、ステップＳ１１３に進む。ステップＳ１１３では、ダミーパケット検出部８２がダミーパケットを検出するため、ステップＳ１１６に進む。ステップＳ１１６では、ＴＳ／ＰＥＳデコーダ８３がストリームＡに関するビデオエレメンタリストリームを生成すると、エラーデータ生成部８５は、その末尾に“０”データおよびシーケンスエラーデータを挿入する。そのデータは、ビデオデータ記憶部６５に格納され、次にビデオデコーダ６６によって読み出される。
ステップＳ１１７では、ＶＬＣデコード部１０２はＶＬＣエラーを検出したか否かを判断する。検出していない場合にはステップＳ１１８に進み、検出した場合にはステップＳ１１９に進む。ステップＳ１１８では、ＶＬＣデコード部１０２はシーケンスエラーデータを検出したか否かを判断する。検出した場合にはステップＳ１１９に進み、検出していない場合にはステップＳ１２０に進む。ステップＳ１１７およびＳ１１８において複数回の判定処理を設けることにより、確実に接続点が検出される。
ステップＳ１１９では、マイクロコントローラ６３はストリームＡ最後の不完全なデータおよびストリームＢ最初の不完全なデータが存在する場合にはそれぞれを破棄する。その結果、この後はストリームＢのデコード可能なデータが処理されることになる。
次のステップＳ１２０では、ストリーム分離部６４がストリームＢのビデオエレメンタリストリームを生成し、ビデオデコーダ６６はそのビデオエレメンタリストリームをデコードして再生する。
以上の処理によれば、ストリームの切り替えがあった場合でも、接続点を確実に検出してデコードエラーの発生を回避しながら画面の乱れを抑えつつ再生を継続できる。
なお、本実施形態では、ハードディスク６１に記録されたＴＳが１つであるとし、その区間をＴＳ−ＡおよびＴＳ−Ｂとしたときの処理を説明した。しかし本発明は、ハードディスク６１に複数のＴＳが記録され、それらを連続して再生する場合であっても全く同様に適用することができる。すなわち、上述のＴＳ−ＡおよびＴＳ−Ｂが独立したデータストリームであると考えればよい。さらに、上述のＴＳ−ＡおよびＴＳ−Ｂが独立したデータストリームの一部の区間であると考えれば、本発明は、ハードディスク６１に複数のＴＳが記録され、各ＴＳの一部の区間を連続して再生する場合であっても全く同様に適用することができる。
また本実施形態では、ＴＳ−Ｂの出画開始ピクチャはＩピクチャであるとしたが、Ｉピクチャ以外のピクチャであってもよい。例えば図５におけるＰピクチャ５７から出画を開始するときには、Ｉピクチャ５４およびＰピクチャ５７のデータのみをデコードすればよい。出画に必要なピクチャに至るまでのピクチャ（図５ではＢピクチャ５５および５６）のデータはデコードしなくてもよい。なお、ストリームを接続する前後は１種類のピクチャ（例えばＩピクチャ）のデータのみを順番に接続して再生する、Ｉ再生特殊再生であってもよい。
さらに本実施形態では、ＭＰＥＧ規格によって圧縮符号化されたトランスポートストリームを例に挙げ、その規格に応じたダミーパケットやシーケンスエラーデータの値を挙げて説明した。しかし、本発明はこれらの値に限って適用されるものではなく、他の値であってもよい。また、他の規格によるデータストリームを用いることもできる。シーケンスエラーデータの値等は、その規格におけるエラーコードや他のコードを用いればよい。
また、データストリームは必ずしも記録媒体に記録されている必要はない。例えばＴＳを利用したデジタル放送をリアルタイムで受信している場合であっても、本発明を適用することができる。すなわち、デジタル放送のチャンネルの切り替えに応じて上述のダミーパケットを挿入すればよい。
データ処理装置の再生機能は、図１１に示す処理手順を規定したコンピュータプログラムに基づいて実現される。データ処理装置のコンピュータは、そのようなコンピュータプログラムを実行することによってデータ処理装置の各構成要素を動作させ、上述した処理を実現することができる。コンピュータプログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録して市場に流通され、または、インターネット等の電気通信回線を通じて伝送される。これにより、コンピュータシステムを、上述のデータ処理装置と同等の機能を有する再生装置として動作させることができる。
【産業上の利用可能性】  本発明によれば、あるデータストリームが他のデータストリームに切り替えられて再生される場合でも、接続点を確実に検出してデコードエラーの発生を回避しながら画面の乱れを抑えつつ再生を継続できるデータ処理装置が提供される。
【図１】
2004095836.tif 000003
【図２】
2004095836.tif 000004
【図３】
2004095836.tif 000005
【図４】
2004095836.tif 000006
【図５】
2004095836.tif 000007
【図６】
2004095836.tif 000008
【図７】
2004095836.tif 000009
【図８】
2004095836.tif 000010
【図９】
2004095836.tif 000011
【図１０】
2004095836.tif 000012
【図１１】
2004095836.tif 000013
【手続補正書】
【提出日】平成17年1月17日(2005.1.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンテンツデータを含むデータストリームを取得しながら、コンテンツを再生するデータ処理装置であって、
前記データストリームは複数のパケットから構成され、各パケットは前記コンテンツデータおよび前記コンテンツデータの種類を識別するための識別子を有し、前記コンテンツデータのうち、再生単位の先頭部分に対応するコンテンツデータは前記再生単位を特定するヘッダを有しており、
第１データストリームを取得し、その後、第２データストリームを取得するストリーム抽出部と、
前記複数のパケットの識別子と異なるダミー識別子を有するダミーパケットを生成し、前記第１データストリームの最終パケットと前記第２データストリームの先頭パケットとの間に挿入するパケット挿入部と、
前記識別子に基づいて種類ごとに前記コンテンツデータを分離し、前記ダミー識別子の検出に応答して前記コンテンツデータとは異なるエラーデータを挿入する分離部と、
前記コンテンツデータを前記再生単位で再生し、前記エラーデータを検出して、前記第１データストリームの最後の不完全なコンテンツデータおよび前記第２データストリームの最初のヘッダまでのコンテンツデータを破棄して再生しないデコーダと
を備えたデータ処理装置。
【請求項２】
前記データストリームにはエラーを示すエラーコードが予め規定されており、
前記分離部は前記エラーデータとして前記エラーコードを挿入する、請求項１に記載のデータ処理装置。
【請求項３】
前記分離部は、前記エラーデータとして所定長の“０”のビット列をさらに挿入し、
前記デコーダは、前記エラーコードおよび前記ビット列の一方を検出したとき、前記エラーデータを検出したと判断する、請求項２に記載のデータ処理装置。
【請求項４】
前記データストリームには、可変長符号化方式によって前記コンテンツのデータが符号化されており、
前記分離部は、前記可変長符号化方式の最大符号長以上のビット長を持つビット列を挿入する、請求項２に記載のデータ処理装置。
【請求項５】
前記コンテンツは少なくとも映像を含んでおり、
前記分離部は、映像に関する可変長符号化方式の最大符号長以上のビット長を持つビット列を挿入する、請求項４に記載のデータ処理装置。
【請求項６】
前記ストリーム抽出部は、トランスポートストリームパケットから構成された前記第１データストリームおよび前記第２データストリームを取得する、請求項１に記載のデータ処理装置。
【請求項７】
前記ストリーム抽出部は、１つのコンテンツに関するデータストリームの異なる部分を、それぞれ前記第１データストリームおよび前記第２データストリームとして取得する、請求項１に記載のデータ処理装置。
【請求項８】
前記ストリーム抽出部は、記録媒体から前記第１データストリームおよび前記第２データストリームを取得する、請求項１に記載のデータ処理装置。
【請求項９】
前記ストリーム抽出部は、放送された前記第１データストリームおよび前記第２データストリームを取得する、請求項１に記載のデータ処理装置。
【請求項１０】
コンテンツデータを含むデータストリームを取得しながら、コンテンツを再生するデータ処理方法であって、
前記データストリームは複数のパケットから構成され、各パケットは前記コンテンツデータおよび前記コンテンツデータの種類を識別するための識別子を有し、前記コンテンツデータのうち、再生単位の先頭部分に対応するコンテンツデータは前記再生単位を特定するヘッダを有しており、
第１データストリームを取得し、その後、第２データストリームを取得するステップと、
前記複数のパケットの識別子と異なるダミー識別子を有するダミーパケットを生成するステップと、
前記第１データストリームの最終パケットと前記第２データストリームの先頭パケットとの間に挿入するステップと、
前記識別子に基づいて種類ごとに前記コンテンツデータを分離するステップと、
前記ダミー識別子を検出すると前記コンテンツデータとは異なるエラーデータを挿入するステップと、
前記コンテンツデータを前記再生単位で再生するステップと、
前記エラーデータを検出すると、前記第１データストリームの最後の不完全なコンテンツデータおよび前記第２データストリームの最初のヘッダまでのコンテンツデータを破棄するステップと
を包含するデータ処理方法。
【請求項１１】
前記データストリームにはエラーを示すエラーコードが予め規定されており、
前記エラーデータを挿入するステップは、前記エラーデータとして前記エラーコードを挿入する、請求項１０に記載のデータ処理方法。
【請求項１２】
前記エラーデータを挿入するステップは、前記エラーデータとして所定長の“０”のビット列をさらに挿入し、
前記破棄するステップは、前記エラーコードおよび前記ビット列の一方を検出したとき、前記エラーデータを検出したと判断する、請求項１１に記載のデータ処理方法。
【請求項１３】
前記データストリームには、可変長符号化方式によって前記コンテンツのデータが符号化されており、
前記エラーデータを挿入するステップは、前記可変長符号化方式の最大符号長以上のビット長を持つビット列を挿入する、請求項１１に記載のデータ処理方法。
【請求項１４】
前記コンテンツは少なくとも映像を含んでおり、
前記エラーデータを挿入するステップは、映像に関する可変長符号化方式の最大符号長以上のビット長を持つビット列を挿入する、請求項１３に記載のデータ処理方法。
【請求項１５】
前記取得するステップは、トランスポートストリームパケットから構成された前記第１データストリームおよび前記第２データストリームを取得する、請求項１０に記載のデータ処理方法。
【請求項１６】
前記取得するステップは、１つのコンテンツに関するデータストリームの異なる部分を、それぞれ前記第１データストリームおよび前記第２データストリームとして取得する、請求項１０に記載のデータ処理方法。
【請求項１７】
前記取得するステップは、記録媒体から前記第１データストリームおよび前記第２データストリームを取得する、請求項１０に記載のデータ処理方法。
【請求項１８】
前記取得するステップは、放送された前記第１データストリームおよび前記第２データストリームを取得する、請求項１０に記載のデータ処理方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データストリームから映像および／または音声を再生する技術に関する。より具体的には、本発明は、同一のデータストリームの異なる部分または複数のデータストリームを、連続的に再生する際に好適な技術に関する。
【背景技術】
【０００２】
近年、デジタル技術の発達により、映像や音声等に関するコンテンツのデータはＭＰＥＧ等の規格に従って符号化され、符号化データストリームとして光ディスクやハードディスク等の記録メディアに記録されている。そして、記録する技術に対応して、そのような記録メディアから符号化データストリームを再生する技術も提案され、実用化され始めている。
【０００３】
例えば特許文献１は、記録媒体に記録された符号化データストリームを再生する再生装置を開示している。以下、図１を参照しながらこの再生装置の構成を説明する。図１は、従来の再生装置の機能ブロックの構成を示す。記録媒体１は、例えば光ディスクであり、映像データ、音声データ等のデータストリームが所定のフォーマットで記録されている。
【０００４】
再生装置の再生部２は、マイクロコントローラ３から記録媒体１のアドレスを指定され、そのアドレスに記録されているデータストリームを読み出す。再生部２は読み出したデジタル信号に対してエラー訂正処理を行った後、再生データストリームを得る。次に、ストリーム分離部４はビデオとオーディオのデータストリームを分離する。分離されたビデオデータストリームは、ビデオ信号切り替えスイッチ１２ａ、ビデオデータ記憶部５、ビデオ信号切り替えスイッチ１２ｂを経て、ビデオデコーダ６に入力される。なお、ビデオデータ記憶部５は個々にデータストリームを蓄積できる２以上の独立した記憶領域を有している。ビデオデータストリームは、一方の記憶領域を経てビデオデコーダ６に入力される。また、ストリーム分離部４によって分離されたオーディオデータストリームは、オーディオデータ記憶部９を経て、オーディオデコーダ１０に入力される。
【０００５】
ビデオデコーダ６は、デコードした映像をフレームデータ記憶部７に格納しながらビデオデータストリームをデコードして映像信号に変換し、ビデオ出力端子８から出力する。オーディオデコーダ１０はオーディオデータストリームをデコードして音声信号に変換し、音声出力端子１１から出力する。
【０００６】
再生装置は不連続なデータストリームを再生する場合がある。例えば、データストリームは記録開始から停止までの一連の動作によって記録媒体１に記録されるため、記録処理が複数回行われると２本以上のデータストリームが記録媒体１に記録される。よって、ユーザがこれらのデータストリームの連続再生を指示したときは、不連続な２本以上のデータストリームを連続して再生することになる。また、１つのデータストリームの複数の区間を連続して再生する場合にも、各区間を１つのデータストリームと考えれば不連続な２本以上のデータストリームを連続して再生すると言うことができる。後者の例は、ユーザによってプレイリストが作成され、１つのデータストリームの任意の再生区間および経路が指定されたときに相当する。
【０００７】
以下、再生装置が不連続なデータストリームを再生する際の処理を説明する。再生装置はビデオ信号切り替えスイッチ１２ａおよび１２ｂを制御して、まず第１データストリームをビデオデータ記憶部５の一方の記憶領域を介してビデオデコーダ６に伝送し、デコードする。ビデオデコーダ６が第１データストリームのデコードを終了した直後、マイクロコントローラ３はビデオ信号切り替えスイッチ１２ａおよび１２ｂを切り替える。これにより次に読み出された第２データストリームはビデオデータ記憶部５の他方の記憶領域を介してビデオデコーダ６に伝送される。よって、ビデオデコーダ６は、第１データストリームのデコード終了後すぐに第２データストリームを連続的にデコードできる。
【特許文献１】特開２００２−２８１４５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来の再生装置では、ハードウェアの増大は避けられず、また複雑な制御が要求されている。具体的には、再生装置には、データストリームを蓄積する独立した２以上の記憶領域をビデオデータ記憶部に設けなければならない。また、記憶領域を切り替えるための入力および出力用の各ビデオ信号切り替えスイッチも必要になる。そして、マイクロコントローラは各スイッチの切り替え制御を行わなければならない。
【０００９】
本発明の目的は、記憶領域およびビデオ信号切り替えスイッチを追加的に設けることなく、簡便な構成および制御により、不連続な複数のデータストリームを連続的に再生することにある。あわせて、不連続点における再生の乱れを抑えることにある。
【課題を解決するための手段】
【００１０】
本発明によるデータ処理装置は、コンテンツデータを含むデータストリームを取得しながら、コンテンツを再生する。前記データストリームは複数のパケットから構成され、各パケットは前記コンテンツデータおよび前記コンテンツデータの種類を識別するための識別子を有し、前記コンテンツデータのうち、再生単位の先頭部分に対応するコンテンツデータは前記再生単位を特定するヘッダを有する。前記データ処理装置は、第１データストリームを取得し、その後、第２データストリームを取得するストリーム抽出部と、前記複数のパケットの識別子と異なるダミー識別子を有するダミーパケットを生成し、前記第１データストリームの最終パケットと前記第２データストリームの先頭パケットとの間に挿入するパケット挿入部と、前記識別子に基づいて種類ごとに前記コンテンツデータを分離し、前記ダミー識別子の検出に応答して前記コンテンツデータとは異なるエラーデータを挿入する分離部と、前記コンテンツデータを前記再生単位で再生し、前記エラーデータを検出して、前記第１データストリームの最後の不完全なコンテンツデータおよび前記第２データストリームの最初のヘッダまでのコンテンツデータを破棄して再生しないデコーダとを備えている。
【００１１】
前記データストリームにはエラーを示すエラーコードが予め規定されており、前記分離部は前記エラーデータとして前記エラーコードを挿入してもよい。
【００１２】
前記分離部は、前記エラーデータとして所定長の“０”のビット列をさらに挿入し、前記デコーダは、前記エラーコードおよび前記ビット列の一方を検出したとき、前記エラーデータを検出したと判断してもよい。
【００１３】
前記データストリームには、可変長符号化方式によって前記コンテンツのデータが符号化されており、前記分離部は、前記可変長符号化方式の最大符号長以上のビット長を持つビット列を挿入してもよい。
【００１４】
前記コンテンツは少なくとも映像を含んでおり、前記分離部は、映像に関する可変長符号化方式の最大符号長以上のビット長を持つビット列を挿入してもよい。
【００１５】
前記ストリーム抽出部は、トランスポートストリームパケットから構成された前記第１データストリームおよび前記第２データストリームを取得してもよい。
【００１６】
前記ストリーム抽出部は、１つのコンテンツに関するデータストリームの異なる部分を、それぞれ前記第１データストリームおよび前記第２データストリームとして取得してもよい。
【００１７】
前記ストリーム抽出部は、記録媒体から前記第１データストリームおよび前記第２データストリームを取得してもよい。
【００１８】
前記ストリーム抽出部は、放送された前記第１データストリームおよび前記第２データストリームを取得してもよい。
【００１９】
本発明によるデータ処理方法は、コンテンツデータを含むデータストリームを取得しながら、コンテンツを再生する。前記データストリームは複数のパケットから構成され、各パケットは前記コンテンツデータおよび前記コンテンツデータの種類を識別するための識別子を有し、前記コンテンツデータのうち、再生単位の先頭部分に対応するコンテンツデータは前記再生単位を特定するヘッダを有している。前記データ処理方法は、第１データストリームを取得し、その後、第２データストリームを取得するステップと、前記複数のパケットの識別子と異なるダミー識別子を有するダミーパケットを生成するステップと、前記第１データストリームの最終パケットと前記第２データストリームの先頭パケットとの間に挿入するステップと、前記識別子に基づいて種類ごとに前記コンテンツデータを分離するステップと、前記ダミー識別子を検出すると前記コンテンツデータとは異なるエラーデータを挿入するステップと、前記コンテンツデータを前記再生単位で再生するステップと、前記エラーデータを検出すると、前記第１データストリームの最後の不完全なコンテンツデータおよび前記第２データストリームの最初のヘッダまでのコンテンツデータを破棄するステップとを包含する。
【００２０】
前記データストリームにはエラーを示すエラーコードが予め規定されており、前記エラーデータを挿入するステップは、前記エラーデータとして前記エラーコードを挿入してもよい。
【００２１】
前記エラーデータを挿入するステップは、前記エラーデータとして所定長の“０”のビット列をさらに挿入し、前記破棄するステップは、前記エラーコードおよび前記ビット列の一方を検出したとき、前記エラーデータを検出したと判断してもよい。
【００２２】
前記データストリームには、可変長符号化方式によって前記コンテンツのデータが符号化されており、前記エラーデータを挿入するステップは、前記可変長符号化方式の最大符号長以上のビット長を持つビット列を挿入してもよい。
【００２３】
前記コンテンツは少なくとも映像を含んでおり、前記エラーデータを挿入するステップは、映像に関する可変長符号化方式の最大符号長以上のビット長を持つビット列を挿入してもよい。
【００２４】
前記取得するステップは、トランスポートストリームパケットから構成された前記第１データストリームおよび前記第２データストリームを取得してもよい。
【００２５】
前記取得するステップは、１つのコンテンツに関するデータストリームの異なる部分を、それぞれ前記第１データストリームおよび前記第２データストリームとして取得してもよい。
【００２６】
前記取得するステップは、記録媒体から前記第１データストリームおよび前記第２データストリームを取得してもよい。
【００２７】
前記取得するステップは、放送された前記第１データストリームおよび前記第２データストリームを取得してもよい。
【発明の効果】
【００２８】
本発明によれば、あるデータストリームが他のデータストリームに切り替えられて再生される場合でも、接続点を確実に検出してデコードエラーの発生を回避しながら画面の乱れを抑えつつ再生を継続できるデータ処理装置が提供される。
【発明を実施するための最良の形態】
【００２９】
以下、添付の図面を参照しながら、本発明によるデータ処理装置の実施形態である再生装置を説明する。
【００３０】
まず初めに、本実施形態による再生装置において処理の対象となるデータストリームのデータ構造を説明し、その後、再生装置の構成および動作を説明する。
【００３１】
図２は、ＭＰＥＧ−２トランスポートストリーム２０のデータ構造を示す。ＭＰＥＧ−２トランスポートストリーム２０（以下「ＴＳ２０」と記述する）は、複数のＴＳオブジェクトユニット(TS OBject Unit;ＴＯＢＵ)２１を含み、そのＴＯＢＵ２１は１以上のトランスポートパケット（ＴＳパケット）から構成されている。ＴＳパケットは、例えば、圧縮されたビデオデータが格納されたビデオＴＳパケット（Ｖ＿ＴＳＰ）３０、圧縮されたオーディオデータが格納されたオーディオＴＳパケット（Ａ＿ＴＳＰ）３１の他、番組表（プログラム・アソシエーション・テーブル；ＰＡＴ）が格納されたパケット（ＰＡＴ＿ＴＳＰ）、番組対応表（プログラム・マップ・テーブル；ＰＭＴ）が格納されたパケット（ＰＭＴ＿ＴＳＰ）およびプログラム・クロック・リファレンス（ＰＣＲ）が格納されたパケット（ＰＣＲ＿ＴＳＰ）等を含む。各パケットのデータ量は１８８バイトである。
【００３２】
以下、本発明の処理に関連するビデオＴＳパケットおよびオーディオＴＳパケットを説明する。図３（ａ）はビデオＴＳパケット３０のデータ構造を示す。ビデオＴＳパケット３０は、４バイトのトランスポートパケットヘッダ３０ａ、および、１８４バイトのビデオデータ３０ｂを有する。一方、図３（ｂ）は、オーディオＴＳパケット３１のデータ構造を示す。オーディオＴＳパケット３１も同様に、４バイトのトランスポートパケットヘッダ３１ａ、および、１８４バイトのオーディオデータ３１ｂを有する。
【００３３】
上述の例から理解されるように、一般にＴＳパケットは４バイトのトランスポートパケットヘッダと、１８４バイトのエレメンタリデータとから構成されている。パケットヘッダには、そのパケットの種類を特定するパケット識別子（Packet ID；ＰＩＤ）が記述されている。例えば、ビデオＴＳパケットのＰＩＤは“０ｘ００２０”であり、オーディオＴＳパケットのＰＩＤは“０ｘ００２１”である。エレメンタリデータは、ビデオデータ、オーディオデータ等のコンテンツデータや、再生を制御するための制御データ等である。どのようなデータが格納されているかは、パケットの種類に応じて異なる。なお、ＴＳパケットのＴＳパケットヘッダの後のデータ格納領域は、ビデオデータ、オーディオデータ等のコンテンツデータが格納されるときはＴＳパケットの「ペイロード」と呼ばれ、制御データが格納されるときは「アダプテーションフィールド」と呼ばれる。本実施形態による処理の主要な特徴は、ＴＳパケットのペイロードを利用した処理にある。
【００３４】
なお、図２、図３（ａ）および図３（ｂ）はトランスポートストリームに関するデータ構造の例であるが、このデータ構造は、プログラムストリームにおけるパックにも同様に適用できる。パックでは、パケットヘッダに続けてデータが配置されているからである。「パック」は、パケットの１つの例示的な形態として知られている。ただし、パケットヘッダの前にはパックヘッダが付加され、パックのデータ量は２０４８キロバイトである等の点においてパケットと相違している。
【００３５】
以下、本明細書では、ビデオを例に挙げて本発明の実施形態による処理を説明する。
【００３６】
図４（ａ）〜４（ｄ）は、ビデオＴＳパケットからビデオピクチャを再生する際に構築されるストリームの関係を示す。図４（ａ）に示すように、ＴＳ４０は、ビデオＴＳパケット４０ａ〜４０ｄを含む。なお、ＴＳ４０には、他のパケットも含まれ得るが、ここではビデオＴＳパケットのみを示している。ビデオＴＳパケットは、ヘッダ４０ａ−１に格納されたＰＩＤによって容易に特定される。
【００３７】
ビデオデータ４０ａ−２等の各ビデオＴＳパケットのビデオデータから、パケット化エレメンタリストリームが構成される。図４（ｂ）は、パケット化エレメンタリストリーム（ＰＥＳ）４１のデータ構造を示す。ＰＥＳ４１は、複数のＰＥＳパケット４１ａ、４１ｂ等から構成される。ＰＥＳパケット４１ａは、ＰＥＳヘッダ４１ａ−１およびピクチャデータ４１ａ−２から構成されており、これらのデータがビデオＴＳパケットのビデオデータとして格納されている。
【００３８】
ピクチャデータ４１ａ−２は、各ピクチャのデータを含んでいる。ピクチャデータ４１ａ−２から、エレメンタリストリームが構成される。図４（ｃ）は、エレメンタリストリーム（ＥＳ）４２のデータ構造を示す。ＥＳ４２は、ピクチャヘッダ、および、フレームデータまたはフィールドデータの組を複数有している。なお、「ピクチャ」とは、一般にフレームおよびフィールドのいずれも含む概念として用いられるが、以下ではフレームを表すとする。「ピクチャ」はビデオに関する最小の再生単位である。
【００３９】
図４（ｃ）に示すピクチャヘッダ４２ａには、その後に配置されたフレームデータ４２ｂのピクチャ種別を特定するピクチャヘッダコードが記述され、ピクチャヘッダ４２ｃにはフレームデータ４２ｄのピクチャ種別を特定するピクチャヘッダコードが記述されている。種別とは、Ｉピクチャ（Ｉフレーム）、Ｐピクチャ（Ｐフレーム）またはＢピクチャ（Ｂフレーム）を表す。種別がＩフレームのときのピクチャヘッダコードは、例えば１６進数にして"00_00_01_00_00_8b"である。
【００４０】
なお、ピクチャヘッダの前にさらにシーケンスヘッダ（Ｓｅｑ−Ｈ）またはＧＯＰヘッダ（ＧＯＰ−Ｈ）が記述されることがある。ＧＯＰヘッダ（ＧＯＰ−Ｈ）は、Ｉピクチャを先頭にした複数のピクチャからなる再生単位（グループ・オブ・ピクチャ（ＧＯＰ））を特定するヘッダである。また、シーケンスヘッダ（Ｓｅｑ−Ｈ）は、１以上のＧＯＰからなる再生単位（シーケンス）を特定するためのヘッダである。
【００４１】
フレームデータ４２ｂ、４２ｄ等は、そのデータのみによって、または、そのデータとその前および／または後に復号化されるデータとによって構築可能な１枚分のフレームのデータである。図４（ｄ）は、フレームデータ４２ｂから構築されるピクチャ４３ａおよびフレームデータ４２ｄから構築されるピクチャ４３ｂを示している。
【００４２】
例えば、ＭＰＥＧ−２規格のメインプロファイルにおいて採用されている双方向符号化方式によれば、映像データには、そのデータのみで完全な１枚のピクチャが構築可能なデータ（Ｉピクチャデータ）と、そのデータのみでは完全な１枚のピクチャが構築できないが、他のピクチャのデータを参照することによって完全な１枚のピクチャが構築可能なデータ（Ｐ、Ｂピクチャデータ）とが存在する。
【００４３】
より詳しく説明すると、あるＧＯＰ内のＰおよびＢピクチャ全てが、同じＧＯＰ内のＩピクチャまたはＰピクチャのみを参照して構築される場合がある（このデータ構造は“Ｃｌｏｓｅｄ  ＧＯＰ”と呼ばれる）。また、Ｂピクチャの中には、そのＢピクチャが属するＧＯＰの直前のＧＯＰ内のＩピクチャまたはＰピクチャを参照するものもある（このデータ構造は”Ｏｐｅｎ  ＧＯＰ”と呼ばれる）。
【００４４】
そして、ピクチャデータの配置と出画する順序も種々規定されている。ここで、後者（”Ｏｐｅｎ  ＧＯＰ”）での出画順序を実現するための各ピクチャのデータ配置および出画順序を、図５（ａ）および５（ｂ）を参照しながら説明する。
【００４５】
図５（ａ）はピクチャデータの配置の順序を示す。また、図５（ｂ）はピクチャの再生出力される順序を示す。図５（ａ）および５（ｂ）では、“Ｉ”、“Ｐ”、“Ｂ”はそれぞれＩピクチャ、ＰピクチャおよびＢピクチャを示している。各ピクチャのデータは図４（ｃ）のＥＳ４２を構成する。なお、図５（ａ）において、Ｉピクチャ５４から次のＩピクチャの手前のＢピクチャ６０までを１ＧＯＰとする。
【００４６】
図５（ａ）および５（ｂ）から理解されるように、ピクチャデータの配置順序と出画順序とは異なっている。例えばＩピクチャ５４のピクチャデータは、Ｂピクチャ５５、５６のピクチャデータよりも前に配置されているが、Ｉピクチャ５４の出画はＢピクチャ５５、５６の出画の後である。また、Ｐピクチャ５７のピクチャデータと、その後の２枚のＢピクチャのピクチャデータとの関係も同様である。出画の順序は、２枚のＢピクチャが先であり、Ｐピクチャ５７はその後である。
【００４７】
図５（ａ）において、Ｂピクチャ５５は、前方向のＰピクチャ５３および出画順では後ろ方向になるＩピクチャ５４との両方向の差分データに基づいてエンコードされている。Ｂピクチャ５６も同様である。ここでは、いずれのＢピクチャ５５および５６も、直前のＧＯＰ内のＰピクチャが参照されている。Ｂピクチャ５５、５６のデコード時には、元のピクチャ５３、５４のピクチャデータが参照される。参照される元のピクチャは参照ピクチャと呼ばれる。参照ピクチャのピクチャデータは、バッファ等に格納されて他のピクチャのデコード時に参照される。
【００４８】
また、Ｐピクチャ５７は直前のＩピクチャ５４との差分に基づいてエンコードされている。なお、Ｐピクチャ５８は直前のＰピクチャ５７との差分に基づいてエンコードされている。Ｐピクチャ５８のデコード時には参照ピクチャであるＰピクチャ５７のピクチャデータが必要になる。
【００４９】
次に、図６を参照しながら、本実施形態による再生装置の構成および動作を説明する。上述のように、本実施形態では主としてビデオを例に挙げて再生装置の各構成要素の機能を説明する。なお、本実施形態では記録媒体はハードディスクであるとする。
【００５０】
再生装置は、ＴＳパケットを取得し、取得したＴＳパケットに基づいてＥＳ４２（図４（ｃ））までシステムデコードし、その後、復元されたピクチャを出力する。以下では一般的な復号および出画処理を説明するために、１ＧＯＰ内のデータによって全てのピクチャが構築できる”Ｃｌｏｓｅｄ  ＧＯＰ”のデータ構造に基づいて説明する。
【００５１】
図６は、再生装置１００の機能ブロックの構成を示す。再生装置１００は、ハードディスク６１と、再生部６２と、マイクロコントローラ６３と、ストリーム分離部６４と、ビデオデータ記憶部６５と、ビデオデコーダ６６と、フレームデータ記憶部６７と、ビデオ出力端子６８と、オーディオデータ記憶部６９と、オーディオデコーダ７０と、オーディオ出力端子７１とを有する。なお、ハードディスク６１に対してデータを書き込みおよび読み出すためには、ハードディスク６１を回転させるモータ、磁気ヘッド等を備えたドライブ装置が必要であるが、図６では省略している。記録媒体としては、取り外しできないハードディスク６１に代えてリムーバブルなメディア、例えばＢｌｕ−ｒａｙディスク（ＢＤ）等でもよいが、その場合には再生装置１００固有の構成要素でなくてもよい。
【００５２】
再生装置１００は、マイクロコントローラ６３の制御に基づいて、ハードディスク６１から映像、音声等のコンテンツに関するコンテンツデータを含むＴＳを取得しながらコンテンツを再生することができる。本明細書では、ハードディスク６１に記録されたＴＳは１つであるとし、そのＴＳの一部の区間を再生した後、不連続な他の区間を再生する例を説明する。この例は、ユーザによってプレイリストが作成され、１つのデータストリームの任意の再生区間および経路が指定されたときに相当する。各再生区間は本来的には１つのＴＳの一部であるが、各部分区間は別個のＴＳ（ＴＳ−ＡおよびＴＳ−Ｂ）として取り扱うことができる。
【００５３】
以下、再生装置１００の機能の概略を説明する。再生装置１００の再生部６２は、ハードディスク６１からＴＳ−Ａを取得し、その後、ＴＳ−Ｂを取得する。そして、再生部６２は、各ＴＳ内の各パケット識別子（ＰＩＤ）と異なるダミー識別子を有するダミーパケットを生成し、ＴＳ−Ａの最終パケットと、後続のＴＳ−Ｂの先パケットとの間に挿入する。ストリーム分離部６４は、パケット識別子（ＰＩＤ）に基づいて、パケットの種別ごとにコンテンツデータをビデオおよびオーディオのエレメンタリデータに分離する。またストリーム分離部６４は、ダミー識別子の検出に応答してコンテンツデータとは異なるエラーデータを挿入する。デコーダ６６、７０は、コンテンツデータを再生単位で再生し、エラーデータを検出してＴＳ−Ａの最後の不完全なコンテンツデータおよびＴＳ−Ｂの最初のヘッダまでのコンテンツデータを破棄して、再生を実施しない。これにより、２つのデータストリーム（ＴＳ−ＡおよびＴＳ−Ｂ）の境界点を確実にデコーダ６６、７０に伝えることができる。
【００５４】
再生装置１００の各構成要素の機能は以下のとおりである。なお、各構成要素は、マイクロコントローラ６３からの指示に基づいて動作している。
【００５５】
再生部６２は、ハードウェアの構成としては、磁気ヘッドや信号等化回路、エラー訂正回路（図示せず）等を含んでいる。再生部６２は、ストリーム抽出部６２ａとダミーパケット挿入部６２ｂとを有する。ストリーム抽出部６２ａはハードディスク６１のアドレスをマイクロコントローラ３から受け取り、そのアドレスからデータを読み出す。そして、エラー訂正処理を行った後、ＴＳ（ＴＳ−Ａ、ＴＳ−Ｂ等）を得る。
【００５６】
ダミーパケット挿入部６２ｂは、ビデオＴＳパケットやオーディオＴＳパケット等のパケットの識別子（ＰＩＤ）と異なるダミー識別子を有するダミーパケットを生成して、ＴＳ−ＡとＴＳ−Ｂとの間に挿入する。
【００５７】
ここで図７を参照しながらダミーパケットを説明する。図７は、再生装置１００において処理されるＴＳと、ＴＳから得られたＥＳとの関係を示している。図７のＴＳに注目すると、ダミーパケット７２は、ＴＳ−Ａの最終パケット７５とＴＳ−Ｂの先頭パケット７７との間に挿入されていることが理解される。図７にはまた、ダミーパケット７２のデータ構造も示されている。ダミーパケット７２はパケットヘッダ７２ａおよびペイロード７２ｂから構成されており、ビデオＴＳパケット３０（図３（ａ））やオーディオＴＳパケット３１（図３（ｂ））等と同様のデータ構造を持っている。
【００５８】
パケットヘッダ７２ａには、ダミーパケット７２を他のパケットと識別するための識別子（ＰＩＤ）が記述されている。例えば、この識別子（ＰＩＤ）は“０ｘ１ＦＦＦ”であり、先に例示したビデオＴＳパケットおよびオーディオＴＳパケットの各識別子（ＰＩＤ）とは異なっている。また、ペイロード７２ｂは、予め定められた所定パターンのデータ列であるダミーデータが格納されている。ダミーデータは有意なデータ列ではなく、再生の対象ではない。例えば、通常はスタッフィングの目的でしか用いられないＮＵＬＬ（ヌル）パケットをダミーパケットとし、ＮＵＬＬパケットのＰＩＤと、それに続く特定のパターンをダミーパケットとして埋め込んでおくとよい。
【００５９】
ダミーパケット７２をＴＳ−Ａの最終パケット７５とＴＳ−Ｂの先頭パケット７７との間に挿入すると、以下の問題が生じる。すなわち、図４（ａ）〜（ｄ）の記載および各図に対応する説明から明らかなように、各ビデオＴＳパケットのビデオデータには、ＰＥＳヘッダ、ピクチャヘッダ、フレームデータ等が分割されて格納されている。例えば、１枚のフレームを再生するために必要なデータがＮ個のビデオＴＳパケットに分割されているとする。すると、ＴＳ−ＡのＮ個のビデオＴＳパケットの取得が完了する前にダミーパケット７２が挿入されると、ＴＳ−Ａのそのフレームはデータが完全に揃わないため再生することができない場合がある。図７の下段に例示するように、ＴＳ−Ａから得られたＥＳ７６には再生できないＩピクチャデータ７６ｂが含まれている。本明細書では、この再生できないピクチャを「不完全な」データと称している。
【００６０】
同様に、ダミーパケット７２が挿入された直後のＴＳ−ＢのビデオＴＳパケットが、ＴＳ−Ｂの伝送中のＮ個のビデオＴＳパケットの途中のパケットであるときには、それ以前に伝送されたビデオＴＳパケット内のフレームデータが取得できないため再生することができない。図７の下段には、ＴＳ−Ｂから得られたＥＳ７９に含まれる、再生できない一部のＢピクチャデータ７８を例示する。
【００６１】
また、ＴＳパケットのデータ長は１８８バイトに固定されているため、１枚のフレームを再生するために必要なデータが例えばＮ個のビデオＴＳパケットに分割された結果、フレーム前後の区切りが１個目またはＮ個目のＴＳパケットの区切りに一致しないこともあり得る。例えばダミーパケット７２が挿入された直前のＴＳ−Ａ最後のＴＳパケットが、上記したＮ個目のＴＳパケットであっても、そのパケットのビデオデータに図７のＥＳに示すＩピクチャデータ７６ｂのような後続のピクチャデータの一部が含まれることがある。この一部のピクチャデータは再生されないため、不完全なデータである。同様に、ダミーパケット７２が挿入された直後のＴＳ−Ｂの先頭のＴＳパケットに、途中まで再生できない不完全なピクチャデータが図７のＥＳに示すＢピクチャデータ７８ｂと全く同様に存在することもあり得る。なお、上述の“Ｎ”の値は通常は各ピクチャデータごとに変化している。
【００６２】
このような再生できないフレームデータに対して再生処理を行うと、表示されるフレーム画像が乱れたり、デコードエラーが発生する。
【００６３】
そこで、上述の問題を回避するため、ストリーム分離部６４およびビデオデコーダ６６において、完全に取得できなかったフレームデータを誤って再生しないための処理を行う。
【００６４】
以下、図８を参照しながらストリーム分離部６４の構成および機能を説明する。図８は、ストリーム分離部６４の機能ブロックの構成を示す。ストリーム分離部６４は、ＰＩＤ検出部８１と、ダミーパケット検出部８２と、ＴＳ／ＰＥＳデコーダ８３と、スイッチ８４ａおよび８４ｂと、エラーデータ生成部８５とを有する。
【００６５】
ＰＩＤ検出部８１は、ＴＳ−Ａ、ダミーパケット７２およびＴＳ−Ｂから構成される一連のデータストリーム（図７上段）を受け取って、各パケットのパケットヘッダを解析して識別子（ＰＩＤ）を検出する。検出された識別子（ＰＩＤ）はマイクロコントローラ６３に送られる。各パケットは種類に応じて異なる識別子（ＰＩＤ）を有するため、マイクロコントローラ６３は識別子（ＰＩＤ）の値に応じて、そのパケットがペイロード領域にどの種類のデータを格納しているかを判別できる。なお、ＰＩＤ検出部８１は、ビデオＴＳパケット３０、オーディオＴＳパケット３１およびダミーパケット７２のみならず、図２に示す番組表パケット（ＰＡＴ＿ＴＳＰ）および番組対応表パケット（ＰＭＴ＿ＴＳＰ）等の個別の識別子（ＰＩＤ）を検出することもできる。
【００６６】
次に、ダミーパケット検出部８２は、ダミーＰＩＤが検出された場合においてそのパケットのペイロードを解析して特定のダミーデータが存在するか否かを判別し、そのパケットがダミーパケット７２であるか否かを検出する。これにより、ダミーパケット７２を確実に検出できる。なお、ダミーパケット検出部８２はダミーＰＩＤの検出の有無にかかわらずダミーデータの検出を行ってもよい。このような処理は識別子（ＰＩＤ）のみではダミーパケットを特定して検出できなかった場合に特に有効である。ダミーパケット検出部８２は、ダミーデータが存在する場合にはダミーパケット７２を検出したと判断する。ダミーデータ７２の検出は、そのパケットの位置において、データストリームが不連続であることを示している。マイクロコントローラ６３は、ダミーパケット検出部８２からダミーパケット７２の検出の通知を得ると、そのパケット位置において、ＴＳ−ＡがＴＳ−Ｂに切り替わっていると判断できる。
【００６７】
ＴＳ／ＰＥＳデコーダ８３は、ビデオＴＳパケットおよびオーディオＴＳパケット等のペイロードに格納されたデータに基づいて、エレメンタリストリームのレベルまでシステムデコードを行ってデータを出力する。ただし、上述のようにダミーパケット７２に格納されたダミーデータは有意のデータではなく再生の対象にはならないため、デコード処理は行われずそのまま出力される。
【００６８】
ＴＳ／ＰＥＳデコーダ８３の処理を、例えば図４（ａ）〜４（ｃ）に示すビデオについて説明する。ＴＳ／ＰＥＳデコーダ８３はビデオＴＳパケット４０ａ〜４０ｄのパケットヘッダを除去してペイロードを取得する。そしてＴＳ／ＰＥＳデコーダ８３は、そのペイロードにＰＥＳヘッダが存在する場合には、そのＰＥＳヘッダを除去する。これにより、ＴＳ／ＰＥＳデコーダ８３はエレメンタリデータを得ることができる。一方、ダミーパケットに対しては、ＴＳ／ＰＥＳデコーダ８３はパケットヘッダを除去して得られたダミーデータをそのまま出力する。
【００６９】
なお、ＴＳ／ＰＥＳデコーダ８３の処理後に出力されるデータは、図４（ｃ）に示すエレメンタリストリーム４２であるとは限らない。ストリームにはビデオＴＳパケットの他にオーディオＴＳパケットも含まれているからである。エレメンタリストリーム４２は、後述のビデオデータ記憶部６５に格納されることによって得られる。オーディオに関するエレメンタリストリームも同様に、オーディオデータ記憶部６９に格納される。
【００７０】
スイッチ８４ａは、ＰＩＤ検出部８１から識別子（ＰＩＤ）の通知を受けたマイクロコントローラ６３からの指示に基づいてデータの伝送経路を切り替える。すなわち、スイッチ８４ａは、処理中のＴＳパケットの識別子（ＰＩＤ）がビデオを示す場合には、データがスイッチ８４ａに伝送されるように経路を形成する。一方、オーディオを示す場合には、データが端子８６ｂに伝送されるように経路を形成する。端子８６ｂはオーディオデータ記憶部６９と接続されており、オーディオエレメンタリストリームとしてオーディオデータ記憶部６９に格納される。
【００７１】
スイッチ８４ｂもまた、マイクロコントローラ６３からの指示に基づいてデータの伝送経路を切り替える。スイッチ８４ｂは通常、スイッチ８４ａを経て送られてきたＴＳ／ＰＥＳデコーダ８３からのエレメンタリデータを、端子８６ａに出力するように経路を形成している。しかし、ダミーパケット検出部８２においてダミーパケットが検出されたときは、ダミーデータがスイッチ８４ｂに入力されている期間中、スイッチ８４ｂはエラーデータ生成部８５からのデータを端子８６ａに出力するように経路を形成している。端子８６ａはビデオデータ記憶部６５と接続されており、ビデオエレメンタリストリームとしてビデオデータ記憶部６５に格納される。
【００７２】
エラーデータ生成部８５は、“０”のみからなる所定データ長のデータ（“０”データ）と、特定の値を示す所定データ長のシーケンスエラーデータ（sequence_error）を挿入する。例えば“０”データのデータ長は、考えられる可変長符号（ＶＬＣ）（後述）の最大長と同じ、またはそれ以上である。エラーデータ生成部８５は、スイッチ８４ｂがエラーデータ生成部８５側に切り替わったときに、“０”データおよびシーケンスエラーデータをこの順序で出力する。
【００７３】
次に、図７および図９を参照しながら、上述のストリーム分離部６４から得られるエレメンタリストリーム（ＥＳ）を説明する。図７の下段は、ＴＳに基づいて得られたＥＳを示している。ただし、図示されているのはビデオに関するＥＳであり、ビデオデータ記憶部６５に格納された状態のデータ構造である。
【００７４】
ＥＳは、図７の左側から右側に向かってストリーム分離部６４から出力され、構築されたとする。まず、ＥＳにはＢピクチャに関するデータ、すなわちピクチャヘッダ（ＰＩＣ−Ｈ）に続きＢピクチャデータが配置されている。Ｂピクチャデータに続いては、Ｉピクチャが配置されている。各種ヘッダ７６ａは、Ｉピクチャヘッダの他に、例えば上述のシーケンスヘッダ、ＧＯＰヘッダを含んでいる。
【００７５】
各種ヘッダ７６ａに続きＩピクチャデータ７６ｂが配置されている。ただし、ビデオＴＳパケット７５に格納されていたＩピクチャデータは１枚のＩピクチャを構成するデータのうちの一部であり、全部ではない。Ｉピクチャに関するヘッダおよびピクチャデータは、例えば２０個のビデオＴＳパケットにわたって格納されることもあるため、１枚のＩピクチャを構成するデータが完全に得られる前にＴＳ−ＡがＴＳ−Ｂに切り替えられることは十分想定される。
【００７６】
Ｉピクチャデータ７６ｂの後ろで、かつ、ダミーパケット７２が挿入されていた範囲には、“０”データ７３およびシーケンスエラーデータ７４が配置されている。データ７３および／または７４の存在を検出したときは、この位置においてＴＳ−ＡがＴＳ−Ｂに切り替えられたことを意味する。本明細書では、データ７３および７４が存在している位置を、便宜的に「ストリーム接続点」と呼ぶ。
【００７７】
ストリーム接続点におけるシーケンスエラーデータ７４の後には、ＴＳ−Ｂを構成する不完全なピクチャデータ７８が格納されている。このＢピクチャデータ７８は、Ｂピクチャのピクチャヘッダを含むとは限らない。ＴＳ−Ｂの任意の位置においてＴＳ−Ａとの切り替えが行われ得るため、エレメンタリデータのみを格納するパケットが存在するからである。
【００７８】
ＴＳ−ＢのＢピクチャデータ７８の次には、図７の例では各種ヘッダ７９ａおよびＩピクチャデータ７９ｂが配置されている。このＩピクチャデータ７９ｂは、１枚の完全なＩピクチャを出画することができるデータである。なお、このＩピクチャデータ７９ｂの後に伝送されるピクチャデータ（例えばＢピクチャデータ）は、Ｉピクチャデータ７９ｂ等を参照して再生することができる。
【００７９】
図７の斜線を付した一部のＩピクチャデータ７６ｂおよびＢピクチャデータは、それぞれを出画することはできない。その理由は、すべてのピクチャデータが揃わなければ１枚のピクチャとして出画できないからである。これにより、“０”データ７３およびシーケンスエラーデータ７４が存在する位置（ストリーム接続点）の前後には再生に用いることができないデータが存在していることになる。
【００８０】
次に、図９を参照しながら、ストリーム接続点におけるデータ構造を詳細に説明する。図９は、ストリーム切り替え点前後のデータ配列を示す。再生に用いることができないＩピクチャデータ７６ｂから、“０”データ７３、シーケンスエラーデータ７４およびＢピクチャデータ７８までのデータが示されている。Ｉピクチャデータ７６ｂの先頭部には、シーケンスヘッダ（およびシーケンスエクステンションデータ）９０、ＧＯＰヘッダ９１およびピクチャヘッダ９２を含む各種ヘッダ７６ａが存在する。その後に、Ｉピクチャデータとしてスライスヘッダおよびマクロブロック７６ｂが配置されている。Ｉピクチャデータを構成するスライスヘッダおよびマクロブロック７６ｂは、ビデオの符号化データである可変長符号ＶＬＣ（Variable Length Code）を含んでいる。図９には、可変長符号ＶＬＣ−Ｉ０、Ｉ１、Ｉ２およびＩ３が示されている。そして、次の可変長符号ＶＬＣ９３において、ＴＳ−Ａの最終ＴＳパケットが終了している。可変長符号ＶＬＣ９３の残り部分はＴＳ−Ａ中の次のビデオＴＳパケット（図示せず）に格納されていたが、ＴＳ−Ｂへの切り替えのため存在しない。
【００８１】
可変長符号ＶＬＣ９３の後に、“０”データ７３およびシーケンスエラーデータ７４が配置されている。図９では可変長符号ＶＬＣ９３と“０”データ７３との間が開いているが、これは記載の便宜のためである。実際は可変長符号ＶＬＣ９３と“０”データ７３とは連続して配置されている。
【００８２】
続いて、ＴＳ−ＢのＢピクチャデータ７８のデータが配置されている。先頭の可変長符号ＶＬＣ９４は、実際には可変長符号として機能することはない。可変長符号の一部にしか過ぎず、復号できないからである。可変長符号ＶＬＣ９４の前に本来存在するはずのデータはＴＳ−Ａからの切り替えの前に伝送されており、このストリーム内には存在しない。可変長符号ＶＬＣ９４の後には、可変長符号ＶＬＣ−Ｂ２、Ｂ３、Ｂ４が存在している。これらはそれぞれ復号可能である。
【００８３】
ここで“０”データ７３およびシーケンスエラーデータ７４を設けた意義を説明する。まず、“０”データ７３およびシーケンスエラーデータ７４の両方を設けない場合には、可変長符号ＶＬＣ９３と可変長符号ＶＬＣ９４が接続され、連続したデータとなる。その結果、可変長符号ＶＬＣとして誤認識され、後続のビデオデコーダ６６においてデコードエラーを引き起こしてしまう。そのため、シーケンスエラーデータ７４を設けている。シーケンスエラーデータ７４は、例えば“０ｘ０００００１ｂ４”であり、このデータが検出されると、このデータは必ずエラーであることを示している。
【００８４】
次に、シーケンスエラーデータ７４のみを設け、“０”データ７３を設けない場合を考える。シーケンスエラーデータ７４のみによってストリーム接続点を識別することも可能な場合がある。しかし、“０”データ７３が存在しない場合には、直前の可変長符号ＶＬＣ９３とシーケンスエラーデータ７４とが接続され、１つの可変長符号ＶＬＣとして誤認識されることがある。すなわち、シーケンスエラーデータ７４として認識されなくなる場合がある。よって、このような誤認識の発生を防ぐために“０”データ７３を設けている。ただし、可変長符号ＶＬＣ−Ｉ３と“０”データ７３とが接続されることによって同様の誤認識の発生も避ける必要がある。よって“０”データ７３のデータ長は、考えられる可変長符号ＶＬＣの最大長と同じ、またはそれ以上にしている。ビデオデコーダ６６は“０”データ７３を受け取ると、存在しない可変長符号であることを検出できる。
【００８５】
“０”データ７３およびシーケンスエラーデータ７４を設けることにより、ストリーム接続点において、後続のビデオデコーダ６６は可変長符号ＶＬＣ−Ｉ３と“０”データ７３とが接続されたことに起因するＶＬＣエラーを検出し、または、シーケンスエラーデータ７４に基づくエラーを検出できる。ビデオデコーダ６６は接続点であることを確実に認識できる。
【００８６】
次に、ビデオデコーダ６６（図６）の処理を説明する。ビデオデコーダ６６は、図７に示すＥＳをビデオデータ記憶部６５から順次読み出してデコードし、その結果得られた各ピクチャのデータ（フレームデータ）をフレームデータ記憶部６７に格納しながら、完全なフレームデータが得られるとビデオ出力端子から出力する。
【００８７】
図１０は、ビデオデコーダ６６の機能ブロックの構成を示す。ビデオデコーダ６６は、スタートコード検出部１０１と、ＶＬＣデコード部１０２と、逆量子化部１０３と、逆ＤＣＴ部１０４と、動き補償部１０５とを有する。
【００８８】
スタートコード検出部１０１は、ビデオＥＳ入力端子からビデオＥＳを受け取り、シーケンスヘッダ、ＧＯＰヘッダ、Ｉピクチャヘッダ等のスタートコードを検出する。スタートコードは‘０ｘ０００００１’の２４ビットのパターンで始まるため、その後のデータにより、スタートコード検出部１０１は各種ヘッダを検出し、検出したヘッダの情報をデコードする。また、スタートコード検出部１０１はマイクロコントローラ６３からデコードエラー発生の通知を受け取る。この通知を受け取ったときは、スタートコード検出部１０１はシーケンスヘッダ、ＧＯＰヘッダおよび／またはＩピクチャヘッダをサーチする。これらの少なくとも１つのヘッダのスタートコードが検出されると、スタートコード検出部１０１はマイクロコントローラ６３にスタートコードの検出を通知する。
【００８９】
ＶＬＣデコード部１０２は、ＶＬＣデータをデコードしてマクロブロックデータを取得する。ＭＰＥＧの画像圧縮方式においては、ＶＬＣデータを用いて符号化され、データの効率化が図られている。符号化に際しては、デコード可能な可変長符号ＶＬＣが予め規定されている。ＶＬＣデコード部１０２は、規定されていないパターンのデータを受け取ったときはデコードエラー発生の通知をマイクロコントローラ６３に出力する。上述の“０”データ７３およびシーケンスエラーデータ７４は、この「規定されていないパターン」に該当する。
【００９０】
マクロブロックデータは、逆量子化部１０３において逆量子化処理され、逆ＤＣＴ部１０４において逆ＤＣＴ変換処理され、動き補償部１０５において動きベクトルによる動き補償処理される。これらの処理の結果、フレームデータが得られる。フレームデータはフレームデータ記憶部６７に格納され、他のピクチャデータの参照が不要なＩピクチャデータであればそのまま出力端子から出力される。なお、逆量子化処理、逆ＤＣＴ変換処理および動き補償処理は周知であるため、本明細書では詳細な説明は省略する。
【００９１】
ここで、スタートコード検出部１０１およびＶＬＣデコード部１０２に関連するマイクロコントローラ６３の処理を説明する。マイクロコントローラ６３はデコードエラー発生の通知を受け取ると、そのピクチャを表示しないように、直前のピクチャヘッダ以降のデータを破棄する。Ｉピクチャの場合には、シーケンスヘッダ以降のデータ、すなわちデータストリームの最後の不完全なコンテンツデータを破棄する。このデータには、それまでデコードしたそのピクチャのデータも含まれている。また、この通知を受け取ったときは、マイクロコントローラ６３は、スタートコード検出部１０１から次のスタートコードが検出されるまではその後に受け取ったデータを破棄する。
【００９２】
例えば、図９に示すデータストリームの処理に際しては、ＶＬＣデコード部１０２は“０”データ７３またはシーケンスエラーデータ７４によってデコードエラー発生をマイクロコントローラ６３に通知する。マイクロコントローラ６３は、シーケンスヘッダ９０から可変長符号ＶＬＣ９３までのデータを破棄する。さらにマイクロコントローラ６３は、スタートコード検出部１０１によって次のシーケンスヘッダが検出されるまでに受け取ったデータ９４、ＶＬＣ-Ｂ２〜ＶＬＣ-Ｂ４までを破棄する。
【００９３】
なお、ここまではＢピクチャがそのデータの前に既に伝送されている同じＧＯＰ内のＩピクチャ等のデータを参照して構築されている場合を想定して説明しているが、“Ｏｐｅｎ  ＧＯＰ”の場合はさらに、完全に伝送されたＢピクチャでも破棄しなければならないデータが存在する。例えば、Ｉピクチャデータ７９ｂ（図７）の直前に配置されたＧＯＰヘッダが“Ｏｐｅｎ  ＧＯＰ”を示している場合には、そのＩピクチャの後に配置されているＢピクチャデータはそのＢピクチャが含まれるＧＯＰの直前のＧＯＰ内のＩピクチャおよび／またはＰピクチャを参照する場合があるため、Ｉピクチャデータ７９ｂだけではデコードできない。よって、そのＩピクチャ後のＢピクチャのデータを破棄すればよい。図５（ａ）を参照すると、Ｉピクチャ５４のデータ以降のデータが完全に取得されていた場合であってもＩピクチャ５４からデコードを開始する場合には、Ｂピクチャ５５および５６のデータを破棄する。その結果、Ｂピクチャ５５および５６は表示されなくなる。これにより、Ｉピクチャデータ後に配置されたＢピクチャデータによってデコードエラーが発生することはなく、不正規な画像の表示を避けることができる。
【００９４】
次に、図１１を参照しながら、再生装置１００の動作を説明する。図１１は、再生装置１００の処理の手順を示す。図１１に示す処理は、ビデオ処理の例であり、マイクロコントローラ６３の制御に基づいて行われる。図１１では、ステップＳ１１０、Ｓ１１１、Ｓ１１３、Ｓ１１４およびＳ１１５の処理は、ストリームの切り替えを行わない通常のストリーム再生処理である。
【００９５】
まず、通常のストリーム再生処理を説明する。ステップＳ１１０において、ストリーム抽出部６２ａがストリームＡ（ＴＳ−Ａ）を読み出す。次のステップＳ１１１において、マイクロコントローラ６３は、ストリームＡと異なるストリームＢの再生指示を受け取ったか否かを判断する。通常の再生処理では、受け取っていないと判断してステップＳ１１３に進む。ステップＳ１１３では、ダミーパケット検出部８２はダミーパケットを検出したか否かを判断する。ダミーパケットは存在しないため、ステップＳ１１４に進みストリーム分離部６４はビデオエレメンタリデータを生成して、ビデオエレメンタリストリームとしてビデオデータ記憶部６５に格納する。ステップＳ１１５では、ビデオデコーダ６６はビデオエレメンタリストリームをデコードして再生する。そして、処理は再びステップＳ１１０に戻る。
【００９６】
次に、ストリームの切り替えを含む際のストリーム再生処理を説明する。ステップＳ１１１において、マイクロコントローラ６３がストリームＡと異なるストリームＢの再生指示を受け取った場合には、ステップＳ１１２に進む。ステップＳ１１２では、ダミーパケット挿入部６２ｂはダミーパケットを生成してストリームＡの末尾に付加する。その後、ストリーム抽出部６２ａはストリームＢを読み出し、ステップＳ１１３に進む。ステップＳ１１３では、ダミーパケット検出部８２がダミーパケットを検出するため、ステップＳ１１６に進む。ステップＳ１１６では、ＴＳ／ＰＥＳデコーダ８３がストリームＡに関するビデオエレメンタリストリームを生成すると、エラーデータ生成部８５は、その末尾に“０”データおよびシーケンスエラーデータを挿入する。そのデータは、ビデオデータ記憶部６５に格納され、次にビデオデコーダ６６によって読み出される。
【００９７】
ステップＳ１１７では、ＶＬＣデコード部１０２はＶＬＣエラーを検出したか否かを判断する。検出していない場合にはステップＳ１１８に進み、検出した場合にはステップＳ１１９に進む。ステップＳ１１８では、ＶＬＣデコード部１０２はシーケンスエラーデータを検出したか否かを判断する。検出した場合にはステップＳ１１９に進み、検出していない場合にはステップＳ１２０に進む。ステップＳ１１７およびＳ１１８において複数回の判定処理を設けることにより、確実に接続点が検出される。
【００９８】
ステップＳ１１９では、マイクロコントローラ６３はストリームＡ最後の不完全なデータおよびストリームＢ最初の不完全なデータが存在する場合にはそれぞれを破棄する。その結果、この後はストリームＢのデコード可能なデータが処理されることになる。
【００９９】
次のステップＳ１２０では、ストリーム分離部６４がストリームＢのビデオエレメンタリストリームを生成し、ビデオデコーダ６６はそのビデオエレメンタリストリームをデコードして再生する。
【０１００】
以上の処理によれば、ストリームの切り替えがあった場合でも、接続点を確実に検出してデコードエラーの発生を回避しながら画面の乱れを抑えつつ再生を継続できる。
【０１０１】
なお、本実施形態では、ハードディスク６１に記録されたＴＳが１つであるとし、その区間をＴＳ−ＡおよびＴＳ−Ｂとしたときの処理を説明した。しかし本発明は、ハードディスク６１に複数のＴＳが記録され、それらを連続して再生する場合であっても全く同様に適用することができる。すなわち、上述のＴＳ−ＡおよびＴＳ−Ｂが独立したデータストリームであると考えればよい。さらに、上述のＴＳ−ＡおよびＴＳ−Ｂが独立したデータストリームの一部の区間であると考えれば、本発明は、ハードディスク６１に複数のＴＳが記録され、各ＴＳの一部の区間を連続して再生する場合であっても全く同様に適用することができる。
【０１０２】
また本実施形態では、ＴＳ−Ｂの出画開始ピクチャはＩピクチャであるとしたが、Ｉピクチャ以外のピクチャであってもよい。例えば図５におけるＰピクチャ５７から出画を開始するときには、Ｉピクチャ５４およびＰピクチャ５７のデータのみをデコードすればよい。出画に必要なピクチャに至るまでのピクチャ（図５ではＢピクチャ５５および５６）のデータはデコードしなくてもよい。なお、ストリームを接続する前後は１種類のピクチャ（例えばＩピクチャ）のデータのみを順番に接続して再生する等の特殊再生を行ってもよい。
【０１０３】
さらに本実施形態では、ＭＰＥＧ規格によって圧縮符号化されたトランスポートストリームを例に挙げ、その規格に応じたダミーパケットやシーケンスエラーデータの値を挙げて説明した。しかし、本発明はこれらの値に限って適用されるものではなく、他の値であってもよい。また、他の規格によるデータストリームを用いることもできる。シーケンスエラーデータの値等は、その規格におけるエラーコードや他のコードを用いればよい。
【０１０４】
また、データストリームは必ずしも記録媒体に記録されている必要はない。例えばＴＳを利用したデジタル放送をリアルタイムで受信している場合であっても、本発明を適用することができる。すなわち、デジタル放送のチャンネルの切り替えに応じて上述のダミーパケットを挿入すればよい。
【０１０５】
データ処理装置の再生機能は、図１１に示す処理手順を規定したコンピュータプログラムに基づいて実現される。データ処理装置のコンピュータは、そのようなコンピュータプログラムを実行することによってデータ処理装置の各構成要素を動作させ、上述した処理を実現することができる。コンピュータプログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録して市場に流通され、または、インターネット等の電気通信回線を通じて伝送される。これにより、コンピュータシステムを、上述のデータ処理装置と同等の機能を有する再生装置として動作させることができる。
【産業上の利用可能性】
【０１０６】
本発明によれば、あるデータストリームが他のデータストリームに切り替えられて再生される場合でも、接続点を確実に検出してデコードエラーの発生を回避しながら画面の乱れを抑えつつ再生を継続できるデータ処理装置が提供される。
【図面の簡単な説明】
【０１０７】
【図１】従来の再生装置の機能ブロックの構成を示す図である。
【図２】ＭＰＥＧ−２トランスポートストリーム２０のデータ構造を示す図である。
【図３】（ａ）はビデオＴＳパケット３０のデータ構造を示す図であり、（ｂ）は、オーディオＴＳパケット３１のデータ構造を示す図である。
【図４】（ａ）〜（ｄ）は、ビデオＴＳパケットからビデオピクチャを再生する際に構築されるストリームの関係を示す図である。
【図５】（ａ）はピクチャデータの配置の順序を示す図であり、（ｂ）はピクチャの再生出力される順序を示す図である。
【図６】再生装置１００の機能ブロックの構成を示す図である。
【図７】再生装置１００において処理されるＴＳと、ＴＳから得られたＥＳとの関係を示す図である。
【図８】ストリーム分離部６４の機能ブロックの構成を示す図である。
【図９】ストリーム切り替え点前後のデータ配列を示す図である。
【図１０】ビデオデコーダ６６の機能ブロックの構成を示す図である。
【図１１】再生装置１００の処理の手順を示すフローチャートである。
【国際調査報告】
2004095836.tif 000014
2004095836.tif 000015