(57)【特許請求の範囲】
【請求項１】
ＭＰＥＧ２−ＴＳ（トランスポートストリーム）データを入力して記録媒体に記録し、記録媒体に記録したＴＳデータをバッファメモリに読み出して、復号を行う再生装置へ転送するためのデータ転送方法において、
読み出すべきＴＳデータの先頭位置がセクタの途中である場合、既にバッファメモリ内に読み込まれているＴＳを構成するＴＳパケットのバウンダリに合わせて、バッファメモリへの読み込み開始位置をずらせて読み込むことを特徴とするデータ転送方法。
【請求項２】
ＭＰＥＧ２−ＴＳデータを入力して記録媒体に記録し、記録媒体に記録したＴＳデータをバッファメモリに読み出して、復号を行う再生装置へ転送するためのデータ転送方法において、
記録媒体からバッファメモリへデータを転送するＤＭＡに設定可能な転送先アドレスに制限がある場合、既にバッファメモリ内に読み込まれているＴＳパケットのバウンダリに合わせて、バッファメモリへの転送先アドレスをずらせて読み込むことを特徴とするデータ転送方法。
【請求項３】
請求項１または２記載において、
バッファメモリへの読み込み開始位置をずらしたことによって生じるバッファメモリ内の不要データを、無効データに変換することを特徴とするデータ転送方法。
【請求項４】
請求項１または２または３記載において、
前記ずらす量は、ＴＳを構成するＴＳパケットのサイズがｔバイト、ＤＭＡの転送先アドレスのバウンダリがｂバイト、既にバッファメモリに読み込んだデータ量をｔとｂの最小公倍数で除したときの余りをＸバイト、読み出すべきＴＳデータの先頭の記録媒体セクタ開始位置からのオフセットバイト数をＺとした場合、
Ｚ＝ｍｔ−ｎｂ（ｍ、ｎは０以上の整数）
Ｙ＝ｎｂ−Ｘ
を満たすＹとすることを特徴とするデータ転送方法。
【請求項５】
請求項４記載において、
前記ｍとｎの値は、あらかじめ作成されたテーブルから求めることを特徴とするデータ転送方法。
【請求項６】
請求項４または５記載において、
前記ｍとｎの値は、少なくともＹの値がＴＳパケット１つ以上の大きさとなることを満たす値であることを特徴とするデータ転送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）２−ＴＳ（Ｔｒａｎｓｐｏｒｔ  Ｓｔｒｅａｍ；トランスポートストリーム）データを入力して記録媒体に記録し、記録媒体に記録したＴＳデータをバッファメモリに読み出して、復号を行う再生装置へ転送するためのデータ転送方法に係り、特に、記録媒体上からデータを読み出す際に使用するＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）に設定可能な転送先のバッファアドレスにバウンダリ（ｂｏｕｎｄａｒｙ）の制限が存在したり、転送すべきデータの先頭位置が記録媒体のアクセス単位の開始位置に存在しないような場合においても、バッファメモリに直接データを読み出すことを可能とする技術に関するものである。
【０００２】
【従来の技術】
近年、ＭＰＥＧ１、ＭＰＥＧ２等のデジタル圧縮技術の標準化が進み、また、高性能なＣＰＵ、メモリ、蓄積媒体が低価格で入手できるようになってきている。そこで、映像データや音声データをデジタル化して蓄積し、蓄積されたデータを再生するマルチメディア機器が数多く商品化されつつある。
【０００３】
このようなマルチメディア機器では、映像データや音声データを含むデジタルのストリームデータとして記録媒体に記録されたデータのうち、再生したい箇所のデータを記録媒体から読み出して、復号を行う再生装置へ転送することが必要となる。
【０００４】
ハードディスクなどの記録媒体では、セクタと呼ばれる記録単位を持ち、セクタ単位でアクセスするように設計されている。一般的なハードディスクでは、セクタの単位は５１２バイトである。これに対して、ＴＳ（トランスポートストリーム）では、１８８バイトの固定長であるＴＳパケットを単位としている。従って、ＴＳパケットの先頭をセクタの先頭に合わせて記録しない限り、その先頭部には余分なデータが含まれることになる。セクタの先頭部に余分なデータが含まれる場合、バッファ（バッファメモリ）へデータを転送するためには、一度、作業用バッファ（上記バッファとは別の作業用バッファメモリ）に読み込んでから、先頭部に含まれる余分なデータを削除してバッファに転送するという処理が発生してしまう。
【０００５】
これに対し、特開平１０−２５７４３９号公報には、ＴＳに含まれる映像を単位として、セクタの先頭位置から記録するようにした技術が提案されている。
【０００６】
【発明が解決しようとする課題】
上記先願公報に開示された方式では、記録媒体からデータを読み出す際には、その先頭部分には余分なデータが含まれないため、直接バッファにデータを読み出すことが可能であるが、記録媒体内では、記録されずに残る領域ができてしまい、実際に記録できる量が少なくなってしまうという問題がある。
【０００７】
また、データを記録媒体からバッファに読み出す際に使用するＤＭＡにおいては、その転送先アドレスを任意に設定できるようにした場合は、その回路は複雑化してしまう。回路を簡略化するためには、設定できる転送開始アドレスに制限を設けることが必要となる。しかし、転送開始アドレスに制限が加わった場合には、既にバッファに設定されているデータの直後にＤＭＡを行うことができなくなり、前記先願公報に開示された技術のように、データをセクタの先頭位置から記録したとしても、直接データをバッファに追加することができないという問題を生じる。
【０００８】
本発明は、このような問題に鑑みなされたものであり、映像データや音声データをデジタル化したＭＰＥＧ２−ＴＳで蓄積し、その中に含まれる任意の位置から再生するようなマルチメディア機器において、記録されているＴＳが記録媒体のセクタの先頭から開始されていなくとも、また、記録媒体からバッファへデータを転送するＤＭＡに設定できる転送開始アドレスに制限があるような場合においても、既にバッファに読み込まれたＴＳのＴＳパケットのバウンダリに合わせて、データを直接バッファへ読み出すことができるデータ転送方法を提供することを、目的とする。
【０００９】
【課題を解決するための手段】
本発明は、上記した目的を達成するために、ＭＰＥＧ２−ＴＳデータを入力して記録媒体に記録し、記録媒体に記録したＴＳデータをバッファメモリに読み出して、復号を行う再生装置へ転送するためのデータ転送方法において、読み出すべきＴＳデータの先頭位置がセクタの途中である場合、既にバッファメモリ内に読み込まれているＴＳを構成するＴＳパケットのバウンダリに合わせて、バッファメモリへの読み込み開始位置をずらして読み込むようにされる。
【００１０】
また、本発明は、上記した目的を達成するために、ＭＰＥＧ２−ＴＳデータを入力して記録媒体に記録し、記録媒体に記録したＴＳデータをバッファメモリに読み出して、復号を行う再生装置へ転送するためのデータ転送方法において、記録媒体からバッファメモリへデータを転送するＤＭＡに設定可能な転送先アドレスに制限がある場合、既にバッファメモリ内に読み込まれているＴＳパケットのバウンダリに合わせて、バッファメモリへの転送先アドレスをずらして読み込むようにされる。
【００１１】
【発明の実施の形態】
本発明では、記録媒体からＴＳデータを読み出す際に、読み出し先となるＤＭＡの転送開始アドレスをずらすことによって、上述した目的を達成するようにされる。そのためには、次の（Ａ）〜（Ｃ）を満足することが条件となる。
【００１２】
（Ａ）ＴＳデータを記録媒体からバッファに読み出す際に使用するＤＭＡに対し設定する転送開始アドレスは、バウンダリ毎に設定する。
【００１３】
（Ｂ）既にバッファに読み込まれているデータに対し、ＴＳデータを追加する場合は、既にバッファに読み込まれているデータのＴＳパケットのバウンダリに合わせて、ＴＳデータを追加する。
【００１４】
（Ｃ）ずらす量は、０以上の値となる。
【００１５】
図３を用いて説明する。図中でハッチングを施した部分は、既にバッファ上に読み込まれているＴＳデータであり、図中で黒塗部は、ＴＳを構成するＴＳパケットの先頭を示している。ＴＳパケットは、ｔ（＝１８８）バイトの大きさで、バッファ上ないし記録媒体上で連続的に配置されているものとする。また、記録媒体からバッファへデータを転送するＤＭＡに設定する開始アドレスは、バッファアドレスに対し、ｂバイト毎に設定することができるものとする。また、図中の点模様の部分は、記録媒体内に含まれるバッファ上に読み出すべきデータである。記録媒体はセクタを単位としてアクセスするものとする。
【００１６】
ここで、既にバッファに読み込まれているデータのうち、バッファへ設定されたデータ量をｂとｔの最小公倍数（以降、ＬＣＭ（ｔ、ｂ）で表す）で除した余りをＸバイト、ずらして読み込む量をＹバイト、バッファに読み出すべきＴＳの開始位置のセクタ先頭からのオフセットをＺバイトで表す。
【００１７】
このとき、読み出されたデータのＴＳパケットの先頭位置を、既にバッファに読み込まれているＴＳパケットのバウンダリに合わせるためには、Ｘ＋Ｙ＋Ｚはｔ（＝１８８）の倍数である必要がある。また、ＤＭＡの転送開始アドレスをｂバイトのバウンダリに合わせるためには、Ｘ＋Ｙをｂの倍数に設定する必要がある。これを式で表すと、Ｘ＋Ｙ＋Ｚ＝ｍｔ、Ｘ＋Ｙ＝ｎｂ（ｍ、ｎは０以上の整数）となる。従って、先に挙げた条件（Ａ）〜（Ｃ）は、
Ｘ＋Ｙ＋Ｚ＝ｍｔ        ……（１）式
Ｘ＋Ｙ＝ｎｂ            ……（２）式
Ｙ≧０                  ……（３）式
上記の（１）式〜（３）式で表すことができる。
【００１８】
上記（１）式と（２）式から、
Ｚ＝ｍｔ−ｎｂ          ……（４）式
となり、この（４）式を満たすｍとｎの値を求めることによって、読み込む際にずらす量Ｙを算出することができる。
【００１９】
例えば、ｂ＝３２、ｔ＝１８８、Ｘ＝０、Ｚ＝４であった場合には、４＝１８８ｍ−３２ｎを満たすｍ、ｎ値を算出すればよく、ｍ＝７、ｎ＝４１や、ｍ＝１５、ｎ＝８８などが該当する。この値を元に、Ｙ≧０を満たすＹの値を算出すればよく、ｎ＝４１の場合は、Ｙ＝４１×３２−０＝１３１２であり、ｎ＝８８の場合は、Ｙ＝８８×３２−０＝２８１６となる。Ｙ＝１３１２の場合は、Ｘ＋Ｙ＋Ｚ＝０＋１３１２＋４＝１８８×７となり、読み込まれたデータはＴＳパケットのバウンダリに適合し、また、Ｘ＋Ｙ＝１３１２＝３２×４１となり、記録媒体から読み込む際のＤＭＡ転送開始アドレスのバウンダリに適合することがわかる。
【００２０】
このようなｍ、ｎ値は、Ｚを変数とした式から求めることができるが、毎回算出する必要はなく、予めテーブルなどに収めておくことによって、読み込む際にずらす量を求めることができる。このとき、Ｘの値によらず、Ｙ≧０を満たすｍ、ｎ値を求めておくことが必要となる。Ｘの値は、０≦Ｘ＜ＬＣＭ（ｔ、ｂ）であるから、Ｘ＋Ｙ＝ｎｂ≧ＬＣＭ（ｔ、ｂ）を満たす、ｍ、ｎ値を求めればよい。
【００２１】
図５、図６は上記のテーブルの例である。図５は、Ｚから算出されるｍ、ｎ値を格納した例を示し、図６は、ｍｔ、ｎｂ値を格納した例を示している。図５、図６では、どちらも、ｔ＝１８８、ｂ＝３２を仮定している。この図５、図６の各値は、Ｚ＝１８８ｍ−３２ｎ、ＬＣＭ（１８８、３２）＝１５０４≦３２ｎを満たす値である。なお、Ｚ＝４×（４７ｍ−８ｎ）で表されるため、図５、図６のＺ値は、４の倍数をとっている。
【００２２】
また、バッファへデータを読み込む際に、その先頭に特殊なパケットを挿入して、ＴＳの制御を行いたい場合が考えられる。この場合は、ｎｂ値が、ｔとｂの最小公倍数ＬＣＭ（ｔ、ｂ）と挿入するパケットの長さを足したもの以上になるように、ｍ、ｎ値を求めればよい。つまり、ｍ、ｎを算出する際に、ｎｂ≧ＬＣＭ（ｔ、ｂ）＋αｔを満たすかをチェックすればよい。ここで、αは、挿入する特殊パケットの個数である。
【００２３】
図７は、挿入する特殊パケット数を１としたときの、ｍ、ｎ値のテーブルの内容例である。図５のものと比べて、Ｚ＝０、Ｚ＝２８、……、Ｚ＝５００のときのｍ、ｎ値が変化している。
【００２４】
＜第１実施形態＞
本実施形態は、記録媒体中のＴＳデータをバッファメモリに読み出す際に、記録媒体の記録単位であるセクタの途中からのデータが必要な場合で、かつ、バッファメモリにデータを転送するＤＭＡに設定できる転送開始アドレスにバウンダリ制限が存在する場合において、転送先アドレスをずらして読み込むことによって、バッファ内のＴＳパケットのバウンダリを合わせるようにした、データ転送手法の適用例である。
【００２５】
図１は、本実施形態による読み出し・転送処理の流れを示すフローチャートである。まず、既にバッファに設定されたデータ量を獲得する（ステップＳ１０１）。以降、このデータ量をＴｒａｎｓで表す。このＴｒａｎｓ値を、ＴＳのパケットサイズｔとＤＭＡのバウンダリサイズｂとの最小公倍数ＬＣＭ（ｔ、ｂ）で除した余りＸを算出する（ステップＳ１０２）。
【００２６】
次に、バッファに読み込むべきデータの記録媒体でのセクタ開始位置からのオフセット値Ｚを求め（ステップＳ１０３）、Ｚ値に対応するｍ、ｎ値を求める（ステップＳ１０４）。ｍ、ｎ値は、少なくとも、Ｚ＝ｍｔ−ｎｂ、Ｙ≧０を満たす０以上の整数である。
【００２７】
次に、Ｘ、ｎ、ｂ値からＹを算出する（ステップＳ１０５）。Ｙは、Ｙ＝ｎｂ−Ｘを満たす値である。そして、ＤＭＡ転送開始アドレスにＹ値を加え（ステップＳ１０６）、最後に、ＤＭＡの転送を実行する（ステップＳ１０７）。
【００２８】
＜第２実施形態＞
本実施形態は、第１実施形態では演算でその都度求めていたｍ、ｎ値を、予め作成されたテーブルから求めるようにした、データ転送手法の適用例である。
【００２９】
ＴＳのパケットサイズをｔ、ＤＭＡのバウンダリのサイズをｂとし、記録媒体上の読み込みたいデータの記録媒体内のセクタ先頭からのオフセットをＺとしたときに、求めるｍ、ｎ値は、
Ｚ＝ｍｔ−ｎｂ
ＬＣＭ（ｔ、ｂ）≦ｎｂ
上記両式の条件を満たす０以上の整数である。
【００３０】
例えば、ｔ＝１８８、ｂ＝３２とした場合は、図５で示したようなテーブルとなる。また、テーブルの内容をｍｔ、ｎｂで保持することも考えられ、その場合には、図６で示したようなテーブルとなる。
【００３１】
＜第３実施形態＞
本実施形態は、少なくともＹの値が、ＴＳのパケット１つ以上の大きさとなることを保証するｍとｎの値を持つ、予め作成されたテーブルから、ｍ、ｎ値を求めるようにした、データ転送手法の適用例である。
【００３２】
ＴＳのパケットサイズをｔ、ＤＭＡのバウンダリのサイズをｂ、記録媒体上の読み込みたいデータの記録媒体内のセクタ先頭からのオフセットをＺとしたときに、求めるｍ、ｎ値は、
Ｚ＝ｍｔ−ｎｂ
ＬＣＭ（ｔ、ｂ）＋αｔ≦ｎｂ
上記両式の条件を満たす０以上の整数である。
【００３３】
例えば、ｔ＝１８８、ｂ＝３２、α＝１とした場合は、図７で示したようなテーブルとなる。
【００３４】
＜第４実施形態＞
本実施形態は、ＴＳデータをずらして読み込むことによって生じる不要データを、無効データに変換するようにした、データ転送手法の適用例である。
【００３５】
上述したように、ＴＳデータをバッファにずらして読み込んだ場合には、ずらした量に対応する区間には、不要なデータが存在することになる。そのため、そのまま復号を行う再生装置へ転送すると誤動作を起こす虞がある。これを避けるためには、不要データを再生装置で無視されるデータに変換する必要がある。このデータは、一般的にヌルパケットと呼ばれる、識別子の値が０ｘ１ｆｆｆを示すＴＳパケットである。
【００３６】
図４は、不要なデータを無効データに置き換える例を示す図である。図中でハッチングを施した部分は、既にバッファ上に読み込まれているＴＳデータであり、図中で黒塗部は、ＴＳを構成するＴＳパケットの先頭を示している。ＴＳパケットの大きさは、ｔ（＝１８８）バイトであるとする。また、図中の点模様の部分は、記録媒体内に含まれているデータのうち、読み出すべきデータをバッファ上に転送したデータである。記録媒体へのアクセスは、セクタを単位として行う必要があるため、図中三角印の箇所から不要部分を含めてリードしている。
【００３７】
既にバッファに読み込まれていたデータで、不完全なＴＳパケットの部分と、読み出す際にずらした部分、読み出すべきデータの前に存在する不要部分は、本来、復号を行う再生装置に転送すべきでない不要な箇所である。この箇所を無効データに変換することにより、復号を行う再生装置の誤動作を防ぐことができる。
【００３８】
図２は、本実施形態による不要データの無効化処理の流れを示すフローチャートである。まず、既にバッファに設定されたデータ量Ｔｒａｎｓを獲得する（ステップＳ２０１）。
【００３９】
次に、既にバッファに読み込まれていたデータで、不完全なＴＳパケットの先頭を求める（ステップＳ２０２）。この例では、Ｔｒａｎｓ値をＴＳパケットサイズで除した後、再びＴＳパケットサイズで乗じることによって、不完全なＴＳパケットの先頭位置を求める。以降、この値をＣ１で表す。
【００４０】
次に、記録媒体から読み出したデータのうち、必要となるデータの先頭位置を求める。この例では、読み込む際にずらした量Ｙと、必要な箇所の記録媒体セクタ内のオフセット値Ｚとを、Ｃ１に加算する（ステップＳ２０３）。以降、この値をＣ２で表現する。Ｃ２の箇所以降からは、必要となるデータが含まれる。
【００４１】
最後に、区間［Ｃ１，Ｃ２）を無効データに変換する、すなわち、区間［Ｃ１，Ｃ２）の不要なＴＳパケットを、ヌルパケットに変換する（ステップＳ２０４）。
【００４２】
かような処理によって、ずらして読み込む際に生じる不要データを無効データに変換することができるため、復号を行う再生装置での誤動作を防ぐことができる。
【００４３】
【発明の効果】
本願の各請求項に係る発明による作用効果を列挙すれば、下記の通りである。
【００４４】
請求項１に係る発明では、記録効率の向上を図るため、ＴＳデータを無駄なく記録媒体上に配置することが可能な構成において、データを直接バッファに転送することができるため、処理効率の向上を図ることができる。
【００４５】
請求項２に係る発明では、ＤＭＡを実現するためのハードウェア回路を簡素化することができる。また、バッファに読み込む際に、中間バッファを用いることなく、直接、バッファに転送することが可能となるため、処理効率の向上を図ることができる。
【００４６】
請求項３に係る発明では、記録媒体からバッファへデータを読み込む際に、転送開始アドレスをずらして読み込むことによって生じる不要データを無効データに変換するため、復号を行う再生装置での誤動作を防ぐことができる。
【００４７】
請求項４に係る発明では、バッファに読み込まれたデータ量と、記録媒体から読み出すべきＴＳデータの先頭のセクタ開始位置からのオフセット量から、バッファに読み込む際にずらす量を算出することができる。
【００４８】
請求項５に係る発明では、ｍ、ｎの値を予め作成されたテーブルを参照して求めることができるので、ずらす量を求めるための処理を軽減することができる。
【００４９】
請求項６に係る発明では、Ｙの値が挿入するパケットの大きさ以上の値を持つように、ｍ、ｎの値を求めておくことによって、読み出したＴＳの先頭に、ＴＳの開始を表すような特殊な制御パケットを挿入することが可能となる。
【図面の簡単な説明】
【図１】本発明の第１実施形態による、読み出し・転送処理の流れを示すフローチャートである。
【図２】本発明の第４実施形態による、不要データの無効化処理の流れを示すフローチャートである。
【図３】本発明における、ＤＭＡ転送開始アドレスをずらして読み込む処理の例を示す説明図である。
【図４】本発明における、不要データを無効データに変換する処理の例を示す説明図である。
【図５】本発明において用いられる、ｍ、ｎ値を格納したテーブルの例を示す説明図である。
【図６】本発明において用いられる、ｍｔ、ｎｂ値を格納したテーブルの例を示す説明図である。
【図７】本発明において用いられる、特殊パケットを挿入する場合のｍ、ｎ値を格納したテーブルの例を示す説明図である。
【図１】
0003593010.tif 000002
【図２】
0003593010.tif 000003
【図３】
0003593010.tif 000004
【図４】
0003593010.tif 000005
【図５】
0003593010.tif 000006
【図６】
0003593010.tif 000007
【図７】
0003593010.tif 000008