(57)【要約】【課題】データの損失を最小限に抑えることを可能にしたバッファ制御装置を提供すること。【解決手段】バッファを制御するバッファ制御装置を前提としている。そして、このバッファ制御装置において、特定のデータを格納するためのバッファがフルになったとき、他の特定のデータを格納している領域（たとえば、他の特定のデータの最終のデータブロックを格納している領域）に上記特定のデータを格納するバッファ制御部を備えたことを特徴とする。このようにすれば、特定のデータを格納するためのバッファがフルになったときであっても、この特定のデータが損失することを最小限に抑えることができる。【選択図】　図１
2004023346.tif 000002
【特許請求の範囲】
【請求項１】
バッファを制御するバッファ制御装置において、
特定のデータを格納するためのバッファがフルになったか否かを判定する判定部と、
上記判定部によって上記バッファがフルになったと判定されたとき、他の特定のデータを格納している領域に上記特定のデータを格納するバッファ制御部と、
を備えたことを特徴とするバッファ制御装置。
【請求項２】
上記バッファ制御部は、上記他の特定のデータの最終のデータブロックを格納している領域に上記特定のデータを格納する請求項１に記載のバッファ制御装置。
【請求項３】
上記バッファ制御部は、上記最終のデータブロックを取得できる状態になったとき、この最終のデータブロックを再びバッファに格納する請求項２に記載のバッファ制御装置。
【請求項４】
上記特定のデータよりも上記他の特定のデータを優先的に先読みしておく請求項１に記載のバッファ制御装置。
【請求項５】
さらに、データを受信する受信部と、上記受信部が受信した蓄積用のデータを蓄積する蓄積部と、上記受信部が受信した再生用のデータまたは上記蓄積部に蓄積されている再生用のデータを再生する再生部とを備えた請求項１に記載のバッファ制御装置。
【請求項６】
上記バッファ制御部は、上記再生用のデータの最終のデータブロックを格納している領域に上記蓄積用のデータを格納する請求項５に記載のバッファ制御装置。
【請求項７】
上記バッファ制御部は、上記蓄積部のエラーが復旧したとき、この蓄積部に蓄積されている上記最終のデータブロックを再びバッファに格納する請求項６に記載のバッファ制御装置。
【請求項８】
上記蓄積用のデータをダブルバッファだけ確保しておくとともに、上記再生用のデータを残りの空きバッファ全部に先読みしておく請求項５に記載のバッファ制御装置。
【請求項９】
コンピュータに、
特定のデータを格納するためのバッファがフルになったか否かを判定する判定処理と、
上記判定処理で上記バッファがフルになったと判定されたとき、他の特定のデータを格納している領域に上記特定のデータを格納するバッファ制御処理と、
を実行させるためのプログラム。
【請求項１０】
バッファを制御するバッファ制御装置において、
上記バッファ内の空き領域のサイズをｍ、上記バッファへ格納する特定のデータのサイズをｎとした場合に、ｍ＜ｎの条件を満たすか否かを判定する判定部と、
上記条件を満たした場合、上記特定のデータをサイズｍだけ空き領域へ格納するとともに残余のサイズ（ｎ−ｍ）だけ他の特定のデータが格納されている領域へ格納するバッファ制御部と、
を備えたことを特徴とするバッファ制御装置。
【請求項１１】
上記特定のデータの方が上記他の特定のデータよりも優先度が高い請求項１または１０に記載のバッファ制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、バッファを制御するバッファ制御装置に関する。
【０００２】
【従来の技術】
近年、ハードディスク搭載型の放送受信装置を対象にした蓄積型データ放送サービスが展開されつつある。
【０００３】
このようなハードディスク搭載型の放送受信装置では、受信したデータをハードディスクに蓄積しておくことができる。したがって、ユーザは、放送時間枠にとらわれることなく、ハードディスクに蓄積しておいたデータを再生することができる。
【０００４】
ところで、上記ハードディスク搭載型の放送受信装置では、ハードディスクにデータを蓄積する際や、ハードディスクに蓄積されているデータを再生する際には、これらデータを一時的に格納するために、バッファ（メモリ）を使用する。
【０００５】
すなわち、蓄積用のデータは、一時的に蓄積用バッファに格納された後、ハードディスクに転送されるようになっている。また、再生用のデータは、一時的に再生用バッファに格納された後、再生部に転送されるようになっている。
【０００６】
【発明が解決しようとする課題】
しかしながら、バッファに格納することができるデータサイズには当然上限がある。したがって、このような放送受信装置によると、以下に説明するように、特定の状況下ではデータが損失するという問題があった。
【０００７】
たとえば、ハードディスクにデータを蓄積している最中にディスクエラーが発生した場合、このエラーが復旧するまでの間は、当該ハードディスクに蓄積用のデータを転送できない。このように蓄積用のデータを転送できない状態が一定時間続くとバッファが溢れ、データが損失する。この場合は、途中が欠落したデータがハードディスクに蓄積されることになる。
【０００８】
本発明は、上記従来の事情に基づいて提案されたものであって、データの損失を最小限に抑えることを可能にしたバッファ制御装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明は、上記目的を達成するため、バッファを制御するバッファ制御装置において、以下の手段を採用している。
【００１０】
すなわち、判定部は、特定のデータを格納するためのバッファがフルになったか否かを判定する。そして、バッファ制御部は、上記判定部によって上記バッファがフルになったと判定されたとき、他の特定のデータを格納している領域（たとえば、他の特定のデータの最終のデータブロックを格納している領域）に上記特定のデータを格納する。このようにすれば、特定のデータを格納するためのバッファがフルになったときであっても、この特定のデータが損失することを最小限に抑えることができる。
【００１１】
また、上記バッファ制御部は、上記最終のデータブロックを取得できる状態になったとき、この最終のデータブロックを再びバッファに格納する。このようにすれば、特定のデータを格納するためのバッファとして、他の特定のデータを格納しているバッファの一部を使用した場合であっても、この他の特定のデータが損失することもない。
【００１２】
【発明の実施の形態】
以下、本発明の実施の形態を図面にしたがって詳細に説明する。なお、以下の説明では、発明が解決しようとする課題の欄でいう「蓄積用のデータ」を「蓄積データＳ」といい、また「再生用のデータ」を「再生データＰ」という。
［全体構成］
図１は、本発明を適用した放送受信装置（たとえばセットトップボックス）２の機能ブロック図であり、以下その構成を説明する。
【００１３】
蓄積部１６は、たとえばハードディスクである。
【００１４】
受信部４は、蓄積データＳを受信してバッファ６に転送する。蓄積制御部１２は、このようにバッファ６に転送された蓄積データＳをハードディスク等の蓄積部１６に転送する。
【００１５】
再生制御部１４は、蓄積部１６に蓄積されている再生データＰをバッファ６に転送する。再生部８は、このようにバッファ６に転送された再生データＰの先頭を検出すると、この再生データＰの種類に応じて出力映像を復元し、図示しないテレビ受像機などに出力する。
【００１６】
上記蓄積制御部１２と上記再生制御部１４（以下、両者を一括して「バッファ制御部１０」という）は、ユーザからの指示に基づいて動作する。すなわち、ユーザは、リモコン等の操作部Ｏを用いることによって、蓄積部１６に蓄積データＳを蓄積するための指示や、蓄積部１６に蓄積されている再生データＰを再生するための指示などをバッファ制御部１０に対して出すことができる。
【００１７】
判定部Ｊは、上記バッファ制御部１０からの要求に応じて、特定のデータを格納するためのバッファがフルになったか否かを判定する。この特定のデータは、具体的には蓄積データＳのことであるが、詳細については後述する。
【００１８】
報知部Ａは、当該装置２の状態など、何らかの情報をユーザに対して報知する。報知形態としては、後述するように、各種のメッセージを図示しないテレビ受像機に表示する形態を採用することができる。
【００１９】
ここでいうバッファ６は、物理的には１つであっても複数であってもよい。すなわち、物理的に１つであっても、論理的に、発明が解決しようとする課題の欄でいう「蓄積用バッファ」と「再生用バッファ」の両方の役割を果せばよい。
［データ管理構造］
次に、上記バッファ制御部１０が扱うデータの管理構造を詳しく説明する。
【００２０】
バッファ制御部１０は、詳細については後述するが、複数のデータを同時に制御することができる。ここでいう複数のデータの種別は特に限定されるものではない。
【００２１】
以下、符号「Ｓ」あるいは「Ｐ」の後に数字を付すことにより、個々の蓄積データＳあるいは再生データＰを区別して説明する。たとえば、蓄積データＳ１とＳ２とＳ３は、それぞれ別個の蓄積データであり、再生データＰ１とＰ２とＰ３も、それぞれ別個の再生データである。
【００２２】
蓄積データＳあるいは再生データＰの具体例としては、ＭＰＥＧ（Ｍｏｖｉｎｇ　Ｐｉｃｔｕｒｅ　Ｅｘｐｅｒｔｓ　Ｇｒｏｕｐ）２形式のストリームデータを挙げることができる。このようなストリームデータは、所定サイズ（たとえば１ＭＢ）で管理される。
【００２３】
以下、個々の蓄積データＳ１あるいは再生データＰ１の後に括弧付きで連続番号を付すことにより、ストリームの連続性を表す。たとえば、再生データＰ１（１）、Ｐ１（２）、・・・、Ｐ１（ｎ）は、その順に再生すると、連続性のある映像を復元できることを意味している。その意味では、たとえばＰ１（１）は、「再生データ」と表現するよりも「再生データブロック」と表現するのが妥当であるが、ここでは単に「再生データ」と表現することにする。
【００２４】
上記バッファ制御部１０が扱うデータの管理構造を図２に示す。
【００２５】
実データ格納部５０は、再生データＰあるいは蓄積データＳを一時的に格納する。すなわち、この実データ格納部５０は、図１でいうバッファ６に相当する。以下、実データ格納部５０とバッファ６とを特に区別することなく記載する場合がある。
【００２６】
再生データＰ１の管理ブロック４０、蓄積データＳ１の管理ブロック６０、空きバッファ管理ブロック７０、データ管理部２０、優先度管理部３０の各手段は、バッファ６を制御する際に使用される各種の管理情報を格納する。これら管理情報は、図１でいうバッファ制御部１０によって生成されて、バッファ６あるいはバッファ６とは別個のメモリに展開される。
【００２７】
上記再生データＰ１の管理ブロック４０とは、実データ格納部５０に格納されている再生データＰ１の連続性を管理するための領域をいう。この管理ブロック４０は、以下に説明する領域４１〜４６を備えている。
【００２８】
領域４１は、再生データＰ１（１）へのポインタを格納し、領域４２は、再生データＰ１（２）へのポインタを格納している領域へのポインタを格納している。領域４３は、再生データＰ１（２）へのポインタを格納し、領域４４は、再生データＰ１（３）へのポインタを格納している領域へのポインタを格納している。領域４５は、再生データＰ１（ｎ）へのポインタを格納し、領域４６は、この再生データＰ１（ｎ）が最終のデータであることを意味するＮＵＬＬを格納している。
【００２９】
上記蓄積データＳ１の管理ブロック６０とは、実データ格納部５０に格納されている蓄積データＳ１の連続性を管理するための領域をいう。この管理ブロック６０は、以下に説明する領域６１〜６６を備えている。
【００３０】
領域６１は、蓄積データＳ１（１）へのポインタを格納し、領域６２は、蓄積データＳ１（２）へのポインタを格納している領域へのポインタを格納している。領域６３は、蓄積データＳ１（２）へのポインタを格納し、領域６４は、蓄積データＳ１（３）へのポインタを格納している領域へのポインタを格納している。領域６５は、蓄積データＳ１（ｎ）へのポインタを格納し、領域６６は、この蓄積データＳ１（ｎ）が最終のデータであることを意味するＮＵＬＬを格納している。
【００３１】
もっとも、再生データの管理ブロックは、上記再生データＰ１の管理ブロック４０に限定されるものではない。たとえば、別の再生データＰ２を管理する必要がある場合は、この再生データＰ２の管理ブロックが存在することになる。
【００３２】
同様に、蓄積データの管理ブロックは、上記蓄積データＳ１の管理ブロック６０に限定されるものではない。たとえば、別の蓄積データＳ２を管理する必要がある場合は、この蓄積データＳ２の管理ブロックが存在することになる。
【００３３】
上記空きバッファ管理ブロック７０とは、空きバッファを管理するための領域をいう。この管理ブロック７０内の領域７１〜７３は、いずれも、空きバッファへのポインタを格納している。
【００３４】
上記データ管理部２０とは、上記両管理ブロック４０・６０の先頭を管理するための手段をいう。このデータ管理部２０は、以下に説明する領域２１〜２４を備えている。
【００３５】
領域２１は、再生データＰ１の管理ブロック４０へのポインタを格納し、領域２２は、再生データＰ２の管理ブロック（図示せず）へのポインタを格納している。領域２３は、蓄積データＳ１の管理ブロック６０へのポインタを格納し、領域２４は、蓄積データＳ２の管理ブロック（図示せず）へのポインタを格納している。
【００３６】
上記優先度管理部３０とは、データ間の優先度を管理するための手段をいう。この優先度管理部３０は、以下に説明する優先度管理テーブル３２と変数３１とを備えている。
【００３７】
上記優先度管理テーブル３２は、図３に示すように、データへのアクセス情報と当該データの優先度とを対応付けて格納している。この「データへのアクセス情報」としては、データ管理部２０内の領域２１・２２・２３・２４へのポインタを採用している。
【００３８】
ここで、領域２３へのポインタは、優先度「１」と対応付けされている。上記したように、領域２３は、蓄積データＳ１の管理ブロック６０へのポインタを格納しているので、この蓄積データＳ１は、最も優先度の高いデータであることがわかる。
【００３９】
また、領域２４へのポインタは、優先度「２」と対応付けされている。上記したように、領域２４は、蓄積データＳ２の管理ブロック（図示せず）へのポインタを格納しているので、この蓄積データＳ２は、２番目に優先度の高いデータであることがわかる。
【００４０】
さらに、領域２１へのポインタは、優先度「３」と対応付けされている。上記したように、領域２１は、再生データＰ１の管理ブロック４０へのポインタを格納しているので、この再生データＰ１は、３番目に優先度の高いデータであることがわかる。
【００４１】
最後に、領域２２へのポインタは、優先度「４」と対応付けされている。上記したように、領域２２は、再生データＰ２の管理ブロック（図示せず）へのポインタを格納しているので、この再生データＰ２は、４番目に優先度の高いデータ（ここでは、最も優先度の低いデータ）であることがわかる。
【００４２】
上記変数３１とは、バッファ６に格納されているデータの中で最も優先度の低いデータへアクセスするための手段をいう。ここでは、再生データＰ２が最も優先度の低いデータであるから、この再生データＰ２の管理ブロックへのポインタを格納している領域（すなわち、領域２２）へのポインタが上記変数３１にセットされている。
【００４３】
上記優先度の決め方は特に限定されるものではない。すなわち、優先度は、当該放送受信装置２の機能や、当該放送受信装置２によって受信可能な放送サービスの内容などに応じて決めるのが好ましい。
【００４４】
上記優先度を優先度管理テーブル３２に設定するタイミングも特に限定されるものではない。すなわち、当該放送受信装置２の出荷前に優先度を設定しておくようにしてもよいし、あるいは、ユーザが操作部Ｏを用いて優先度を自由に設定できるようにしてもよい。
［通常時の動作］
以下、通常時の動作について説明する。
【００４５】
図４（Ａ）は、実データ格納部５０（１）に再生データＰ１（１）が格納されている状態を示している。この状態では、再生データＰ１（１）に後続するデータがない。したがって、再生データＰ１（１）が最終のデータであることを示すＮＵＬＬが管理ブロック４０内の領域４２に格納されている。
【００４６】
バッファ制御部１０は、上記再生データＰ１（１）に後続する再生データＰ１（２）をその格納要求とともに受けると、空きバッファ管理ブロック７０を参照し、この空きバッファ管理ブロック７０内の領域７１に格納されているポインタを特定する。そして、図４（Ｂ）に示すように、このポインタが指す実データ格納部５０（２）に上記再生データＰ１（２）を格納する（図５、ステップＳ１２１：Ｙｅｓ→Ｓ１３０）。
【００４７】
このように実データ格納部５０に新たにデータを格納した場合は、その管理ブロックの内容を以下の手順で更新しておく（図５、ステップＳ１３１）。
【００４８】
すなわち、バッファ制御部１０は、図４（Ｂ）に示すように、上記実データ格納部５０（２）へのポインタを管理ブロック４０内の領域４３に格納する。また、ＮＵＬＬを管理ブロック４０内の領域４４に格納する。さらに、図４（Ｃ）に示すように、管理ブロック４０内の領域４２の内容をＮＵＬＬから「Ｐ１（２）へのポインタを格納している領域へのポインタ」に変更する。
【００４９】
このようにすれば、実データ格納部５０における再生データＰ１の連続性を保つことができる。すなわち、再生データＰ１（１）に後続する再生データＰ１（２）が新たに格納された結果、この再生データＰ１（２）が最終のデータとなった旨の管理情報を設定できたことになる。
【００５０】
ここでは、実データ格納部５０に再生データＰを格納する動作について説明したが、実データ格納部５０に蓄積データＳを格納する動作や、実データ格納部５０に再生データＰと蓄積データＳの両方を格納する動作も、基本的に同じである。
［ディスクエラー発生時の動作］
ところで、ハードディスクにデータを蓄積している最中にディスクエラーが発生した場合、このエラーが復旧するまでの間は、当該ハードディスクに蓄積用のデータを転送できない。このように蓄積用のデータを転送できない状態が一定時間続くとバッファが溢れ、データが損失する。この場合は、途中が欠落したデータがハードディスクに蓄積されることになる。
【００５１】
以下、ディスクエラー発生時の動作を上記通常時の動作と異なる点を中心に説明する。もちろん、ここでいうディスクエラーとは蓄積部１６のエラーをいう。
【００５２】
図６（Ａ）は、蓄積データＳ１（１）（２）と再生データＰ１（１）（２）とが実データ格納部５０に格納されている状態を示している。この状態では、蓄積データＳ１（２）と再生データＰ１（２）とが最終のデータである。
【００５３】
バッファ制御部１０は、上記蓄積データＳ１（２）に後続する蓄積データＳ１（３）をその格納要求とともに受けると、空きバッファ管理ブロック７０を参照する。そして、空きバッファがないことがわかると、優先度管理部３０内の変数３１を参照する（図５、ステップＳ１２１：Ｎｏ→Ｓ１２２）。
【００５４】
もっとも、ディスクエラーが発生した直後にはバッファに空きが生じる場合もある。この場合は、上記〔通常時の動作〕で説明したように、この空きバッファに上記蓄積データＳ１（３）を格納すればよい（図５、ステップＳ１２１：Ｙｅｓ→Ｓ１３０）。
【００５５】
さて、上記したように、変数３１とは、バッファ６に格納されているデータの中で最も優先度の低いデータへアクセスするための手段をいう。
【００５６】
ここで、再生データＰ１が最も優先度の低いデータであると仮定すると、バッファ制御部１０は、上記変数３１を参照することによって、この再生データＰ１の管理ブロック４０を特定することになる。そして、この管理ブロック４０の先頭領域４１にＮＵＬＬが格納されていないことがわかると（後述する）、この管理ブロック４０の最終領域４３に格納されているポインタを参照する（図５、ステップＳ１２３：Ｎｏ）。さらに、図６（Ｂ）に示すように、このポインタが指す実データ格納部５０（４）に上記蓄積データＳ１（３）を上書きする（図５、ステップＳ１２７）。
【００５７】
このように実データ格納部５０に新たにデータを格納した場合は、その管理ブロックの内容を更新しておく（図５、ステップＳ１２８）。
【００５８】
すなわち、バッファ制御部１０は、図６（Ｂ）に示すように、上記実データ格納部５０（４）へのポインタを管理ブロック６０内の領域６７に格納する。また、ＮＵＬＬを管理ブロック６０内の領域６８に格納する。さらに、管理ブロック６０内の領域６６の内容をＮＵＬＬから「Ｓ１（３）へのポインタを格納している領域へのポインタ」に変更する。
【００５９】
このようにすれば、実データ格納部５０における蓄積データＳ１の連続性を保つことができる。すなわち、蓄積データＳ１（２）に後続する蓄積データＳ１（３）が新たに格納された結果、この蓄積データＳ１（３）が最終のデータとなった旨の管理情報を設定できたことになる。
【００６０】
一方、実データ格納部５０（４）に格納されていた再生データＰ１（２）は、上記のように、蓄積データＳ１（３）によって上書きされたことになる。したがって、バッファ制御部１０は、図６（Ｂ）に示すように、再生データＰ１の管理ブロック４０内の領域４２にＮＵＬＬを格納する（図５、ステップＳ１２８）。
【００６１】
このようにすれば、実データ格納部５０における再生データＰ１についても、その連続性を保つことができる。すなわち、再生データＰ１（１）に後続する再生データＰ１（２）が蓄積データＳ１（３）によって上書きされた結果、この再生データＰ１（１）が最終のデータとなった旨の管理情報を設定できたことになる。
【００６２】
ここで、最も優先度の低いデータの管理ブロック４０の先頭領域４１にＮＵＬＬが格納されているということは（図５、ステップＳ１２３：Ｙｅｓ）、この「最も優先度の低いデータ」が実データ格納部５０に格納されていないことを意味する。そこで、バッファ制御部１０は、以下の要領で変数３１の値を更新する（図５、ステップＳ１２４）。
【００６３】
たとえば、図３に示す優先度管理テーブル３２においては、最も低い優先度は「４」である。このため、まずは優先度「４」に対応する「データ管理部２２へのポインタ」が変数３１にセットされている点は上記した。
【００６４】
ここで、バッファ制御部１０は、変数３１の値を更新する必要が生じた場合、すなわち、最も優先度の低いデータの管理ブロック４０の先頭領域４１にＮＵＬＬが格納されている場合（図５、ステップＳ１２３：Ｙｅｓ）は、次に低い優先度である「３」に対応する「データ管理部２１へのポインタ」を変数３１にセットする（図５、ステップＳ１２４）。このようにすれば、バッファ制御部１０は、次に優先度の低いデータへアクセスすることが可能となる。これによって、次に優先度の低いデータの一部が上記蓄積データＳ１（３）によって上書きされることになるのはいうまでもない。
【００６５】
ただし、このように変数３１の値を更新したことにより、この変数３１によって特定されるデータの優先度と、当該格納対象であるデータの優先度とが等しくなる場合がある。たとえば、当該格納対象であるデータの優先度が「２」である場合は、変数３１の値を２度更新すると、この変数３１によって特定されるデータの優先度と、当該格納対象であるデータの優先度は、いずれも「２」となり等しくなる。
【００６６】
このように、変数３１によって特定されるデータの優先度が当該格納対象であるデータの優先度と等しくなったら、上書きする側とされる側との間で優劣がなくなったことになるので、これ以上、当該データの格納動作を継続するのは妥当でない。そこで、この場合は、当該データの格納動作を停止するようになっている（図５、ステップＳ１２５：Ｙｅｓ→Ｓ１２６）。
【００６７】
以上のように、本発明では、蓄積データを格納するためのバッファがフルになったとき、この蓄積データを格納するためのバッファとして、再生データを格納しているバッファの一部を使用するようにしている。このようにすれば、蓄積データが損失することを最小限に抑えることができる。
【００６８】
上記の説明では、空きバッファがないことをバッファ制御部１０が検知することとしているが、本発明はこれに限定されるものではない。すなわち、図１の機能ブロック図に示すように、空きバッファがあるか否かをバッファ制御部１０が判定部Ｊに問い合わせる構成を採用しても同様の効果が得られる。この構成を採用する場合、空きバッファ管理ブロック７０は、バッファ制御部１０ではなく判定部Ｊの管理下に置かれることになるのはいうまでもない。
【００６９】
上記の説明では特に言及しなかったが、空きバッファがなくなったら（図５、ステップＳ１２１：Ｙｅｓ）、報知部Ａは、その旨をユーザに報知する。この報知の形態は特に限定されるものではないが、図７（Ａ）に示すように、「ＨＤＤが不調です」等のメッセージをテレビ受像機に表示するのが好ましい。
【００７０】
変数３１によって特定されるデータの優先度が当該格納対象であるデータの優先度と等しくなったときも（図５、ステップＳ１２５：Ｙｅｓ）、報知部Ａは、その旨をユーザに報知する。この報知の形態も特に限定されるものではないが、図７（Ｂ）に示すように、「ＨＤＤが停止しました。現在放送されている番組に切り替えます」等のメッセージをテレビ受像機に表示するのが好ましい。もっとも、このようなメッセージを表示した場合は、現在放送されている番組を受信部４・バッファ６・再生部８を介してテレビ受像機に出力するようになっている。［ディスクエラー発生時におけるバッファの状態遷移］
ここでは、図８に示す場面を想定している。
【００７１】
すなわち、受信部４からバッファ６へは２ＭＢ／秒のレートで蓄積データＳが転送されており、また、バッファ６から蓄積部１６へは６ＭＢ／秒のレートで蓄積データＳが転送されている。一方、蓄積部１６からバッファ６へは６ＭＢ／秒のレートで再生データＰが転送されており、また、バッファ６から再生部８へは１ＭＢ／秒のレートで再生データＰが転送されている。
【００７２】
以下、上記［ディスクエラー発生時の動作］を更に詳しく説明するために、図９を用いて、実データ格納部５０の状態遷移について説明する。なお、図９で示す１６個の矩形５０（１）〜５０（１６）は、それぞれ１ＭＢの実データ格納部５０を表している。
【００７３】
ディスクエラー発生時の状態を図９（Ａ）に示す。
【００７４】
すなわち、ディスクエラー発生時には、再生データＰ（１）〜Ｐ（１４）が実データ格納部５０（１）〜５０（１４）に格納されている。また、蓄積データＳ（１）とＳ（２）とが実データ格納部５０（１５）と５０（１６）とに格納されている。
【００７５】
このように、本発明では、蓄積データＳをダブルバッファだけ確保しておくとともに、再生データＰを残りの空きバッファ全部に先読みしておく手法を採用している。このダブルバッファという手法と先読みという手法については後に詳しく説明する。
【００７６】
ディスクエラー発生時から所定単位時間後の状態を図９（Ｂ）に示す。ここでは、所定単位時間を１秒として説明するが、この所定単位時間は特に限定されるものではない。
【００７７】
ディスクエラーが発生すると、このエラーが復旧するまでの間は、バッファ６から蓄積部１６へ蓄積データＳを転送することはできないし、また、蓄積部１６からバッファ６へ再生データＰを転送することもできない。したがって、ここでは、バッファ６から再生部８へ再生データＰを転送する点と、受信部４からバッファ６へ蓄積データＳを転送する点について説明する。
【００７８】
まず、上記したように、バッファ６から再生部８へ再生データＰを転送するレートは１ＭＢ／秒である。したがって、ディスクエラー発生時から１秒後には、実データ格納部５０（１）に格納されていた再生データＰ（１）は再生部８へ転送され、この実データ格納部５０（１）が空きバッファとなる。
【００７９】
一方、上記したように、受信部４からバッファ６へ蓄積データＳを転送するレートは２ＭＢ／秒である。したがって、ディスクエラー発生時から１秒後には、実データ格納部５０に２ＭＢの空きバッファが必要となる。
【００８０】
しかしながら、この時点での空きバッファは、上記再生データＰ（１）を格納していた実データ格納部５０（１）しかない。すなわち、受信部４からの蓄積データＳを格納するためには、あと１ＭＢの空きバッファを確保する必要がある。
【００８１】
そこで、最後の再生データＰ（１４）を格納している実データ格納部５０（１４）を、受信部４からの蓄積データＳを格納するために使用する。
【００８２】
以上の結果、図９（Ｂ）に示すように、再生データＰ（１４）を格納している実データ格納部５０（１４）に蓄積データＳ（３）が上書きされることになる。また、再生データＰ（１）を格納していた実データ格納部５０（１）に蓄積データＳ（４）が格納されることになる。
【００８３】
このように、再生データＰ（１４）を格納している実データ格納部５０（１４）に蓄積データＳ（３）を上書きすることになるのは、再生データＰの優先度よりも蓄積データＳの優先度の方が高いためである。すなわち、再生データＰの優先度よりも蓄積データＳの優先度の方が低い場合は、上記の上書きが行われることはない。
【００８４】
ディスクエラー発生時から２秒後の状態を図９（Ｃ）に示す。
【００８５】
図９（Ｂ）から図９（Ｃ）への状態遷移は、基本的に、図９（Ａ）から図９（Ｂ）への状態遷移と同じである。すなわち、ここでは、再生データＰ（１３）を格納している実データ格納部５０（１３）に蓄積データＳ（５）が上書きされることになる。また、再生データＰ（２）を格納していた実データ格納部５０（２）に蓄積データＳ（６）が格納されることになる。
【００８６】
このような経過をたどると、ディスクエラー発生時から６秒後には、再生データＰ（７）とＰ（８）が残っている他は、すべて蓄積データＳで埋まることになる。この状態を図９（Ｄ）に示す。
【００８７】
さらに１秒が経過すると、上記再生データＰ（７）とＰ（８）も再生部８へ転送される。すなわち、ディスクエラー発生時から７秒後には、図９（Ｅ）に示すように、実データ格納部５０の全部が蓄積データＳで埋まることになる。
【００８８】
以上のように、本発明によれば、ディスクエラーが発生した場合でも、７秒間の再生を保証できる（再生データＰを７秒間途切れることなく再生部８へ転送することができる）とともに、７秒間の蓄積を保証できる（７秒分の蓄積データＳをバッファに格納しておくことができる）という効果がある。
【００８９】
したがって、蓄積部１６が７秒以内に復旧すれば、再生と蓄積の両方を保証できることになる。なお、この復旧直後の動作については後述する。
［比較例１］
ここでは、本発明による効果をより明確にするために従来技術を例示する。
【００９０】
従来、再生データＰと蓄積データＳとをダブルバッファだけ確保しておくという手法がある。このダブルバッファとは、蓄積部１６にアクセスする単位の２倍のサイズのデータを格納するバッファをいう。ここでは、蓄積部１６にアクセスする単位を１ＭＢとしているので、ダブルバッファのサイズは２ＭＢになる。
【００９１】
図１０に示すように、再生データＰと蓄積データＳとをダブルバッファだけ確保しておくという手法を採用すれば、通常時の再生および蓄積についてはデータの損失がない。
【００９２】
すなわち、図１０（Ａ）に示すように、受信部４からの蓄積データＳは、たとえば２ＭＢ／秒のレートで実データ格納部５０に転送される。そして、この蓄積データＳが１ＭＢだけ実データ格納部５０に格納されたところで、たとえば３０ＭＢ／秒のレートで１ＭＢの蓄積データＳが実データ格納部５０から蓄積部１６に転送される。このように、実データ格納部５０から蓄積部１６に蓄積データＳを転送するレートが受信部４から実データ格納部５０に蓄積データＳを転送するレートよりも十分に高ければ、通常の蓄積についてはデータの損失がない。
【００９３】
一方、図１０（Ｂ）に示すように、再生データＰは、再生部８によって例えば１ＭＢ／秒のレートで再生される。この場合も同様に、実データ格納部５０から再生部８に１ＭＢの再生データＰが転送されたところで、たとえば３０ＭＢ／秒のレートで１ＭＢの再生データＰが蓄積部１６から実データ格納部５０に転送される。このように、蓄積部１６から実データ格納部５０に再生データＰを転送するレートが実データ格納部５０から再生部８にデータを転送するレートよりも十分に高ければ、通常の再生についてもデータの損失がない。
【００９４】
ここで、ディスクエラー発生時の実データ格納部５０の状態遷移を図１１に示す。
【００９５】
ディスクエラー発生時には、図１１（Ａ）に示すように、再生データＰ（１）（２）が実データ格納部５０（１）（２）に格納されている。ここでも、図８に示すように、バッファ６から再生部８へは１ＭＢ／秒のレートで再生データＰが転送されるものと仮定すると、実データ格納部５０には、２秒分の再生データＰしか格納されていないことになる。
【００９６】
すなわち、ディスクエラーが発生してから１秒後には、図１１（Ｂ）に示すように、再生データＰ（２）のみが実データ格納部５０（２）に格納されている状態となる。そして、この再生データＰ（２）も、ディスクエラーが発生してから２秒後には、図１１（Ｃ）に示すように実データ格納部５０から無くなる。
【００９７】
このように、再生データＰをダブルバッファだけ確保しておくという手法を採用した場合は、当然、再生については２秒間しか保証できない。
【００９８】
一方、ディスクエラー発生時には、図１１（Ａ）に示すように、実データ格納部５０（３）から５０（１４）まで１２ＭＢの空きバッファがある。ここでも、図８に示すように、受信部４からバッファ６へは２ＭＢ／秒のレートで蓄積データＳが転送されるものと仮定すると、この空きバッファには、図１１（Ｄ）に示すように、６秒分の蓄積データＳ（３）〜Ｓ（１４）を格納できることになる。
【００９９】
さらに、上記したように、ディスクエラーが発生してから２秒後には、再生データＰ（１）（２）を格納していた実データ格納部５０（１）（２）が空きバッファとなる。この空きバッファには、図１１（Ｅ）に示すように、１秒分の蓄積データＳ（１５）（１６）を格納することができる。
【０１００】
以上のように、再生データＰと蓄積データＳとをダブルバッファだけ確保しておくという手法を採用した従来例によれば、ディスクエラーが発生してから７秒（６秒プラス１秒）間の蓄積は保証できるものの、再生については２秒間しか保証できない。すなわち、再生と蓄積の両方を保証するには、蓄積部１６が２秒以内に復旧することが条件となる。
［比較例２］
ここでも、本発明による効果をより明確にするために別の従来技術を例示する。
【０１０１】
従来、図１２に示すように、蓄積データＳをダブルバッファだけ確保しておくとともに、再生データＰを残りの空きバッファ全部に先読みしておく手法がある。
【０１０２】
すなわち、図１２（Ａ）は、蓄積データＳをダブルバッファだけ確保しておく手法の説明図である。この手法は、図１０（Ａ）を用いて既に説明した通りであるため、ここでは説明しない。
【０１０３】
一方、図１２（Ｂ）は、再生データＰを残りの空きバッファ全部に先読みしておく手法の説明図である。この図に示すように、上記ダブルバッファを除く全部の空きバッファ（１４ＭＢの空きバッファ）に再生データＰを予め格納しておく。そして、この実データ格納部５０から再生部８に１ＭＢの再生データＰが転送されたところで、たとえば３０ＭＢ／秒のレートで１ＭＢの再生データＰが蓄積部１６から実データ格納部５０に転送される。このように、蓄積部１６から実データ格納部５０に再生データＰを転送するレートが実データ格納部５０から再生部８にデータを転送するレートよりも十分に高ければ、通常の再生についてはデータの損失がない。
【０１０４】
ここで、ディスクエラーが発生した時の実データ格納部５０の状態遷移を説明する。
【０１０５】
まず、ディスクエラー発生時には、図１３（Ａ）に示すように、再生データＰ（１）〜Ｐ（１４）が実データ格納部５０（１）〜５０（１４）に格納されている。ここでも、図８に示すように、バッファ６から再生部８へは１ＭＢ／秒のレートで再生データＰが転送さるものと仮定すると、実データ格納部５０には、１４秒分の再生データＰが格納されていることになる。
【０１０６】
しかしながら、ディスクエラー発生時には、図１３（Ａ）に示すように、実データ格納部５０には空きバッファがない。したがって、図８に示すように、受信部４からバッファ６へは２ＭＢ／秒のレートで蓄積データＳが転送されるものと仮定すると、ディスクエラーが発生してから１秒後にはバッファ溢れが生じてしまう。
【０１０７】
一方、再生データＰは、実データ格納部５０から再生部８へ１ＭＢ／秒のレートで転送される。したがって、ディスクエラーが発生してから１秒後には、図１３（Ｂ）に示すように、再生データＰ（１）を格納していた実データ格納部５０（１）が空きバッファとなる。同様に、ディスクエラーが発生してから２秒後には、図１３（Ｃ）に示すように、再生データＰ（２）を格納していた実データ格納部５０（２）も空きバッファとなる。
【０１０８】
このような経過をたどると、ディスクエラーが発生してから１３秒後には、図１３（Ｄ）に示すように、再生データＰ（１４）のみが実データ格納部５０（１４）に格納されている状態となる。そして、この再生データＰ（１４）も、ディスクエラーが発生してから１４秒後には、図１３（Ｅ）に示すように実データ格納部５０から無くなる。
【０１０９】
以上のように、蓄積データＳをダブルバッファだけ確保しておくとともに、再生データＰを残りの空きバッファ全部に先読みしておく手法を採用した従来例によれば、ディスクエラーが発生してから１４秒間の再生は保証できるものの、蓄積については１秒間しか保証できない。すなわち、再生と蓄積の両方を保証するには、蓄積部１６が１秒以内に復旧することが条件となる。
［ディスクエラー復旧直後の動作］
上記したように、再生と蓄積の両方を保証するためには、比較例１では、蓄積部１６が２秒以内に復旧することが条件となり、また、比較例２では、蓄積部１６が１秒以内に復旧することが条件となる。それに対して、本発明では、蓄積部１６が７秒以内に復旧すれば、再生と蓄積の両方を保証できることになる。
【０１１０】
以下、本発明におけるディスクエラー復旧直後の動作を説明する。
【０１１１】
なお、ここでも、上記［ディスクエラー発生時の動作］と同様、再生データＰの優先度よりも蓄積データＳの優先度の方が高いものと仮定する。また、ここでは、バッファ制御部１０の動作を明確に説明するために、このバッファ制御部１０を構成する蓄積制御部１２と再生制御部１４の動作を区別して説明する。
【０１１２】
まず、蓄積制御部１４は、ディスクエラーが復旧すると（図１４、ステップＳ１８０）、このエラーが発生してから復旧するまでの間に実データ格納部５０に格納しておいた蓄積データＳを蓄積部１６に転送する（図１４、ステップＳ１８１：Ｙｅｓ→Ｓ１８２：Ｎｏ→Ｓ１８３）。そして、このように蓄積データＳを蓄積部１６に転送すると空きバッファができるので（図１４、ステップＳ１８４）、この空きバッファに後続の蓄積データＳを格納する（図１４、ステップＳ１８５：Ｙｅｓ→Ｓ１８６）。
【０１１３】
このように実データ格納部５０に新たにデータを格納した場合は、その管理ブロックの内容を更新しておく（図１４、ステップＳ１９１）。この更新手法は既に説明したので、ここでは詳しい説明を省略する。
【０１１４】
上記の処理を実データ格納部５０に蓄積データＳがなくなるまで繰り返す（図１４、ステップＳ１９２→Ｓ１８１→・・・→Ｓ１９２）。ただし、蓄積データＳを蓄積部１６に転送することで空きバッファができるまでに、後続の蓄積データＳを実データ格納部５０に格納しなければならない場合（すなわち、後続の蓄積データＳの格納要求を受ける場合）があり、この場合（図１４、ステップＳ１８２：Ｙｅｓ）は以下の処理を行う。
【０１１５】
まず、実データ格納部５０に空きバッファがあるときは、この空きバッファに当該後続の蓄積データＳを格納する（図１４、ステップＳ１８８：Ｙｅｓ→Ｓ１８９）。一方、実データ格納部５０に空きバッファがないときは、再生データＰを格納している実データ格納部５０に当該後続の蓄積データＳを上書きする（図１４、ステップＳ１８８：Ｎｏ→Ｓ１９０）。このように再生データＰが蓄積データＳによって上書きされる点は、上記［ディスクエラー発生時の動作］において図６を用いて説明した通りであるため、ここでは詳しい説明を省略する。
【０１１６】
上記蓄積制御部１４が行う処理と並行して再生制御部１４は以下の処理を行う。
【０１１７】
まず、実データ格納部５０に空きバッファがあるときは、この空きバッファに後続の再生データＰを格納する（図１５（Ａ）、ステップＳ２０１：Ｙｅｓ→Ｓ２０２）。また、再生要求を受けたときは、この再生対象である再生データＰを実データ格納部５０から再生部８へ転送する（図１５（Ｂ）、ステップＳ２１１：Ｙｅｓ→Ｓ２１２）。
【０１１８】
もっとも、上記したように、再生データＰの一部は蓄積データＳによって上書きされている。したがって、再生制御部１４は、ディスクエラー発生時およびディスクエラー発生直後に上書きされた再生データＰを再び蓄積部１６から読み出して実データ格納部５０の空きバッファに格納するようになっている。
【０１１９】
通常時の状態になるまで上記の処理を繰り返す。ここでいう通常時の状態とは、蓄積データＳをダブルバッファだけ確保しておくとともに、再生データＰを残りの空きバッファ全部に先読みした状態をいう。
【０１２０】
以上のように、本発明では、ディスクエラーが復旧すると、蓄積データＳによって上書きされた再生データＰを再び蓄積部１６から取得するようにしている。すなわち、本発明によれば、蓄積データＳによって上書きされた再生データＰが損失することもない。
［ディスクエラー復旧直後におけるバッファの状態遷移］
ここでは、図１６に示す場面を想定している。
【０１２１】
すなわち、受信部４からバッファ６へは２ＭＢ／秒のレートで蓄積データＳが転送されており、また、バッファ６から蓄積部１６へは６ＭＢ／秒のレートで蓄積データＳが転送されている。一方、蓄積部１６からバッファ６へは６ＭＢ／秒のレートで再生データＰが転送されており、また、バッファ６から再生部８へは１ＭＢ／秒のレートで再生データＰが転送されている。
【０１２２】
なお、ここでは、蓄積部１６からバッファ６へは６ＭＢ／秒のレートで再生データＰが転送されることとしているが、この６ＭＢ／秒のレートは最大の転送レートをいう。したがって、空きバッファがない場合は、６ＭＢ／秒よりも低いレートで再生データＰが転送されることになる（後述する）。
【０１２３】
以下、上記［ディスクエラー復旧直後の動作］を更に詳しく説明するために、図１７を用いて、実データ格納部５０の状態遷移について説明する。
【０１２４】
ディスクエラーが発生してから６秒後に当該エラーが復旧した場合は、２ＭＢの再生データＰと１４ＭＢの蓄積データＳとが実データ格納部５０に格納された状態となる。この状態は、当然、上記［ディスクエラー発生時におけるバッファの状態遷移］で説明した図９（Ｄ）に示す状態と同じである。
【０１２５】
ディスクエラーが復旧してから所定単位時間後の状態を図１７（Ｂ）に示す。ここでは、所定単位時間を０．５秒として説明するが、この所定単位時間は特に限定されるものではない。
【０１２６】
上記したように、受信部４からバッファ６へ蓄積データＳを転送するレートは２ＭＢ／秒である。したがって、ディスクエラーが復旧してから０．５秒後には、受信部４から転送されてくる１ＭＢの蓄積データＳ（１５）を格納するために、１ＭＢの空きバッファが必要になる。
【０１２７】
しかしながら、ディスクエラーが復旧した時点では空きバッファがない（図１７（Ａ）参照）。そこで、ここでは、図１７（Ｂ）に示すように、再生データＰ（２）を格納している実データ格納部５０（８）に上記蓄積データＳ（１５）が上書きされることになる。
【０１２８】
その間、実データ格納部５０に格納されている蓄積データＳは、この実データ格納部５０から蓄積部１６へ２ＭＢ／秒よりも高速に転送することができる。したがって、たとえば６ＭＢ／秒の転送能力を持つハードディスクを蓄積部１６に採用した場合は、ディスクエラーが復旧してから０．５秒後には、図１７（Ｂ）に示すように、３ＭＢの空きバッファ５０（９）〜５０（１１）ができた状態になる。
【０１２９】
一方、ここでは、バッファ６から再生部８へは１ＭＢ／秒のレートで再生データＰが転送される場面を想定している。したがって、ディスクエラーが復旧してから０．５秒後には、図１７（Ｂ）に示すように、０．５ＭＢの再生データＰ（１）が実データ格納部５０（７）から再生部８へ転送された状態になる。
【０１３０】
ディスクエラーが復旧してから１．０秒後の状態を図１７（Ｃ）に示す。
【０１３１】
まず、０．５ＭＢの再生データＰ（１）が実データ格納部５０（７）から再生部８へ転送されることになるので、この実データ格納部５０（７）は完全な空きバッファとなる。
【０１３２】
また、蓄積データＳ（１）〜Ｓ（３）を格納していた実データ格納部５０（９）〜５０（１１）が空きバッファとなったことから、この空きバッファ５０（９）（１０）に再生データＰ（２）（３）を格納する。このように再生データＰ（２）を再び実データ格納部５０に格納することになるのは、上記したように、実データ格納部５０（８）に格納されていた再生データＰ（２）が蓄積データＳ（１５）によって上書きされたためである。
【０１３３】
ここで、蓄積部１６からバッファ６へは６ＭＢ／秒のレートで再生データＰが転送される場面を想定しているにもかかわらず、実データ格納部５０（１１）には再生データＰ（４）が格納されない。なぜなら、再生データＰの優先度よりも蓄積データＳの優先度の方が高いので、この実データ格納部５０（１１）には、蓄積データＳ（１６）が格納されるからである。
【０１３４】
さらに、実データ格納部５０（１２）〜５０（１４）に格納されていた蓄積データＳ（４）〜Ｓ（６）は蓄積部１６へ転送されることになる。したがって、この実データ格納部５０（１２）〜５０（１４）は空きバッファとなる。
【０１３５】
ディスクエラーが復旧してから１．５秒後の状態を図１７（Ｄ）に示す。
【０１３６】
再生データＰ（１）を格納していた実データ格納部５０（７）が空きバッファとなったことから、この空きバッファ５０（７）に蓄積データＳ（１７）を格納する。また、蓄積データＳ（４）〜Ｓ（６）を格納していた実データ格納部５０（１２）〜５０（１４）が空きバッファとなったことから、この空きバッファ５０（１２）〜５０（１４）に再生データＰ（４）〜Ｐ（６）を格納する。
【０１３７】
このように、４ＭＢの空きバッファがある場合は、そのうちの１ＭＢの空きバッファに蓄積データＳを格納するとともに、残りの３ＭＢの空きバッファに再生データＰを格納することになる。すなわち、ここでは、蓄積部１６からバッファ６へは、最大の転送レート（６ＭＢ／秒）で再生データＰ（４）〜Ｐ（６）を転送することができる。
【０１３８】
その他の状態遷移は、図１７（Ｂ）から図１７（Ｃ）への状態遷移と同じである。
【０１３９】
ディスクエラーが復旧してから２．０秒後の状態を図１７（Ｅ）に示す。また、ディスクエラーが復旧してから２．５秒後の状態を図１７（Ｆ）に示す。これら状態遷移の説明は上記した説明に含まれるので、ここでは省略する。
【０１４０】
以上のように、本発明によれば、蓄積部１６が７秒以内に復旧すれば、再生と蓄積の両方を保証することができる。上記したように、再生と蓄積の両方を保証するためには、比較例１では、蓄積部１６が２秒以内に復旧することが条件となり、また、比較例２では、蓄積部１６が１秒以内に復旧することが条件となることを考えると、この効果は非常に大きい。
【０１４１】
なお、上記の説明では、ディスクエラーが発生する場面を想定しているため、再生データＰよりも蓄積データＳを優先することとしているが、本発明はこれに限定されるものではない。たとえば、ディスクエラーではなく再生部８にエラーが発生した場面では、蓄積データＳよりも再生データＰを優先するようにしてもよい。
【０１４２】
また、上記の説明では特に言及しなかったが、蓄積データＳをダブルバッファだけ確保しておくとともに、再生データＰを残りの空きバッファ全部に先読みしておくようにしたのは、再生と蓄積の両方を保証するためである。すなわち、ディスクエラーが発生したら蓄積データＳによって再生データＰが上書きされることになるため、逆に通常時は、蓄積データＳよりも再生データＰを優先的に先読みしておくようにした。もちろん、「優先的に先読みする」とは、先読みしておくデータのサイズが大きいことを意味する。
【０１４３】
さらに、上記の説明では、セットトップボックスなどの放送受信装置に本発明を適用した場面を例示したが、本発明の適用範囲はこれに限定されるものではない。すなわち、本発明は、複数のデータを同時にバッファする際に、このバッファを効率的に使用するための発明である。したがって、その適用範囲は、セットトップボックスなどの放送受信装置だけでなく、バッファを使用する装置すべてに及ぶ。
【０１４４】
【発明の効果】
以上のように、本発明によると、特定のデータを格納するためのバッファがフルになったときであっても、この特定のデータが損失することを最小限に抑えることができる。また、このように、特定のデータを格納するためのバッファとして、他の特定のデータを格納しているバッファの一部を使用した場合であっても、この他の特定のデータが損失することもない。
【図面の簡単な説明】
【図１】本発明を適用した放送受信装置の機能ブロック図
【図２】バッファ制御部が扱うデータの管理構造を示す図
【図３】優先度管理テーブルの内部構造を示す図
【図４】データ格納の説明図
【図５】ディスクエラー発生時の動作を示すフローチャート
【図６】上書きの説明図
【図７】報知形態の一例を示す図
【図８】データ転送レートを示す図
【図９】ディスクエラー発生時におけるバッファの状態遷移図
【図１０】ダブルバッファ手法の説明図
【図１１】ダブルバッファ手法を採用した従来技術の説明図
【図１２】先読み手法の説明図
【図１３】先読み手法を採用した従来技術の説明図
【図１４】ディスクエラー復旧直後の蓄積動作を示すフローチャート
【図１５】ディスクエラー復旧直後の再生動作を示すフローチャート
【図１６】データ転送レートを示す図
【図１７】ディスクエラー復旧直後におけるバッファの状態遷移図
【符号の説明】
２　放送受信装置
４　受信部
６　バッファ
８　再生部
１０　バッファ制御部
１２　蓄積制御部
１４　再生制御部
１６　蓄積部
２０　データ管理部
３０　優先度管理部
３１　変数
３２　優先度管理テーブル
４０　再生データＰ１の管理ブロック
５０　実データ格納部
６０　蓄積データＳ１の管理ブロック
７０　空きバッファ管理ブロック
Ｏ　操作部
Ａ　報知部
Ｐ　再生データ
Ｓ　蓄積データ
【図１】
2004023346.tif 000003
【図２】
2004023346.tif 000004
【図３】
2004023346.tif 000005
【図４】
2004023346.tif 000006
【図５】
2004023346.tif 000007
【図６】
2004023346.tif 000008
【図７】
2004023346.tif 000009
【図８】
2004023346.tif 000010
【図９】
2004023346.tif 000011
【図１０】
2004023346.tif 000012
【図１１】
2004023346.tif 000013
【図１２】
2004023346.tif 000014
【図１３】
2004023346.tif 000015
【図１４】
2004023346.tif 000016
【図１５】
2004023346.tif 000017
【図１６】
2004023346.tif 000018
【図１７】
2004023346.tif 000019