実施の形態1.
図1は本発明の実施の形態1にかかる記録再生装置1のハードウェア構成を示すものである。図において、記録再生装置1は、CPU2と、ROM3と、RAM4と、ハードディスク5と、リムーバブルメディアインターフェース6と、ネットワークインターフェース7と、出力部8と、コマンド信号受信部9とを備えており、ぞれぞれ、バスを介して連係している。つづいて、各ハードウェアの詳細について説明する。
CPU2は、ROMやRAMに格納された制御プログラムを実行する中央演算処理部であり、デジタルコンテンツデータのハードウェアデコード処理を行うデコーダーを含んでいる。CPU2はハードディスク、ネットワークインターフェースおよびリムーバブルメディアインターフェースのデータ入出力制御も行う。なお、中央演算処理部(CPU)とデコーダーは独立して分離していても構わない。
ROM3は、装置を起動するためのブートコードや、この実施の形態1にかかる記録再生装置および記録再生方法を実現するためのプログラムやデータが格納されるものであり、RAM4は、一時的なデータを記憶するものである。
ハードディスク5は、ダビング先記憶媒体であり、映像や音声を含むデジタルコンテンツや、コンテンツを再生するために参照する再生管理情報を記録する。再生管理情報は複数のファイルから構成されており、ディスクのタイトル名やディスクに記録されているコンテンツのリストなどの情報を収めたファイル(タイトル情報)と、再生する映像データの区間を記録したファイル(プレイリスト)と、録画したストリームへのランダムアクセス時に必要なデータを格納したファイル(クリップ情報)がある。ハードディスク5としては、不揮発性の記憶媒体であれば、ネットワークストレージや、フラッシュメモリ、リムーバブルディスクなどであってもよい。
リムーバブルメディアインターフェース6は、取り外し可能なフラッシュメモリや、DVD、ブルーレイディスクのような光ディスク、取り外し可能なハードディスク等の図示しないリムーバブルメディアと接続され、接続されたリムーバブルメディアに記録されたデータを読み出すことが可能である。ネットワークインターフェース7は、図示しないネットワークと接続され、ネットワークコンテンツのダウンロードに使用するものである。リムーバブルインターフェース6に接続されたリムーバブルメディアおよびネットワークインターフェース7に接続されたネットワークはコンテンツのダビング元記憶媒体として扱う。
出力部8は映像や音声を出力するテレビモニタやプロジェクタである。コマンド信号受信部9はユーザーからの指示としてリモコン10からの信号を入力するためもので、赤外線受信を行う。信号の形式は赤外線以外に電波式や、ネットワーク、有線シリアル通信などであってもよい。リモコン10は、記録再生装置1にユーザーからの指示信号を与えるために用いる。リモコン10は赤外線式や、電波式、ネットワーク、シリアル通信など、コマンド信号受信部9に合わせた方式のものであればよい。
つぎに、上記各ハードウェアの機能についてブロック図を用いて説明する。図2は、本発明の実施の形態1にかかる記録再生装置においてダビングを実現するために必要な機能ブロックを示すものである。図において、ダビング元デバイス121は、取り外し可能な記憶媒体や、ネットワークを示している。データ読み込み手段122は、ダビング元デバイス121からデータを読み出す機能を持つ。そして、図1におけるリムーバブルメディアインターフェース6またはネットワークインターフェース7がダビング元デバイス121とデータ読み込み手段122として機能する。領域の境界位置を計算する手段123は、データ読み込み手段122によって読み出したコンテンツ再生に必要な再生管理情報からチャプター位置を取得し、ダビングするデータブロック単位を決定する境界位置検出手段として機能するとともに、決定した各データブロックの先頭位置から所定量のデータを見出しデータとして決定する見出しデータ決定手段としても機能する。データ書き込み手段124は、ダビング先デバイス125にコンテンツデータや管理データを書き込む機能を持つ。図1におけるハードディスク5が、データ書き込み手段124とダビング先デバイス125、つまり、記録手段として機能する。
コンテンツ再生手段128は、ダビング先デバイス125に記録されたコンテンツを再生する機能を持つ。見出し視聴時間取得手段129は、見出し部分のコンテンツをどのくらいの時間再生したのかをコンテンツ再生手段128とリモコン操作監視手段130から取得するものである。リモコン操作監視手段130は、リモコン10の操作履歴(リモコン10からのコマンド信号の受信履歴)から、ユーザーがコンテンツを視聴し続けているのか、スキップ再生を繰り返しているのかという情報を得る手段である。視聴するデータ位置を特定する手段131は、見出し視聴時間取得手段129で得た情報を基にして、ユーザーがこれから視聴しようとしているコンテンツのデータ位置を特定するものである。視聴するデータ位置を特定する手段131から得た情報を基にして、データ読み出し位置通知手段126とデータ書き込み位置取得手段127にダビング元とダビング先のデータ位置情報を伝える。つまり、データ読み出し位置通知手段126、データ書き込み位置取得手段127、見出し視聴時間取得手段129、リモコン操作監視手段130および視聴するデータ位置を特定する手段131は、コンテンツ再生手段128で再生するブロックを指示する再生ブロック指定手段として機能する。また、図1におけるROM3に格納されたプログラムがCPU2にアップロードされ、CPU2がそのプログラムを実行することにより、データ読み出し位置通知手段126、データ書き込み位置取得手段127、コンテンツ再生手段128、見出し視聴時間取得手段129、リモコン操作監視手段130および視聴するデータ位置を特定する手段131として機能する。
つまり、本発明の実施の形態1にかかる記録再生装置は、データ転送元から転送される映像および/または音声を含むデジタルコンテンツデータを読み込むデータ読込み手段122と、データ読込み手段122が読み込むデジタルコンテンツデータを所定の単位で複数のブロックに分割する際の各ブロックの先頭位置を検出する境界位置検出手段123と、境界位置検出手段123が検出した各ブロックの先頭位置から所定量のデータを見出しデータ領域として定める見出しデータ決定手段123と、データ読込み手段122が読込んだデジタルコンテンツデータを記録する記録手段124,125と、記録手段125に記録されたデジタルコンテンツデータを再生する再生手段128と、再生手段128で再生するブロックを指示する再生ブロック指定手段126、127、129〜131と、を備え、デジタルコンテンツデータを記録手段に記録するときに、記録対象となるブロック以外のブロックの見出しデータを記録してから再生ブロック指示手段からの再生ブロックの指示を受け付けるように構成した。
図3は、本発明の実施の形態1に係る記録再生装置および記録再生方法においてダビング処理を行うコンテンツデータの配置を示す図であって、101はダビング元のコンテンツデータ配置、102はダビング先のコンテンツデータ配置、103A、103B、103C、103Dはチャプター区切りの位置、斜線で示した104A、104B、104C、104Dはチャプター区切りから所定量(数秒間分再生可能な量)のコンテンツ見出しデータを示している。図中左側をコンテンツデータの先頭とし、右側をコンテンツデータの終端とする。
図4と図5はダビング処理を示すフローチャートである。本発明の実施の形態1に係る記録再生装置および記録再生方法では、はじめに、映像や音声を含むデータサイズの大きいコンテンツのダビングを開始する前に、メニューを含んでいるサイズの小さいストリームファイルと、再生に必要な再生管理情報をダビング(コピー)する(ステップS201)。
ここで、再生管理情報には、プレイリストおよび、クリップ情報データが含まれる。プレイリストは、コンテンツを構成するクリップの再生区間を、再生する順番に従って並べたもので再生や編集時の再生制御情報である。プレイリストにはクリップのファイル名と再生区間の開始位置と終了位置の情報を持つアイテム情報が1つ以上含まれている。再生区間の開始位置と終了位置の指定は、MPEG−2(Moving Picture Experts Group phase 2) TS(Transport Stream)中に埋め込まれているA/V(Audio / Visual)同期用のタイムスタンプであるPTS(Presentation Time Stamp)値を用いる。クリップ情報データには、PTSからクリップのデータ位置を求めるために必要なランダムアクセス用のテーブルが格納されている。
チャプターの情報は、プレイリストに含まれており、アイテム情報の識別子と対応するPTS情報が記録されている。PTSの情報とクリップ情報からチャプター区切りのデータ位置を特定できる。
したがって、再生管理情報を解析することによって、コンテンツのチャプターの区切り情報を取得する(ステップS202)。次にチャプターの区切りがどの位置のデータに相当するかを計算する。その結果、103A、103B、103C、103Dの区切り位置を特定できる。
次に、各チャプター区切り位置103A、103B、103C、103Dから見出し再生に利用するためのデータ104A、104B、104C、104Dをダビングする(ステップS203)。先頭ブロック以外のブロックとして、少なくとも1つ先の見出しデータ104Bのダビングが完了した時点で、ユーザーの試視聴操作を受け付ける(ステップS204)。その後、ユーザー操作に応じたダビング処理(ステップS205)を実行する。
ユーザー操作に応じたダビング処理(図4におけるステップS205)の詳細について図5を使って説明する。ダビング処理開始後、ユーザーが再生指示を出さない間は(ステップS211でNO)、見出しデータのコピーを継続する。見出しデータのコピーが完了した場合には(ステップS219でYES)見出しデータ以外の部分でのデータのコピーを開始する(ステップS212)。なお、再生開始指示がない場合はデフォルトとしてコンテンツの最初の位置が再生開始位置となる。ユーザーがダビング中のデータの再生指示を記録再生装置に出した場合(ステップS211でYES)、コンテンツの再生を開始し(ステップS210)、再生位置より後方の未ダビング領域のコピーを開始する(ステップS212)。このとき、ダビング先においてコンテンツのデータの一部である見出しデータ104Aまたはメニューストリーム(図示せず)が存在すればメニューストリームを再生する。メニューストリームは、ユーザーがメニューを呼び出したときに最初に表示するストリームであり、このメニューストリームを表示させながらユーザーが操作することによってコンテンツの見出しデータの位置にジャンプすることができる。記録再生装置は見出しデータ104Aを再生している間にも、バックグラウンドでは未ダビングデータのダビングを継続している(ステップS213でNo)。
ここで、ユーザーが次のチャプターへのスキップ再生を指示した場合には(ステップS213でYes)、現時点のダビングを中断し、ダビング位置をダビング管理データに記憶し(ステップS214)、スキップ指示位置のコンテンツの再生を開始する(ステップS215)。スキップ操作を繰り返すことにより視聴時間が短い場合にはスキップ操作は安定していないので(ステップS216でNO)、見出しデータを優先してコピーしていく。見出しデータのコピーが完了していた場合(ステップS220でYES)は、見出しデータ以外の未ダビング領域のコピーを開始する(ステップS217)。見出しデータのコピーが完了していない場合には(ステップS220でNO)、見出しデータのコピーの継続又は開始をし(ステップS221)、スキップ指示位置から少なくとも2つ先までのスキップ可能位置の見出しデータがコピーできていれば、ステップS216へ移行する(ステップS222でYes)。スキップ操作が安定した場合(ステップS216)、すなわち一定時間以上スキップ操作をせずにコンテンツを再生し続けた場合、再生位置より後方の未ダビング領域のコピーを開始する(ステップS217)。全データのダビングが完了したら(ステップS218でYES)ダビング処理を終了する。ダビングが完了していない場合には(ステップS218でNO)、ステップS213へ移行し、ユーザーの操作を受け付ける状態になる。スキップ指示があった場合(ステップS213でYes)にはS214以降のループに移行する。
なお、見出しデータ104A、104B、104C、104Dは、コンテンツの一部を切り出したデータであり、説明のために見出しデータと称しているだけでありダビング対象の一部分であるので、見出しデータとその続きのデータとの区別は無い。
また、上記ダビング処理では、見出しデータと部分的にダビングが完了したダビング済みデータは二重にダビングを行わず、常に未ダビング領域のみをダビングする。また、ユーザーからのスキップ再生指示はいつでも受け付けるようにする。また、本実施の形態ではステップS222で、スキップ指示位置から少なくとも2つ先までのスキップ可能位置の見出しデータがコピーできていれば、ステップS216へ移行するようにしているが、スキップ指示位置からの見出しデータのコピー範囲は2つに限ることはない。また、通常、スキップ再生は前方に(早送り)向かって行われることが多いので、スキップ再生位置から先のブロックの見出しデータをコピー対象としたが、後方のブロックをコピー対象としてもよい。例えばスキップ位置から前後2つのブロックの見出しデータをコピーするようにしても良く、前方を重視して後方2つ、前方4つ先までというように規定してもよい。
以上のように、本発明の実施の形態1にかかる記録再生装置または記録再生方法によれば、データ転送元から転送される(映像および/または音声を含む)デジタルコンテンツデータを読み込むデータ読込み手段122(またはステップ)と、データ読込み手段が読み込むデジタルコンテンツデータを所定の単位で複数のブロックに分割する際の各ブロックの先頭位置を検出する境界位置検出手段123(またはステップS202)と、境界位置検出手段123(またはステップS202)が検出した各ブロックの先頭位置から所定量のデータを見出しデータ領域として定める見出しデータ決定手段123(またはステップS203)と、データ読込み手段122が読込んだデジタルコンテンツデータを記録する記録手段124,125(またはステップS205)と、記録手段125に記録されたデジタルコンテンツデータを再生する再生手段128(またはステップ)と、再生手段128で再生するブロックを指示する再生ブロック指定手段126、127、129〜131(またはステップ)と、を備え、デジタルコンテンツデータを記録手段に記録するときに、記録対象となるブロック以外のブロックの見出しデータを記録してから再生ブロック指示手段からの再生ブロックの指示を受け付けるように構成したので、ダビング開始前に所定回数分の試視聴のための見出しデータが転送先にコピーされており、スキップ再生で選択した見出しデータに続いてデータをダビングしながら再生できる。これにより、ダビング済みの見出しデータを再生できるようにするので、ダビング元からデータを読み出すことを妨げずに、視聴したい位置の検索ができる。つまり、コンテンツデータ全体のダビングが完了していなくても、視聴しようとしている位置から再生ができるので、転送元の媒体から転送先の媒体にデータをダビングしながら記録中のコンテンツをユーザーが希望する位置から転送先の機器において再生を行うことができる。
さらに、本編よりも先にダビングする見出しデータは、本編の一部であるので、視聴したい位置をスキップ再生等で検索していて見出しデータのみをダビングしているときも、コンテンツのダビングを継続していることになり、ダビングにかかる時間がスキップ再生等により余計に延びたりすることがない。
とくに、試視聴のための見出しデータとして、現在の再生点(再生ブロック(再生を行っていない場合にはコンテンツの先頭))から所定回数先までの見出しデータを転送しておくようにしたので、ダビング中のコンテンツにおいてユーザーが視聴したい位置が検索しやすくなる。
また、データ転送元のデータ読み出し単位をチャプターで区切られた区間としたので、スキップ再生を行う際の頭出しデータとして、スキップ再生位置でのスキップ再生が可能になる。つまり、区切りをチャプター単位とすることで、視聴者が見たい(あるいは、そのコンテンツの製作者が意図した)シーンの検索が容易になるようにスキップ再生を行う際の頭出しデータを配置することができる。
また、再生制御情報を基準にダビング先での書き込み単位を決定するようにしたので、実際の再生制御情報に沿ってデータを読み出してダビングすることができる。このことは、実際にダビング元に記録されているストリームに通常の視聴では再生されないデータが含まれているコンテンツをダビング対象としたときに、ダビング時間を短縮したい場合に有効である。再生制御情報(プレイリスト)が映像、音声データと併せて記録されているものをダビングする場合には、実際の再生制御情報に沿ってデータを読み出してダビングすることができるので、再生制御情報には存在しない通常再生されない不要なコンテンツがダビング元に含まれていた場合に、その部分を外してダビングできるので、ダビング先媒体の容量を無駄なく利用できる。また、その場合においても、ダビングの際の視聴を優先して、再生制御情報に沿ったデータをダビングした後に、通常の視聴では再生されないデータをダビングするようにしても良い。
また、コンテンツの再生時間を単位として、区切りを設けてもいい。区切りの時間はユーザーが自由に設定できるようにしてもよく、例えば5分、10分、という時間区切りで設定すればよい。この場合、ダビング元のデータに、チャプター情報やプレイリストが含まれていない場合でも、クリップ情報から再生時間情報を読み取ることによって、一定時間間隔のデータブロックを決めることができる。
実施の形態2.
上記、実施の形態1にかかる記録再生装置及び記録再生方法では、再生管理情報を使ってダビングを行ったが、チャプターが存在しない、またはチャプターの区切り情報がない場合等やユーザーの好みに合わせて、本記録再生装置または記録再生方法により定義した単位でコンテンツを区切り、その区切り毎に見出しデータを取得するようにしても良い。
以下に区切り単位の例と、単位ごとのダビングを行う詳細な方法について説明する。
ブロック分割単位として、いくつかのエントリ情報をまとめてダビングブロック単位としてもよい。MPEG−2によるビデオ圧縮では通常15フレーム程度をまとめて圧縮する。まとめた単位はGOP(Group of Pictures)と呼ばれる。エントリ情報は、GOPデータの先頭位置とPTS値を対応付けたテーブルである。エントリ情報をまとめてダビングブロック単位とする場合は、エントリ情報は、プレイリストよりもデータブロック単位が細かいので、頭出し位置(スキップ再生位置)をプレイリストを使用したときよりも細かい単位で設定することもできる。
また、データサイズで区切りを設けてもいい。例えば、クリップ情報が含まれていないコンテンツで再生時間情報が読み取れない場合でもコンテンツのビットレートに応じて例えば10秒程度再生できるデータサイズを算出しておき、そのデータサイズをデータ区切り単位とする。ビットレートが10Mbps(1Mビットは1048576ビットとする)である場合、10秒間再生するには約100Mビット(1310720バイト)のデータ量が必要であり、5分の再生に必要なデータ(約3Gビット)を1ブロックとする。このように、固定サイズでブロックサイズを決めることにすれば、ヘッダ情報を読み出すことなく、ブロック区切りを一定にできるので、プログラムのロジックを単純化することが可能となる。
この例では10秒間再生するデータ量を見積もったがユーザーが設定した値を基準にデータ量を変更しても構わない。この10秒間のコンテンツの一部分を切り出したデータは見出しデータとして再生するのに利用する。次の見出しデータをダビングする位置、つまりデータブロックのサイズは例えば5分ごとに設けるとする。ただし、データの区切りは、データアライメントに合ったものとする。そうすることによって、データを無駄なく読み出し、書き込むことができるため効率よくダビングを実行することができる。アライメントの単位は、ある1つのデータブロックを読み出す場合に複数回の読み出し操作を行わなくて済むように、ダビング元の媒体と、ダビング先の媒体に合わせる。
例えばダビング元がDVDであった場合、エラー訂正コードを含むデータブロック単位で読み出すようにすれば効率がよくなるので、読み出す基準となるデータブロックはECC(Error Collection Code)ブロック単位とする。また、ダビング先の媒体をハードディスクとした場合、1セクタは512バイトであるので、512バイトの倍数単位で書き込むようにする。
また、ダビング元がネットワークである場合には、パケット単位でデータをダビングする。
また、媒体の読み出し特性のほかに、コンテンツのデータ構成にあわせて転送データブロック単位を決定する方法がある。たとえば、MPEG2 TSデータの場合、192バイトで1つのパケットを構成しているので、192の倍数分のデータバイト列を基準にし、さらにダビング元媒体の効率よくデータを読み出せるブロック単位との公倍数を転送ブロック単位としてもいい。この場合、1つのブロックをたとえば48MBの倍数とするとブロックの先頭に常にパケットの先頭が現れるので区切りが良くなる。1パケットが188バイトのTS(トランスポートストリーム)データの場合には47MBの倍数が1ブロックの区切りとしてちょうどいい。また、MPEG2 TSをダビングする場合、GOP区切りをブロック単位としてもいい。
このようにアライメント単位でデータの読み出しと書き込みを行うことによって、読み出すデータ範囲を拡げる必要が無く、離散的にダビングを行った場合に領域の境目で重複してデータを読み書きしなくてもよくなり、データ転送効率が向上する。
このように、再生記録装置または再生記録方法で定義した単位でコンテンツを区切り、その区切り毎に見出しデータを取得するようにする場合、実施の形態1の図4で示したフローの代わりに、図6に示すようなフローによってダビング処理を行えばよい。図6におけるステップS2030〜ステップS2050は、図4におけるステップS203〜ステップS205に相当するので、そのフローの移行する前段階のステップについて説明する。
ダビングが開始されると、はじめに、ダビングするコンテンツに再生管理情報があるか否かを確認(ステップS2010)する。コンテンツに再生管理情報がある場合(ステップS2010でYes)は、ステップS2012(図4のステップS201に対応)、ステップS2022(図4のステップS202に対応)を経て、ステップS2030に進む。一方、コンテンツに再生管理情報がない場合(ステップS2010でNo)は、コンテンツを設定した単位で区切り(ステップS2026)、ステップS2030に進む。ここで、「コンテンツを設定した単位で区切る」とは、上述した再生記録装置または再生記録方法で定義した単位でコンテンツを区切ることである。なお、ステップS2010でYesの場合でも、ユーザーが希望すれば「コンテンツを設定した単位で区切る」(ステップS2026へ進む)ようにしてもよく、「コンテンツを設定した単位で区切る」ステップ内にて、ユーザーの好みの区切り方を選択させるようにしても良い。
ダビング先のデータの記録方法は、あらかじめ、ダビング元のデータイメージと同じデータ配列でダビングしてもいい。また、ダビングする順番のデータ配列をそのままダビング先に記録し、ダビングデータ構成管理情報に基づいてダビング完了後のファイル再生時に元の順番に並べ替えて再生してもいい。
ダビングデータ構成管理情報について図7を用いて説明する。図7の上段はダビング元のコンテンツ301をブロック単位に分割して先頭から番号を割り振ったものである。図7下段は、ダビング先のコンテンツデータ配列302を示しており、ユーザーがスキップ再生を行った結果、実際にダビングした順番にデータを記録している。このような配列のデータをダビング完了後に先頭から再生するとダビング元の再生順序と異なるため、次に示すように再生順番を管理するダビングデータ構成管理情報をダビング時に作成する。
各ブロックは、ブロックごとに前のブロック番号と次のブロック番号の情報を持ち、次に再生すべきブロックはどこであるかがわかるようにする。先頭のブロックの場合、前のブロックは存在しないので、たとえばブロック番号として存在しない0を記録する。最終ブロック16には次に再生するブロックは存在しないため、たとえばブロック番号として存在しない−1を記録する。このリンクを辿ることによって実データの配置は順番に並んでいなくても再生する順番を再現することができる。このようにすると、ダビング先媒体にデータを書き込む際にヘッダを移動せず連続して書き込めることができるので、高速なダビングが可能となる。
また、このようにコンテンツ元の順番とは異なるデータ配置で記録した場合に、記録再生装置でアイドル状態が続いたときに、データをダビング元のイメージと同じ配置に並べ替えるようにしてもよい。このようにアイドル時に並べ替えをするようにすれば、再生時のヘッダ移動が発生しないため、途切れないコンテンツの再生を実現できる。
以上のように、本実施の形態2に係る記録再生装置および記録再生方法によれば、当該再生記録装置または当該再生記録方法で定義した単位でコンテンツを区切り、その区切り毎に見出しデータを取得するようにしたので、コンテンツに再生管理情報がない場合でも、転送元の媒体から転送先の媒体にデータをダビングしながらユーザーが希望する位置からコンテンツの再生を行うことができる。
また、エントリ情報を基準にコンテンツを区切る単位を決定するようにしたので、プレイリストよりもデータブロック単位が細かいエントリ情報を基準とすることによって、細かい単位で頭出し位置を設定することが可能となる。
あるいは、固定データサイズにより、コンテンツを区切る単位を決定するようにしたので、ダビング元のデータに、チャプター情報やプレイリストが含まれていない場合でも、ヘッダ情報を読み出すことなく、固定サイズでダビング単位を決定できるため、プログラムのロジックを単純化できる。
また、ダビング元デバイス及びダビング先デバイスのデータアライメント単位でコンテンツを区切る単位を決定するようにしたので、アライメント単位にデータの読み出しと書き込みを行うことができ、読み出すデータ範囲を拡げる必要が無く、離散的にダビングを行った場合に領域の境目で重複してデータを読み書きしなくてもよくなり、データ転送効率が向上する。
実施の形態3.
再生管理情報が付属していないコンテンツをダビングする場合の、ダビングするブロックの順番について説明する。実施の形態1では、再生管理情報から見出しとなるブロックを決定し、見出しデータをダビングしてからスキップ再生をするようにしていたが、本実施の形態のように、再生記録装置又は再生記録方法側で定義した区切り単位を用いる場合、各ブロックの先頭から所定のサイズ(または単位個数)分を見出しデータとして定義すれば、スキップ再生を実現することができる。例えば、区切り単位を固定データサイズとした場合、各ブロックの先頭から数メガバイト(一例として12MB)のデータを見出しデータとしてもいい。見出しデータのサイズはダビングするコンテンツのデータ内容によって変えてもよい。1パケットが192バイトで構成されるトランスポートストリームの場合には、見出しデータのサイズも192の倍数バイト分に合わせるのが望ましい。この場合のダビングでも、再生位置から2ブロック先までの見出しデータをコピーしておくようにする。これにより、チャプター情報の代わりに固定サイズブロックにデータを分割し、ブロック単位でユーザーが再生指示を行えることができるため、ユーザーの指示があった箇所からデータをダビングしながら再生することが可能になる。
また、本実施の形態のようにブロック単位でダビングする順番を決めるようにする場合、ブロックの大きさを見出しデータ程度の小さな単位とすれば、各ブロック自体が見出しデータとなるので、予め見出しデータのみをダビングしなくとも、スキップ再生を実現することができる。
ブロックをダビングする順番のアルゴリズムについて、図8から図13を使って説明する。なお、これらの図ではダビングするブロックの順番を説明するためのものであるので、見出しデータのダビングについての説明は省略しているが、各ブロックのダビング前に見出しデータはすでにコピーされているとして説明する。図8に1つのストリームファイルを固定ブロックサイズ(例えば48MBとする)に分割したイメージを示す。最終ブロック16は固定ブロックサイズ(48MB)以下のサイズであり、固定ブロックで分割したときの端数サイズになる。なお、例では16分割しているが、ストリームファイルのサイズが大きくなれば分割ブロック数も増えることになる。例えば、2GBのファイルに対し、1ブロックサイズを48MBとした場合には、43分割になる。1ブロックが48MBというのは、MPEG2−TSのビットレートが24Mbpsであった場合に約16秒程度再生できるデータ量に相当する。ブロックのサイズはコンテンツのビットレートに合わせて増減しても構わない。
図8から図11で示す矢印は、再生指示があるブロックを示しているものとする。コピー済みのブロックは塗りつぶして示している。斜線で示したブロックはこれからダビングしようとしているブロックを示している。
図8の状態からダビングを開始し、ストリームの先頭から再生し、ブロック2と4をスキップして再生すると図9(a)に示すようなコピー状態になる。この状態からストリームの先頭方向のブロック4に対して再生指令を受けた場合には、図9(b)に示すようにブロック4のコピーが始まる。なお、図9(b)中の斜線で示したブロックがコピー中のブロックであり、塗りつぶしたブロックはコピー済みのブロックであるとする。
そして、ストリームの後方方向へのブロック10に対してスキップ再生指令を受けた場合は、図9(c)に示すようなコピー状態となる。
さらに、すでにコピー済みのブロック5へスキップする再生指令を受けた場合には、図9(d)に示すようにブロック5を再生しながら該当ブロックより後方の未ダビングブロック8をコピーする。
ここで、ダビング作業中に停電が発生した場合の動作について説明する。図10に示すように、ブロック5を再生中に停電が発生した場合は、復電後には停電前に再生していたブロックから再生し、データのコピーを再開する。これを実現するためには、1ブロックあたりのコピーおよび再生が完了した時点で管理データを更新し、次のコピーまたは再生ブロックの情報を記録しておく。復電後は管理データを読み出して作業を再開する。
図11(a)に示すように再生位置の前方と後方に未ダビングブロックがある場合には、再生位置より後方のこれから再生される可能性が高いブロックを優先してコピーする。ストリームの最後のブロックまでコピーした場合は、図11(b)に示すようにストリームの先頭から未ダビングブロックを検索してコピーを行う。
固定サイズのブロックでダビングを実行する場合のダビングフローの詳細について、図12のフローチャートを使って説明する。ダビング開始コマンドを受け付けるとストリームのファイル情報(ファイルサイズ、ファイル名)を取得し(ステップS303)、ブロック数を計算する。その情報を基にして未ダビングリストを作成する(ステップS305)。未ダビングリストのフォーマットは後述する。次にダビングを開始(ステップS302)し、再生指令待ち状態になる(ステップS306)。なお、ステップS302では、はじめに、見出しデータのダビングを実行し、完了したのち、各ブロック本体のダビングを開始する。再生指令が無い場合(ステップS306でNO)は、ダビングを継続する。
次にスキップ再生指令を受けると(ステップS306でYES)、スキップ先の再生位置を作業状態管理データに記録する(ステップS307)。作業状態管理データのフォーマットについては後述する。
スキップ再生指示のあったブロックは、未ダビングリストを参照することによってすでにダビングされているかどうかを判別し(ステップS308)、ダビングされていれば(ステップS308でYes)指定されたブロックの再生を開始し、直前までダビングしていたブロックのダビングを完了してから再生位置より後方の未ダビングブロックのダビングを行う(ステップS315)。ただし、再生スピードとダビングスピードにあまり開きが無い場合は、直前までダビングしていたブロックのダビングを直ちに中断しこれから再生され得るブロックのダビングを優先させるようにする。
再生するブロックがダビング済みでない場合には(ステップS308でNo)、現在ダビングしているブロックのダビングを直ちに中断し、そのブロックを未ダビングとして扱い、未ダビングリストを更新し(ステップS309)、再生指定ブロックのダビングを開始する(ステップS310)。
1ブロックダビングが完了するたびに未ダビングリストは更新する(ステップS311)。また、再生についても1ブロックごとに現在の再生位置の情報を管理データに記録しておく。頻繁に未ダビングリストおよび管理データを更新することによって不揮発性媒体の書き込み寿命を短くすることが無いように、未ダビングリストおよび管理データはRAMに保持しておき、停電発生時にはバックアップ電源でRAMから不揮発性媒体に未ダビングリストおよび管理データの情報を記録しておく。こうすることによって、停電などでダビング途中あるいは再生途中で作業が中断されても電源が復旧したときに不揮発性媒体から未ダビングリストおよび管理データの情報を読み出すことで、停電前の作業を再開することが可能になる。
ブロックごとに未ダビングブロックのチェックを行い(ステップS312)、未ダビングブロックが無くなった時点で(ステップS312でNo)ダビングは終了する。未ダビングブロックがある場合には(ステップS312でYes)、未ダビングリストを参照し、現在再生位置より後方の未ダビングブロックのダビングを開始する(ステップS313)。
1ブロック再生したら再生位置を管理データに記録する。1ブロックダビングが完了したら未ダビングリストを更新し(ステップS314)、ユーザーからのスキップ再生指示を待ちながらダビングを続ける(ステップS306)。
次に、停電が発生した場合のダビングフローを図13に示す。図12と異なるのは図13の破線で囲んだ電源投入後のS402からS405の処理であり、S406のスキップ再生指令待ち以降は図12の通常のダビングフローと同じである。
電源投入後(ステップS401)に、作業状態管理データを読み出し(ステップS402)、前回起動したときの作業は正常終了していたか確認する(ステップS403)。異常終了していた場合には(ステップS403でNo)、作業状態管理データを更新し(ステップS404)、再生/ダビングポイント管理データを読み出して停電前のデータ位置からダビングを開始する(ステップS405)。その後、スキップ再生指示を受け付ける(ステップS406)。前回のダビング作業が正常終了していた場合は(ステップS403でYes)、ダビング終了する。
次に、本実施の形態2にかかる記録再生装置および記録再生方法においてダビングを行う際に扱うデータのリストについて説明する。再生/ダビングポイント管理データ、作業状態管理データ、未ダビングリスト、再生管理情報データ、ダビング済みストリームデータである。
再生/ダビングポイント管理データは、現在の再生位置と現在のダビング位置を管理するためのデータである。停電から復旧したときは、停電前に保存していた管理データを参照し、停電前の状態から再開するために使用する。ただし、アクセス単位は固定ブロックサイズとし、ブロックの途中でダビングが中断した場合であっても、ブロックの先頭から再度ダビングするものとする。図14に再生/ダビングポイント管理データのフォーマットを示す。図はデータのビット位置を示しており、記録中のブロック番号と再生中のブロック番号をそれぞれ4バイト(32ビット)で構成している。上位bit16からbit31までの16ビットまでは将来のための拡張領域とし、使用しない。下位bit0からbit15までの16ビットに実データを記録しておく。ブロック番号のとり得る値は、0から0xFFFF(16進数表記)である。
作業状態管理データは、どのブロックをダビングしていたのかを記録するためのデータである。1ブロック作業が完了するたびに更新する。電源投入時に作業完了状態以外の場合は、停電があったものとみなし、停電からの復旧時に参照する。図15に、作業状態管理データのフォーマットを示す。それぞれ、4バイト(32ビット)でダビング状態フラグと再生状態フラグを表す。bit8からbit31の上位24ビットは将来の拡張のために確保しており、ここでは使用しない。ダビング状態フラグは、停電前にコピー中であったかどうかを示している。再生状態フラグは停電前に再生中であったかどうかを示す。これらの値は、ダビングが完了したとき、および再生停止をしたときに更新する。もし、ダビング中または再生中に停電した場合、これらのファイルの値は作業中を示しているため、後で停電があったということが検出できる。とり得る値はそれぞれ0から0xFF(16進数表記)である。
未ダビングリストは、ダビングが完了していないブロックを示すリストデータである。次にどのブロックをダビングする必要があるか判断するために使う。図16に、未ダビングリストのフォーマットを示す。1つのストリームファイルにつき1つの未ダビングリストを持つものとする。それぞれ、4バイト単位で1つ当たりのブロック情報を表し、先頭はストリームファイルのブロック数をbit0からbit15で表す。bit31からbit24はダビングステータスを示しており、値が0xFF(0xは16進数を示す)でダビング完了を示す。値が0x00で未ダビング状態を示す。bit23からbit16の作業中フラグの値は、0xFFは作業していない状態を示しており、作業中のブロックは0xFF以外の値をとるものとする。再生中(0x00)とコピー中(0xAA)の状態を表す。
図14〜図16で示した各データは、次に示すタイミングで更新する。1つのブロックのコピーが完了したとき、1つのブロックの再生を完了したとき、スキップ再生をしたとき、システムを起動したときである。これらのデータはRAM上に展開しておき、システムの電源を切る前、ダビング完了時に不揮発性の領域に書き込む。これらの情報を書き込む前にシステムが停電を検出した場合には、バックアップ電源で稼働中にRAM上のデータを不揮発性の領域に書き込むことにより、作業状態を常に保持することができる。