図1は本発明によるストリームデータ受信再生装置3をデータ送信装置1、通信ネットワーク2及び表示部10と共に表すブロック図である。
データ送信装置1は通信ネットワーク2へストリームデータを送信する。ここでのストリームデータは例えばビデオやオーディオなどである。通信ネットワーク2は例えばインターネットなどである。また、通信ネットワーク2の通信状況や通信環境によってはストリームデータの伝送時間に揺らぎが生じる場合がある。
ストリームデータ受信再生装置3は、データ受信部4と、バッファ5と、復号部6と、データ変化検出部7と、データ読出し速度制御部8と、再生出力部9とを含む。
データ受信部4はデータ送信装置1が送信したストリームデータを通信ネットワーク2から受信する。
バッファ5はデータ受信部4が受信したストリームデータに含まれる符号化データの各々を順次、蓄積する。通信ネットワーク2においてストリームデータの伝送時間に揺らぎが生じた場合、蓄積する符号化データの量が一時的に変動し過大あるいは過小になる場合がある。
復号部6はバッファ5に蓄積されている符号化データの各々を読出間隔をもって順次、読み出して、これを映像音声データに復号する。平常時の読出間隔は通常、復号部6に予め設定されている。
データ変化検出部7は所定周期Δs毎に当該周期内における映像音声データの時系列的変化量を算出する。データ変化検出部7は例えば時系列的変化量を所定周期Δs内に含まれる複数の映像音声データの内の少なくとも2つの差分に基づいて算出する。ここでの差分とは例えば、所定周期Δs内に含まれる時系列的に最初の映像音声データと最後の映像音声データとの差分などである。差分を取る対象はこれら最初及び最後以外の映像音声データでも良く、時系列的に連続している映像音声データ間の差分でも良い。また、複数の映像音声データの差分を平均化するなどして時系列的変化量を算出しても良い。通常、時系列的変化量が小さければ、再生出力されるビデオやオーディオの時系列的変化量が小さい。これとは反対に通常、時系列的変化量が大きければ、再生出力されるビデオやオーディオの時系列的変化量が大きい。
また、データ変化検出部7は算出した時系列的変化量と所定の閾値VAとを比較する。閾値VAは通常、映像音声データの復号速度が変化しても再生出力される映像や音声の品質が劣化したと視聴者に認知されない程度の時系列的変化量を目安としてデータ変化検出部7に予め設定される。データ変化検出部7は算出した時系列的変化量が閾値VAを下回った場合に制御タイミング信号を送信するなどしてデータ読出し速度制御部8にその旨通知する。
データ読出し速度制御部8は時系列的変化量が所定の閾値VAを下回った場合にバッファ5内のデータ残量に基づいて復号部6の読出間隔を変更する。ここでのデータ残量とは、バッファ5に蓄積されたデータ量から復号部6によってバッファ5から読み出されたデータ量を差し引いた量である。通常、時系列的変化量が閾値VAを下回るのは、再生出力される映像や音声の時系列的変化が小さいときである。
データ読出し速度制御部8は時系列的変化量が閾値VAを下回り、かつ、所定周期Δt毎に当該所定周期Δt内におけるバッファ5内のデータ残量の最小値m1を検出して当該最小値m1が予め定められた所定値VBよりも大きい場合に復号部6の読出間隔をその現在値よりも短縮する。すなわち、現状に比較して短期間に多くの符号化データが読み出される。これにより、通信ネットワーク2におけるストリームデータの伝送時間揺らぎなどに起因してバッファ5内のデータ残量が過大になった場合に、バッファ5内のデータ残量を減少させることができる。
また、データ読出し速度制御部8は時系列的変化量が所定の閾値VAを下回り、かつ、所定周期Δt毎に当該所定周期Δt内におけるバッファ5内のデータ残量の最大値m2を検出して当該最大値m2が予め定められた所定値VDよりも小さい場合に復号部6の読出間隔をその現在値よりも伸長する。すなわち、現状に比較して短期間に読み出される符号化データの量が減少する。これにより、通信ネットワーク2におけるストリームの伝送時間揺らぎなどに起因してバッファ5内のデータ残量が過小になった場合に、バッファ5内のデータ残量を増加させることができる。
再生出力部9は復号部6による復号によって得られた映像音声データを所定の再生タイミングで再生出力する。ここでの再生タイミングとは例えばビデオであれば33m秒周期などである。表示部10は再生出力部9によって再生出力された映像音声データを表示する。
図2はデータ読出し速度制御部8が所定周期Δt毎に行う、バッファ5内のデータ残量を減少させる場合の処理ルーチンの一例を表すフローチャートである。以下に図2を参照しつつ、データ読出し速度制御部8の処理を説明する。なお、データ読出し速度制御部8が処理を行うのと併行して、データ変化検出部7は所定周期Δs毎に当該所定周期Δs内における映像音声データの時系列的変化量を算出して当該時系列的変化量と閾値VAとを比較している。
現在、データ受信部4がストリームデータを受信しており、バッファ5はデータ受信部4が受信したストリームデータに含まれる符号化データの各々を順次、蓄積しているものとする。また、復号部6はバッファ5に蓄積されている符号化データを読出間隔をもって順次、読み出して、これらを映像音声データに復号しているものとする。すなわち、バッファ5に符号化データが順次、蓄積されるのに併行して、これら蓄積された符号化データがバッファ5から復号部6によって順次、読み出されている。バッファ5に蓄積された符号化データの量よりも読み出された符号化データの量が少ない場合、バッファ5には符号化データが残存している。
データ読出し速度制御部8は所定周期Δt毎に以下の処理を行う。データ読出し速度制御部8は所定周期Δt内におけるバッファ5内のデータ残量の最小値m1を検出する。データ読出し速度制御部8は最小値m1が予め定められた所定値VBよりも大きく、かつ、データ変化検出部7によって検出された映像音声データの時系列的変化量31〜36の各々が閾値VAを下回った場合に(S21)、復号部6の読出間隔を現在値よりも短縮する(S22)。これによりバッファ5から短期間に多くの符号化データが読み出され、バッファ5内のデータ残量は現状に比較して短時間で減少する。バッファ5内のデータ残量が予め定められた所定値VCよりも小さくなった場合(S23)、データ読出し速度制御部8は、復号部6の読出間隔を平常時の間隔に戻す(S24)。
図3は上記処理によるバッファ5内のデータ残量の減少変化の一例を表すタイムチャート図である。同図中に示される3つのタイムチャートを上から順に説明する。
上段のタイムチャートはデータ変化検出部7によって算出された映像音声データの時系列的変化量の推移を表す。横軸xは時間経過を、縦軸yは映像音声データの時系列的変化量をそれぞれ表す。データ変化検出部7は所定周期Δs毎に映像音声データの時系列的変化量31〜36の各々を算出して、当該算出した時系列的変化量31〜36の各々と所定の閾値VAとを比較する。同図中においては時刻t1〜t3、t3〜t4、t4〜t6、t6〜t7及びt7〜t8の各々が所定周期Δsに相当する。なお、データ変化検出部7は時刻t1以前にも所定周期Δs毎に映像音声データの時系列的変化量を算出している。同図中においては時系列的変化量31、32、35及び36が閾値VAを上回っており、時系列的変化量33及び34が閾値VAを下回っている。
中段のタイムチャートは、データ変化検出部7が時系列的変化量が閾値VAを下回っていると判断した時点から時系列的変化量が閾値VAを上回っていると判断した時点までの期間をON、データ変化検出部7が時系列的変化量が閾値VAを上回っていると判断した時点から時系列的変化量が閾値VAを下回っていると判断した時点までの期間をOFFとして表したタイムチャートである。横軸xは時間経過を表す。同図中の記号37がON/OFFを縦軸y方向に高低で表す。データ変化検出部7はON期間中に制御タイミング信号を送信するなどしてデータ読出し速度制御部8に時系列的変化量が閾値VAを下回っている旨を通知する。期間ON中(同図中における時刻t4〜t7)であればデータ読出し速度制御部8は復号部6の読出間隔を変更できる。期間OFF中(同図中における時刻t4以前及び時刻t7以降)であればデータ読出し速度制御部8は復号部6の読出間隔を変更しない。
下段のタイムチャートはバッファ5内におけるデータ残量38の推移を表す。横軸xは時間経過を、縦軸yはバッファ5内におけるデータ残量をそれぞれ表す。所定周期Δtはデータ読出し速度制御部8がバッファ5内のデータ残量の最小値を検出する周期であり、同図中においては時刻t2〜t4の期間がそれに相当する。なお、データ読出し速度制御部8は時刻t2以前及び時刻t4以降にも所定周期Δt毎にバッファ5内のデータ残量の最小値を検出している。データ残量m1は所定周期Δt内におけるバッファ5内のデータ残量の最小値である。
時刻t4以前(中段のタイムチャートにおいてはOFF期間)において所定周期Δt内におけるバッファ5内のデータ残量の最小値m1が予め定められた所定値VBよりも大きかったとしても(すなわち、データ残量が大きい値の範囲を推移していたとしても)、時刻t1及び3における時系列的変化量31及び32が所定の閾値VAを上回っているため、データ読出し速度制御部8は復号部6の読出間隔を変更しない。
データ読出し速度制御部8は時刻t4において、所定周期Δt内におけるバッファ5内のデータ残量の最小値がm1であることを検出する。データ残量の最小値m1が所定値VBよりも大きく(すなわち、データ残量が大きい値の範囲を推移しており)、かつ、時刻t4において時系列的変化量33が所定の閾値VAを下回っているため、データ読出し速度制御部8は復号部6の読出間隔を現在値よりも短縮する。例えば読出間隔の現在値が30m秒である場合に15m秒に短縮する。これによりバッファ5から短期間に多くの符号化データが読み出され、バッファ5内のデータ残量は時刻t4〜t5の短期間で適正量に減少する。バッファ5内のデータ残量が予め定められた所定値VCよりも小さくなった時刻t5において、データ読出し速度制御部8は、復号部6の読出間隔を平常時の間隔に戻す。これらの処理がなされるのは、中段のタイムチャートにおいてはON期間中、すなわち、映像音声データの時系列的変化量が小さい期間中である。
通常、再生出力されずにバッファ5内のデータ残量が過大である程、ストリームデータの再生遅延が増大する。上記した処理により時刻t4〜t5の短期間でバッファ5内のデータ残量を適正量まで減らすことによって再生遅延を解消できる。また、映像音声データの時系列的変化量が小さい期間すなわち、再生出力される映像や音声の時系列的変化が小さい期間中にバッファ5内のデータ残量を減少させるため、データ残量の減少に伴いデータ復号速度に変化が生じたとしても映像や音声の再生品質を保つことができる。したがって、リアルタイム性が重視される用途、例えば、ビデオやオーディオなどのストリームデータのストリーミング再生において、再生遅延が解消され、サービス品質を向上させることができる。
図4はデータ読出し速度制御部8が所定周期Δt毎に行う、バッファ5内のデータ残量を増加させる場合の処理ルーチンの一例を表すフローチャートである。以下に図4を参照しつつ、データ読出し速度制御部8の処理を説明する。なお、データ読出し速度制御部8が処理を行うのと併行して、データ変化検出部7は所定周期Δs毎に当該所定周期Δs内における映像音声データの時系列的変化量を算出して当該時系列的変化量と閾値VAとを比較している。
現在、データ受信部4がストリームデータを受信しており、バッファ5はデータ受信部4が受信したストリームデータに含まれる符号化データを順次蓄積しているものとする。また、復号部6はバッファ5に蓄積されている符号化データを読出間隔をもって順次、読み出して、これらを映像音声データに復号しているものとする。すなわち、バッファ5に符号化データが順次、蓄積されるのに併行して、これら蓄積された符号化データがバッファ5から復号部6によって順次、読み出されている。バッファ5に蓄積された符号化データの量よりも読み出された符号化データの量が少ない場合、バッファ5にはデータが残存している。
データ読出し速度制御部8は所定周期Δt毎に以下の処理を行う。データ読出し速度制御部8は所定周期Δt内におけるバッファ5内のデータ残量の最大値m2を検出する。データ読出し速度制御部8は最大値m2が予め定められた所定値VDよりも小さく、かつ、データ変化検出部7によって検出された映像音声データの時系列的変化量31〜36の各々が閾値VAを下回った場合に(S41)、復号部6の読出間隔を現在値よりも伸長する(S42)。これによりバッファ5から読み出される符号化データの量が短期間の内に減少し、バッファ5内のデータ残量は現状に比較して短時間で増加する。バッファ5内のデータ残量が予め定められた所定値VEよりも大きくなった場合(S43)、データ読出し速度制御部8は、復号部6の読出間隔を平常時の間隔に戻す(S44)。
図5は上記処理によるバッファ5内のデータ残量の増加変化の一例を表すタイムチャート図である。同図中に示される3つのタイムチャートの内、上段及び中段のタイムチャートは図3と同様であるため説明を省略する。
下段のタイムチャートはバッファ5内におけるデータ残量39の推移を表す。横軸xは時間経過を、縦軸yはバッファ5内におけるデータ残量をそれぞれ表す。所定周期Δtはデータ読出し速度制御部8がバッファ5内のデータ残量を検出する周期であり、同図中においては時刻t2〜t4の期間がそれに相当する。なお、データ読出し速度制御部8は時刻t2以前及び時刻t4以降にも所定周期Δt毎にバッファ5内のデータ残量を検出している。データ残量m2は所定周期Δt内におけるバッファ5内のデータ残量の最大値である。
時刻t4以前(中段のタイムチャートにおいてはOFF期間)において所定周期Δt内におけるバッファ5内のデータ残量の最大値m2が予め定められた所定値VDよりも小さかったとしても(すなわち、データ残量が小さい値の範囲を推移していたとしても)、時刻t1及び3における時系列的変化量31及び32が所定の閾値VAを上回っているため、データ読出し速度制御部8は復号部6の読出間隔を変更しない。
データ読出し速度制御部8は時刻t4において、所定周期Δt内におけるバッファ5内のデータ残量の最大値がm2であることを検出する。データ残量の最大値がm2が所定値VDよりも小さく(すなわち、データ残量が小さい値の範囲を推移しており)、かつ、時刻t4において時系列的変化量33が所定の閾値VAを下回っているため、データ読出し速度制御部8は復号部6の読出間隔を現在値よりも伸長する。例えば読出間隔の現在値が30m秒である場合に50m秒に伸長する。これによりバッファ5から読み出される符号化データの量が短期間の内に減少し、バッファ5内のデータ残量は時刻t4〜t5の短期間で適正量に増加する。バッファ5内のデータ残量が所定値VEよりも大きくなった時刻t5において、データ読出し速度制御部8は、復号部6の読出間隔を平常時の間隔に戻す。これらの処理がなされるのは、中段のタイムチャートにおいてはON期間中、すなわち、映像音声データの時系列的変化量が小さい期間中である。
通常、バッファ5内のデータ残量が過小である場合、例えばビデオやオーディオの再生間隔が間延びするなどの再生品質の劣化が生じやすい。上記した処理により時刻t4〜t5の短期間でバッファ5内のデータ残量を適正量まで増やすことによって再生品質の劣化が生じやすい状態から生じ難い状態に移行できる。また、映像音声データの時系列的変化量が小さい期間すなわち、再生出力される映像や音声の時間的変化が小さい期間中にバッファ5内のデータ残量を増加させるため、データ残量の増加に伴いデータ復号速度に変化が生じたとしても映像や音声の再生品質を保つことができる。したがって、リアルタイム性が重視される用途、例えば、ビデオやオーディオなどのストリームデータのストリーミング再生において、再生遅延を必要最小限としつつ、サービス品質を向上させることができる。
上述した実施例はバッファ5内のデータ残量が過大である場合に、復号部6が短期間で読み出した符号化データを全て復号する場合の例であるが、復号部6はこれら短期間で読み出した符号化データを復号せずに破棄しても良い。この場合には復号部6はデータ読出し速度制御部8より平常間隔で符号化データを読み出すよう指示された時点において符号化データの復号処理を再開すれば上述の実施例と同様の効果が得られる。また、上述した実施例はバッファ5内のデータ残量が過小である場合に、復号部6がバッファ5内に残存する符号化データの読出し間隔を伸長する場合の例であるが、復号部6は符号化データの読み出しを一時的に停止しても良い。この場合には復号部6はデータ読出し速度制御部8より平常間隔で符号化データを読み出すよう指示された時点において読み出し及び復号処理を再開すれば上述の実施例と同様の効果が得られる。
再生出力部9は平常間隔で符号化データが読み出されているときには、所定の表示タイミングで映像音声データを再生出力する。所定の表示タイミングよりも早く映像音声データが得られた場合は、再生出力部9は所定の表示タイミングが到来してから当該映像音声データを再生出力する。短縮された読出間隔で符号化データが読み出されているときには、再生出力部9は所定の表示タイミングが到来した時点において得られた最新の映像音声データを再生出力する。伸長された読出間隔で符号化データが読み出されているときには、再生出力部9は所定の表示タイミングよりも長い表示タイミングにて映像音声データを再生出力する。
上記した如く本実施例に拠れば、通信ネットワーク2におけるストリームデータの伝送時間揺らぎなどに起因してバッファ5内のデータ残量が過大となった場合には、バッファ5からデータの各々を順次読み出す読出間隔を短くする。これにより、短期間でバッファ5内のデータ残量を適正量まで減少させてバッファのオーバーフローの発生を回避し、ストリームデータの再生遅延を抑制できる。また、バッファ5内のデータ残量が過小となった場合には、バッファ5からデータの各々を順次読み出す読出間隔を長くする。これにより、短期間でバッファ5内のデータ残量を適正量まで増加させて、バッファのアンダーフローの発生を回避し、ストリームデータの再生遅延を最小限としつつ、再生品質を向上させることができる。
また、映像音声データの時系列的変化量が小さい期間すなわち、再生出力される映像や音声の時系列的変化が小さい期間中にバッファ5内のデータ残量を増加若しくは減少させることによって、データ残量の増加及び減少に伴うデータの復号、再生速度に変化が生じたとしても映像や音声の再生品質を保つことができる。このように本実施例に拠るストリームデータ受信再生装置は、バッファのアンダーフローやオーバーフローの発生を回避し、ビデオやオーディオなどのストリームデータの品質を劣化させることなく再生できる。
図6は属性データ取出し部11及び属性変化検出部12を含むストリームデータ受信再生装置3をデータ送信装置1、通信ネットワーク2及び表示部10と共に表すブロック図である。データ読出し速度制御部8、属性データ取出し部11及び属性変化検出部12以外のブロックについては図1と同様である。
属性データ取出し部11は符号化データの各々に含まれる属性データを順次取り出す。ここでの属性データとはストリームデータに含まれる少なくとも1つの符号化パラメータからなる。ビデオ関連の符号化パラメータとしては、画像サイズ、フレームレート、ビットレート、符号化方式などが挙げられる。オーディオ関連の符号化パラメータとしては、サンプリング周波数、チャンネル数、符号化方式などが挙げられる。属性データはこれら符号化パラメータの内の1つ若しくはこれらの組み合わせからなる。通常、データ送信装置1がストリームデータを生成する際に属性データをこれに含める。
属性変化検出部12は属性データ取出し部11によって順次取り出された時系列的に連続若しくは近接する属性データ間の差異を検出する。ストリームデータがビデオやオーディオなどの複数のコンテンツを含む場合、コンテンツの各々は他と異なる独自の属性データを有する。そのため、複数のコンテンツを連結したストリームデータにおいては、コンテンツの結合部分の各々において属性データが切り替わることになる。属性データの差異が検出されるタイミングは、コンテンツが切り替わるタイミング、すなわち、再生出力される映像や音声の内容が切り替わるタイミングである。
データ読出し速度制御部8は属性データの差異が検出された場合にバッファ5内のデータ残量に基づいて復号部6の読出間隔を変更する。実施例1と同様にデータ読出し速度制御部8は、所定周期Δt毎に当該所定周期Δt内におけるバッファ5内のデータ残量の最小値m1を検出して当該最小値m1が予め定められた所定値VBよりも大きい場合に復号部6の読出間隔をその現在値よりも短縮するものとする。また、データ読出し速度制御部8は、所定周期Δt毎に当該所定周期Δt内におけるバッファ5内のデータ残量の最大値m2を検出して当該最大値m2が予め定められた所定値VDよりも小さい場合に復号部6の読出間隔をその現在値よりも伸長するものとする。
図7は上記処理によるバッファ5内のデータ残量の減少変化の一例を表すタイムチャート図である。同図中に示される3つのタイムチャートを上から順に説明する。
上段のタイムチャートは属性データ取出し部11によって取り出された属性データ70−1〜38の推移を表す。横軸xは時間経過を表す。属性データ取出し部11はバッファ5から読み出した符号化データの各々に含まれる属性データ70−1〜38を順次取り出す。属性データ70−1〜14は切り替え前の、属性データ70−15〜38は切り替え後のコンテンツを構成する符号化データに含まれていた属性データである。属性データ70−1〜14の各々は互いに差異がない。同様に属性データ70−15〜38の各々は互いに差異がない。また、属性データ70−1〜14の各々と属性データ70−15〜38の各々とは差異があるものとする。なお、属性データ70−1〜38はコンテンツを構成する複数の符号化データの内の一部から取り出されたものの一例であり、通常、コンテンツはより多くの符号化データからなる。
中段のタイムチャートは、属性変化検出部12によって属性データ間の差異が検出された時点からの所定期間ΔuをON、属性データ間の差異が検出される以前の期間及び差異が検出された時点からの所定期間Δu経過以降をOFFとして表したタイムチャートである。横軸xは時間経過を表す。同図中の記号81がON/OFFを縦軸y方向に高低で表す。属性変化検出部12はON期間中に制御タイミング信号を送るなどしてデータ読出し速度制御部8に属性データ間の差異を検出した旨を通知する。所定期間Δu(ON期間)は、例えば1秒間など任意に設定できる。期間ON中(同図中における時刻t12〜t14)であればデータ読出し速度制御部8は復号部6の読出間隔を変更できる。期間OFF中(同図中における時刻t12以前及び時刻t14以降)であればデータ読出し速度制御部8は復号部6の読出間隔を変更しない。
下段のタイムチャートはバッファ5内におけるデータ残量82の推移を表す。横軸xは時間経過を、縦軸yはバッファ5内におけるデータ残量をそれぞれ表す。所定周期Δtはデータ読出し速度制御部8がバッファ5内のデータ残量を検出する周期であり、同図中においては時刻t11〜t12の期間がそれに相当する。なお、データ読出し速度制御部8は時刻t11以前及び時刻t12以降にも所定周期Δt毎にバッファ5内のデータ残量を検出している。データ残量m1は所定周期Δt内におけるバッファ5内のデータ残量の最小値である。
時刻t12以前(中段のタイムチャートにおいてはOFF期間)において所定周期Δt内におけるバッファ5内のデータ残量の最小値m1が予め定められた所定値VBよりも大きかったとしても(すなわち、データ残量が大きい値の範囲を推移していたとしても)、属性データ70−1〜14の各々の比較においては差異が検出されないため、データ読出し速度制御部8は復号部6の読出間隔を変更しない。
データ読出し速度制御部8は時刻t12において、所定周期Δt内におけるバッファ5内のデータ残量の最小値がm1であることを検出する。データ残量の最小値m1が予め定められた所定値VBよりも大きく(すなわち、データ残量が大きい値の範囲を推移しており)、かつ、時刻t12において属性データ70−14と70−15との間に差異が検出されるため、データ読出し速度制御部8は復号部6の読出間隔を現在値よりも短縮する。これによりバッファ5から短期間に多くの符号化データが読み出され、バッファ5内のデータ残量は時刻t12〜t13の短期間で適正量に減少する。バッファ5内のデータ残量が予め定められた所定値VCよりも小さくなった時刻t13において、データ読出し速度制御部8は、復号部6の読出間隔を平常時の間隔に戻す。これらの処理がなされるのは、中段のタイムチャートにおいてはON期間中、すなわち、コンテンツの切り替わり時点からの所定期間Δu中(例えば1秒間など)である。所定期間Δu内においては通常、再生出力される映像や音声の時間的変化はほとんどない。
通常、再生出力されずにバッファ5内のデータ残量が過大である程、ストリームデータの再生遅延が増大する。上記した処理により時刻t12〜t13の短期間でバッファ5内のデータ残量を適正量まで減らすことによって再生遅延を解消できる。また、コンテンツの切り替わり時点から所定期間Δu内すなわち、再生出力される映像や音声の時間的変化がほとんどない期間中にバッファ5内のデータ残量を減少させるため、データ残量の減少に伴いデータの復号、再生速度に変化が生じたとしても映像や音声の再生品質を保つことができる。したがって、リアルタイム性が重視される用途、例えば、ビデオやオーディオなどのストリームデータのストリーミング再生において、再生遅延が解消され、サービス品質を向上させることができる。
図8は上記処理によるバッファ5内のデータ残量の減少変化の一例を表すタイムチャート図である。同図中に示される3つのタイムチャートの内、上段及び中段のタイムチャートは図6と同様であるため説明を省略する。
下段のタイムチャートはバッファ5内におけるデータ残量83の推移を表す。横軸xは時間経過を、縦軸yはバッファ5内におけるデータ残量をそれぞれ表す。所定周期Δtはデータ読出し速度制御部8がバッファ5内のデータ残量を検出する周期であり、同図中においては時刻t11〜t12の期間がそれに相当する。なお、データ読出し速度制御部8は時刻t11以前及び時刻t12以降にも所定周期Δt毎にバッファ5内のデータ残量を検出している。データ残量m2は所定周期Δt内におけるバッファ5内のデータ残量の最大値である。
時刻t12以前(中段のタイムチャートにおいてはOFF期間)において所定周期Δt内におけるバッファ5内のデータ残量の最大値m2が予め定められた所定値VDよりも小さかったとしても(すなわち、データ残量が小さい値の範囲を推移していたとしても)、属性データ70−1〜14の各々の比較においては差異が検出されないため、データ読出し速度制御部8は復号部6の読出間隔を変更しない。
データ読出し速度制御部8は時刻t12において、所定周期Δt内におけるバッファ5内のデータ残量の最大値がm2であることを検出する。データ残量の最大値m2が予め定められた所定値VDよりも大きく(すなわち、データ残量が小さい値の範囲を推移しており)、かつ、時刻t12において属性データ70−14と70−15との間に差異が検出されるため、データ読出し速度制御部8は復号部6の読出間隔を現在値よりも伸長する。これによりバッファ5から読み出される符号化データの量が短期間の内に減少し、バッファ5内のデータ残量は時刻t12〜t13の短期間で適正量に増加する。バッファ5内のデータ残量が予め定められた所定値VEよりも大きくなった時刻t13において、データ読出し速度制御部8は、復号部6の読出間隔を平常時の間隔に戻す。これらの処理がなされるのは、中段のタイムチャートにおいてはON期間中、すなわち、コンテンツの切り替わり時点からの所定期間Δu中(例えば1秒間など)である。コンテンツの切り替わり時点から所定期間Δu内においては通常、再生出力される映像や音声の時間的変化はほとんどない。
通常、バッファ5内のデータ残量が過小である場合、例えばビデオやオーディオの再生間隔が間延びするなどの再生品質の劣化が生じやすい。上記した処理により時刻t12〜t13の短期間でバッファ5内のデータ残量を適正量まで増やすことによって再生品質の劣化が生じやすい状態から生じ難い状態に移行できる。また、映像音声データの時系列的変化量が小さい期間すなわち、再生出力される映像や音声の時系列的変化が小さい期間中にバッファ5内のデータ残量を増加させるため、データ残量の増加に伴いデータ復号速度に変化が生じたとしても映像や音声の再生品質を保つことができる。したがって、リアルタイム性が重視される用途、例えば、ビデオやオーディオなどのストリームデータのストリーミング再生において、再生遅延を必要最小限としつつ、サービス品質を向上させることができる。
上記した如く本実施例に拠れば、通信ネットワーク2におけるストリームデータの伝送時間揺らぎなどに起因してバッファ5内のデータ残量が過大となった場合には、バッファ5からデータの各々を順次読み出す読出間隔を短くする。これにより、短期間でバッファ5内のデータ残量を適正量まで減少させてバッファのオーバーフローの発生を回避し、ストリームデータの再生遅延を抑制できる。また、バッファ5内のデータ残量が過小となった場合には、バッファ5からデータの各々を順次読み出す読出間隔を長くする。これにより、短期間でバッファ5内のデータ残量を適正量まで増加させて、バッファのアンダーフローの発生を回避し、ストリームデータの再生遅延を最小限としつつ、再生品質を向上させることができる。
また、ストリームデータ内のコンテンツ切り替わり時点から所定期間Δu内、すなわち、再生出力される映像や音声の内容が切り替わる期間中にバッファ5内のデータ残量を増加若しくは減少させることによって、データ残量の増加及び減少に伴いデータ復号速度に変化が生じたとしても映像や音声の再生品質を保つことができる。このように本実施例に拠るストリームデータ受信再生装置は、バッファのアンダーフローやオーバーフローの発生を回避し、ビデオやオーディオなどのストリームデータの品質を劣化させることなく再生できる。
図1中には属性データ取出し部11及び属性変化検出部12が、図2中にはデータ変化検出部7が、それぞれ図示されていないが、ストリームデータ受信再生装置3はこれら全てを同時に含んでいても良い。
ストリームデータに互いに差分の少ない一連の符号化データ及び/若しくは少なくとも2つの属性データを意図的に含めておき、上記した2実施例に示されるのと同様の処理をなすことにより、所望のタイミングにてバッファ5内のデータ残量を増減させることもできる。