(57)【要約】  算出部（２５１）が、第一のデータが記憶部（２４４）に記憶されてから、記憶部に記憶される第二のデータが出力されるまでの経過時間を算出する。出力要求部（２５３）は、経過時間に基づいて、出力部（２５４）がデータを出力する速度を変化させる。【特許請求の範囲】
【請求項１】
データを記憶するための記憶部（２４４）と、
データを前記記憶部に記憶させる蓄積部（２５２）と、
前記記憶部に記憶されたデータの出力要求を行なうための出力要求部（２５３）と、
前記出力要求に応じて、前記記憶部に記憶されたデータを出力させるための出力部（２５４）と、
第一のデータが、前記蓄積部によって、前記記憶部に記憶されてから、前記記憶部に記憶される第二のデータが、前記出力部によって出力されるまでの経過時間を算出するための算出部（２５１）とを備え、
前記出力要求部は、前記経過時間に基づいて、前記出力部がデータを出力する速度を変化させる、出力回路。
【請求項２】
前記出力要求部は、前記経過時間が所定の上限値に達した場合、前記出力部がデータを出力させる速度を増加させ、前記経過時間が所定の下限値に達した場合、前記出力部がデータを出力させる速度を減少させる、請求の範囲第１項に記載の出力回路。
【請求項３】
前記算出部は、所定時間における、前記記憶部に記憶されるデータに基づいて変化する前記経過時間の情報を所定個数使用し、所定の演算により、前記経過時間の特性を算出し、
前記出力要求部は、前記経過時間の特性に基づいて、前記出力部がデータを出力する速度を変化させる、請求の範囲第１項に記載の出力回路。
【請求項４】
前記所定の演算は、最小二乗法による演算である、請求の範囲第３項に記載の出力回路。
【請求項５】
前記経過時間は、前記蓄積部が前記第一のデータを前記記憶部に記憶させた時刻と、前記出力部が前記記憶部に記憶された前記第二のデータを出力させる時刻との差分の時間である、請求の範囲第１項に記載の出力回路。
【請求項６】
前記経過時間は、前記蓄積部が前記第一のデータを前記記憶部に記憶させてから、前記出力部が前記記憶部に記憶された前記第二のデータを出力させるまでにカウントされるクロックカウント数に基づく時間である、請求の範囲第１項に記載の出力回路。
【請求項７】
前記第一のデータおよび前記第二のデータは同じデータである、請求の範囲第１項に記載の出力回路。
【請求項８】
前記記憶部に前記第一のデータが記憶されてから、前記記憶部に前記第二のデータが記憶されるまでの期間において、前記記憶部には所定個数のデータが記憶される、請求の範囲第１項に記載の出力回路。
【請求項９】
データを記憶するための記憶部（２４４）と、
暗号化された暗号データを前記記憶部に記憶させる蓄積部（２５２）と、
前記記憶部に記憶された暗号データの出力要求を行なうための出力要求部（２５３）と、
前記出力要求に応じて、前記記憶部から暗号データを出力するための第一出力部（２５４）と、
前記第一出力部から出力される暗号データを、復号するための復号部（２５５）と、
前記復号部により復号された復号データを出力するための第二出力部（２５６）と、
第一の暗号データが、前記蓄積部によって、前記記憶部に記憶されてから、前記記憶部に記憶される第二の暗号データが、前記第一出力部によって出力されるまでの経過時間を算出するための算出部（２５１）とを備え、
前記第二出力部は、前記経過時間に基づいて、前記復号データを出力する速度を変化させる、出力回路。
【請求項１０】
前記第二出力部は、前記経過時間が所定の上限値に達した場合、前記復号データを出力する速度を増加させ、前記経過時間が所定の下限値に達した場合、前記復号データを出力する速度を減少させる、請求の範囲第９項に記載の出力回路。
【請求項１１】
前記算出部は、所定時間における、前記記憶部に記憶される暗号データに基づいて変化する前記経過時間の情報を所定個数使用し、所定の演算により、前記経過時間の特性を算出し、
前記第二出力部は、前記経過時間の特性に基づいて、前記復号データを出力する速度を変化させる、請求の範囲第９項に記載の出力回路。
【請求項１２】
前記所定の演算は、最小二乗法による演算である、請求の範囲第１１項に記載の出力回路。
【請求項１３】
前記第一の暗号データおよび前記第二の暗号データは同じデータである、請求の範囲第９項に記載の出力回路。
【請求項１４】
データを記憶するための記憶部（２４４）と、
暗号化された暗号データを前記記憶部に記憶させる蓄積部（２５２）と、
前記記憶部から暗号データを出力するための第一出力部（２５４）と、
前記第一出力部から出力される暗号データを復号するための復号部（２５５）と、
出力要求に応じて、前記復号部により復号された復号データを出力するための第二出力部（２５６）と、
前記出力要求を、前記第二出力部へ行なうための出力要求部（２５３）と、
第一の暗号データが、前記蓄積部によって、前記記憶部に記憶されてから、前記記憶部に記憶される第二の暗号データが、前記第一出力部によって出力されるまでの経過時間を算出するための算出部（２５１）とを備え、
前記出力要求部は、前記経過時間に基づいて、前記第二出力部が前記復号データを出力する速度を変化させる、出力回路。
【請求項１５】
前記出力要求部は、前記経過時間が所定の上限値に達した場合、前記第二出力部が前記復号データを出力する速度を増加させ、前記経過時間が所定の下限値に達した場合、前記第二出力部が前記復号データを出力する速度を減少させる、請求の範囲第１４項に記載の出力回路。
【請求項１６】
前記算出部は、所定時間における、前記記憶部に記憶される暗号データに基づいて変化する前記経過時間の情報を所定個数使用し、所定の演算により、前記経過時間の特性を算出し、
前記出力要求部は、前記経過時間の特性に基づいて、前記第二出力部が前記復号データを出力する速度を変化させる、請求の範囲第１４項に記載の出力回路。
【請求項１７】
前記所定の演算は、最小二乗法による演算である、請求の範囲第１６項に記載の出力回路。
【請求項１８】
前記第一の暗号データおよび前記第二の暗号データは同じデータである、請求の範囲第１４項に記載の出力回路。
【請求項１９】
外部回路（２５３）からの出力要求に応じてデータの出力を行なう出力回路であって、
データを記憶するための記憶部（２４４）と、
データを前記記憶部に記憶させるための蓄積部（２５２）と、
前記出力要求に応じて、前記記憶部に記憶されたデータを出力させるための出力部（２５４）と、
第一のデータが、前記蓄積部によって、前記記憶部に記憶されてから、前記記憶部に記憶される第二のデータが、前記出力部によって出力されるまでの経過時間を算出し、前記出力要求のタイミングを制御するための情報として、前記経過時間を前記外部回路に通知する算出部（２５１）とを備える、出力回路。
【請求項２０】
前記経過時間は、前記蓄積部が前記第一のデータを前記記憶部に記憶させた時刻と、前記出力部が前記記憶部に記憶された前記第二のデータを出力させる時刻との差分の時間である、請求の範囲第１９項に記載の出力回路。
【請求項２１】
前記経過時間は、前記蓄積部が前記第一のデータを前記記憶部に記憶させてから、前記出力部が前記記憶部に記憶された前記第二のデータを出力させるまでにカウントされるクロックカウント数に基づく時間である、請求の範囲第１９項に記載の出力回路。
【請求項２２】
前記第一のデータおよび前記第二のデータは同じデータである、請求の範囲第１９項に記載の出力回路。
【請求項２３】
前記記憶部に前記第一のデータが記憶されてから、前記記憶部に前記第二のデータが記憶されるまでの期間において、前記記憶部には所定個数のデータが記憶される、請求の範囲第１９項に記載の出力回路。
【請求項２４】
外部回路（２５３）からの出力要求に応じてデータの出力を行なう出力回路であって、
データを記憶するための記憶部（２４４）と、
データを前記記憶部に記憶させるための蓄積部（２５２）と、
前記出力要求に応じて、前記記憶部に記憶されたデータを出力させるための出力部（２５４）と、
第一のデータが、前記蓄積部によって、前記記憶部に記憶された時刻と、前記記憶部に記憶される第二のデータが、前記出力部によって出力された時刻とを、前記出力要求のタイミングを制御するための情報として、前記外部回路に通知する通知部（２５１）とを備える、出力回路。
【請求項２５】
前記第一のデータおよび前記第二のデータは同じデータである、請求の範囲第２４項に記載の出力回路。
【請求項２６】
コンピュータにデータ処理を実行させるための制御プログラム製品であって、
データをコンピュータの記憶部（２４４）に記憶させるステップ（Ｓ１１２）と、
前記記憶部に記憶されたデータの出力要求を行なうステップ（Ｓ３２３）と、
前記出力要求に応じて、前記記憶部に記憶されたデータを出力させるステップ（Ｓ３３１）と、
第一のデータが前記記憶部に記憶されてから、前記記憶部に記憶される第二のデータが出力されるまでの経過時間を算出するステップ（Ｓ１２４）と、
前記経過時間に基づいて、データを出力する速度を変化させるステップ（Ｓ３１０，Ｓ３１１，Ｓ３１２，Ｓ３１３，Ｓ３１３Ａ，Ｓ３１４，Ｓ３１５，Ｓ３１６，Ｓ３１７）とをコンピュータに実行させる、制御プログラム製品。
【請求項２７】
前記第一のデータおよび前記第二のデータは同じデータである、請求の範囲第２６項に記載の出力回路。
【請求項２８】
記憶部（２４４）が設けられた出力回路が行なう制御方法であって、
前記制御方法は、
データを前記記憶部に記憶させるステップ（Ｓ１１２）と、
前記記憶部に記憶されたデータの出力要求を行なうステップ（Ｓ３２３）と、
前記出力要求に応じて、前記記憶部に記憶されたデータを出力させるステップ（Ｓ３３１）と、
第一のデータが前記記憶部に記憶されてから、前記記憶部に記憶される第二のデータが出力されるまでの経過時間を算出するステップ（Ｓ１２４）と、
前記経過時間に基づいて、データを出力する速度を変化させるステップ（Ｓ３１０，Ｓ３１１，Ｓ３１２，Ｓ３１３，Ｓ３１３Ａ，Ｓ３１４，Ｓ３１５，Ｓ３１６，Ｓ３１７）とを備える、制御方法。
【請求項２９】
前記第一のデータおよび前記第二のデータは同じデータである、請求の範囲第２８項に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、出力回路、制御プログラム製品および制御方法に関し、特に、通信網を介して受信したデータを扱う出力回路、制御プログラム製品および制御方法に関する。
【背景技術】
【０００２】
近年、ホームネットワークにおいてＡＶデータなどのリアルタイムデータをＩＰ(Internet  Protocol)パケットにより転送する技術が広がりつつある。この場合、エンコーダ（符号化回路）とデコーダ（復号回路）とのクロックのズレによって、単位時間あたりに伝送されるデータ量と、再生されるデータ量に違いがでてしまい画質の劣化等の問題を起こしてしまう可能性があった。【０００３】
デジタルデータのリアルタイムストリーム伝送で一般的に用いられているＭＰＥＧ２−ＴＳでは、図３０に示すように、送信装置１２０１から受信装置１２０２にＰＣＲ信号とよばれる同期信号が、データと一緒に送信される。受信装置１２０２内のデコーダでは、ＰＣＲ信号に含まれる値およびＰＣＲ信号が入力された時刻の情報に基づき、ＰＬＬ回路と呼ばれるクロックの同期を行う回路を用いて送信装置１２０１内のエンコーダのクロックを再現する。これにより、送信装置１２０１と受信装置１２０２のクロックのズレをなくしている。【０００４】
しかし、ＰＬＬ回路を使った同期方式は、ネットワークにおける遅延の変動（ジッタ）が小さい場合に有効な技術であり、ＩＰデータ通信網のようなジッタが大きなネットワークにおいては有効ではない。【０００５】
このような問題を解決するために、一般に用いられているのがアダプティブクロック法と呼ばれる方法である。アダプティブクロック法では、図３１に示すように、受信装置１３０２側で、受信データをデコーダに入力する前に、すべてのデータを一旦バッファリングし、受信側のクロック（一般にデコーダ内部のクロックとは別のクロック）に合わせて、デコーダに入力する。【０００６】
受信側のクロックで受信データを出力するタイミングは、たとえば、各パケットに付加されたタイミング情報（タイムスタンプ）の値と受信クロックに同期したカウンタを比較することでタイミングを決定する。これにより、デコーダは、受信装置のバッファを駆動する時間情報に同期して動作することになる。【０００７】
そのため、受信装置１３０２のデコーダにデータが送信される速度は、送信装置１３０１がデータを送出する速度とは異なる。したがって、受信バッファ内のデータは、長期的にみると、増加または減少していく。【０００８】
そこで、受信バッファのオーバーフロー（以下、オーバーランともいう）およびアンダーフロー（以下、アンダーランともいう）の発生を防ぐ技術が、特開２０００−１７４７４２（特許文献１）および特開２００２−１６５１４８（特許文献２）に開示されている。【０００９】
特開２００２−１６５１４８（特許文献２）の技術では、バッファに蓄積されたデータを監視し、蓄積されているデータのバイト数や、バッファの先頭および最後のデータのそれぞれのタイムスタンプ値の差が上限値を超えたときデータ出力速度を速くし、下限値よりも低下したとき出力速度を遅くすることにより、オーバーフローおよびアンダーフローの発生を防いでいる。【００１０】
図３２は、バイト数を監視した場合において、受信バッファのバッファ量の変化を例示するタイムチャートである。図３２を参照して、受信データのバッファリングが開始されると、受信バッファのバッファ量は一定の速度で増加する。バッファ量が再生開始バッファ量に到達すると、受信バッファのデータはデコーダに出力される。受信バッファからのデータの出力速度（以下、バッファ出力速度ともいう）が、受信バッファへのデータの入力速度（以下、バッファ入力速度ともいう）よりも速い場合は、バッファ量が減少する。これを放置するとアンダーランが生じる。そのため、バッファ量がアンダーラン回避のための下限に到達したことに応じて、バッファ出力速度をバッファ入力速度よりも遅くする。バッファ出力速度をバッファ入力速度よりも遅くすると、受信バッファのバッファ量が増加する。これを放置するとオーバーランが生じるので、バッファ量がオーバーラン回避のための上限に到達したことに応じて、バッファ出力速度をバッファ入力速度よりも速くする。このようにしてオーバーランとアンダーランが回避される。
【特許文献１】特開２０００−１７４７４２号公報
【特許文献２】特開２００２−１６５１４８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ところで、従来の技術においては、前述したように受信バッファにバッファリングされているデータ量の変化を監視するために、バッファにバッファリングされているデータのバイト数や、各データに付加されているタイミング情報の値の差を使用していた。【００１２】
一方、今日、デジタルデータの伝送においては、著作権保護等の観点から暗号化されたデータを伝送し再生の直前に復号するような試みがなされてきている。このような暗号化されたデータにおいては、各データに付加されるタイミング情報もまた暗号化されて伝送される。【００１３】
このような、タイミング情報を含め暗号化されたデータを受信するような場合では、タイミング情報の値の差でバッファ量の変化を監視するためには、暗号化されたデータを一旦復号しバッファリングをする必要が生じる。しかしながら、バッファ上のデータは意図しない方法で取得される可能性が高いため、暗号化されたデータを一旦復号する処理は、著作権保護の観点からみれば好ましくない。【００１４】
また、復号処理の処理速度には制限があるため、復号処理の処理速度を超えて、バースト的にデータを受信するような場合は、復号処理の前にもさらにバッファメモリを持たせる必要があり、コストアップにつながるという問題があった。【００１５】
また、タイミング情報が暗号化されていても、バッファに蓄積されているバイト数を用いれば、データのタイミング情報を使用する必要はない。しかしながら、伝送速度が時間によって変動するＶＢＲ（Variable  Bit  Rate）伝送では、バッファに蓄積されているバイト数が時々刻々と変化する。そのため、ＶＢＲ伝送では、バッファ出力速度とバッファ入力速度との差に基づいてバッファ量の変化を監視し、データの出力制御を行なったとしても、正確な制御ができない。その結果、オーバーランやアンダーランの発生を引き起こし、正確にデータを復元できないといった不具合が生じる。【００１６】
本発明は、上述の問題点を解決するためになされたものであって、その目的は、正確なタイミングでデータを出力可能な出力回路を提供することである。【００１７】
本発明のさらに他の目的は、正確なタイミングでデータを出力可能なプログラム製品またはプログラムを提供することである。【００１８】
本発明のさらに他の目的は、正確なタイミングでデータを出力可能な制御方法を提供することである。
【課題を解決するための手段】
【００１９】
上述の課題を解決するために、この発明のある局面に従う出力回路は、データを記憶するための記憶部と、データを記憶部に記憶させる蓄積部と、記憶部に記憶されたデータの出力要求を行なうための出力要求部と、出力要求に応じて、記憶部に記憶されたデータを出力させるための出力部と、第一のデータが、蓄積部によって、記憶部に記憶されてから、記憶部に記憶される第二のデータが、出力部によって出力されるまでの経過時間を算出するための算出部とを備え、出力要求部は、経過時間に基づいて、出力部がデータを出力する速度を変化させる。【００２０】
好ましくは、出力要求部は、経過時間が所定の上限値に達した場合、出力部がデータを出力させる速度を増加させ、経過時間が所定の下限値に達した場合、出力部がデータを出力させる速度を減少させる。【００２１】
好ましくは、算出部は、所定時間における、記憶部に記憶されるデータに基づいて変化する経過時間の情報を所定個数使用し、所定の演算により、経過時間の特性を算出し、出力要求部は、経過時間の特性に基づいて、出力部がデータを出力する速度を変化させる。【００２２】
好ましくは、所定の演算は、最小二乗法による演算である。
好ましくは、経過時間は、蓄積部が第一のデータを記憶部に記憶させた時刻と、出力部が記憶部に記憶された第二のデータを出力させる時刻との差分の時間である。【００２３】
好ましくは、経過時間は、蓄積部が第一のデータを記憶部に記憶させてから、出力部が記憶部に記憶された第二のデータを出力させるまでにカウントされるクロックカウント数に基づく時間である。【００２４】
好ましくは、第一のデータおよび第二のデータは同じデータである。
好ましくは、記憶部に第一のデータが記憶されてから、記憶部に第二のデータが記憶されるまでの期間において、記憶部には所定個数のデータが記憶される。【００２５】
この発明の他の局面に従う出力回路は、データを記憶するための記憶部と、暗号化された暗号データを記憶部に記憶させる蓄積部と、記憶部に記憶された暗号データの出力要求を行なうための出力要求部と、出力要求に応じて、記憶部から暗号データを出力するための第一出力部と、第一出力部から出力される暗号データを、復号するための復号部と、復号部により復号された復号データを出力するための第二出力部と、第一の暗号データが、蓄積部によって、記憶部に記憶されてから、記憶部に記憶される第二の暗号データが、第一出力部によって出力されるまでの経過時間を算出するための算出部とを備え、第二出力部は、経過時間に基づいて、復号データを出力する速度を変化させる。【００２６】
好ましくは、第二出力部は、経過時間が所定の上限値に達した場合、復号データを出力する速度を増加させ、経過時間が所定の下限値に達した場合、復号データを出力する速度を減少させる。【００２７】
好ましくは、算出部は、所定時間における、記憶部に記憶される暗号データに基づいて変化する経過時間の情報を所定個数使用し、所定の演算により、経過時間の特性を算出し、第二出力部は、経過時間の特性に基づいて、復号データを出力する速度を変化させる。【００２８】
好ましくは、所定の演算は、最小二乗法による演算である。
好ましくは、第一の暗号データおよび第二の暗号データは同じデータである。【００２９】
この発明のさらに他の局面に従う出力回路は、データを記憶するための記憶部と、暗号化された暗号データを記憶部に記憶させる蓄積部と、記憶部から暗号データを出力するための第一出力部と、第一出力部から出力される暗号データを復号するための復号部と、出力要求に応じて、復号部により復号された復号データを出力するための第二出力部と、出力要求を、第二出力部へ行なうための出力要求部と、第一の暗号データが、蓄積部によって、記憶部に記憶されてから、記憶部に記憶される第二の暗号データが、第一出力部によって出力されるまでの経過時間を算出するための算出部とを備え、出力要求部は、経過時間に基づいて、第二出力部が復号データを出力する速度を変化させる。【００３０】
好ましくは、出力要求部は、経過時間が所定の上限値に達した場合、第二出力部が復号データを出力する速度を増加させ、経過時間が所定の下限値に達した場合、第二出力部が復号データを出力する速度を減少させる。【００３１】
好ましくは、算出部は、所定時間における、記憶部に記憶される暗号データに基づいて変化する経過時間の情報を所定個数使用し、所定の演算により、経過時間の特性を算出し、出力要求部は、経過時間の特性に基づいて、第二出力部が復号データを出力する速度を変化させる。【００３２】
好ましくは、所定の演算は、最小二乗法による演算である。
好ましくは、第一の暗号データおよび第二の暗号データは同じデータである。【００３３】
この発明のさらに他の局面に従うと、外部回路からの出力要求に応じてデータの出力を行なう出力回路であって、出力回路は、データを記憶するための記憶部と、データを記憶部に記憶させるための蓄積部と、出力要求に応じて、記憶部に記憶されたデータを出力させるための出力部と、第一のデータが、蓄積部によって、記憶部に記憶されてから、記憶部に記憶される第二のデータが、出力部によって出力されるまでの経過時間を算出し、出力要求のタイミングを制御するための情報として、経過時間を外部回路に通知する算出部とを備える。【００３４】
好ましくは、経過時間は、蓄積部が第一のデータを記憶部に記憶させた時刻と、出力部が記憶部に記憶された第二のデータを出力させる時刻との差分の時間である。【００３５】
好ましくは、経過時間は、蓄積部が第一のデータを記憶部に記憶させてから、出力部が記憶部に記憶された第二のデータを出力させるまでにカウントされるクロックカウント数に基づく時間である。【００３６】
好ましくは、第一のデータおよび第二のデータは同じデータである。
好ましくは、記憶部に第一のデータが記憶されてから、記憶部に第二のデータが記憶されるまでの期間において、記憶部には所定個数のデータが記憶される。【００３７】
この発明のさらに他の局面に従うと、外部回路からの出力要求に応じてデータの出力を行なう出力回路であって、出力回路は、データを記憶するための記憶部と、データを記憶部に記憶させるための蓄積部と、出力要求に応じて、記憶部に記憶されたデータを出力させるための出力部と、第一のデータが、蓄積部によって、記憶部に記憶された時刻と、記憶部に記憶される第二のデータが、出力部によって出力された時刻とを、出力要求のタイミングを制御するための情報として、外部回路に通知する通知部とを備える。【００３８】
好ましくは、第一のデータおよび第二のデータは同じデータである。
この発明のさらに他の局面に従うと、コンピュータにデータ処理を実行させるための制御プログラム製品は、データをコンピュータの記憶部に記憶させるステップと、記憶部に記憶されたデータの出力要求を行なうステップと、出力要求に応じて、記憶部に記憶されたデータを出力させるステップと、第一のデータが記憶部に記憶されてから、記憶部に記憶される第二のデータが出力されるまでの経過時間を算出するステップと、経過時間に基づいて、データを出力する速度を変化させるステップとをコンピュータに実行させる。【００３９】
好ましくは、第一のデータおよび第二のデータは同じデータである。
この発明のさらに他の局面に従うと、記憶部が設けられた出力回路が行なう制御方法であって、制御方法は、データを記憶部に記憶させるステップと、記憶部に記憶されたデータの出力要求を行なうステップと、出力要求に応じて、記憶部に記憶されたデータを出力させるステップと、第一のデータが記憶部に記憶されてから、記憶部に記憶される第二のデータが出力されるまでの経過時間を算出するステップと、経過時間に基づいて、データを出力する速度を変化させるステップとを備える、
好ましくは、第一のデータおよび第二のデータは同じデータである。
【発明の効果】
【００４０】
本発明に係る出力回路は、第一のデータが記憶部に記憶されてから、記憶部に記憶される第二のデータが出力されるまでの経過時間に基づいて、データを出力する速度を変化させる。【００４１】
したがって、正確なタイミングでデータを出力できるという効果を奏する。
本発明に係る出力回路は、第一の暗号データが記憶部に記憶されてから、記憶部に記憶される第二の暗号データが出力されるまでの経過時間に基づいて、データを出力する速度を変化させる。【００４２】
したがって、正確なタイミングでデータを出力できるという効果を奏する。
本発明に係る出力回路は、第一の暗号データが記憶部に記憶されてから、記憶部に記憶される第二の暗号データが出力されるまでの経過時間に基づいて、データを出力する速度を変化させる。【００４３】
したがって、正確なタイミングでデータを出力できるという効果を奏する。
本発明に係る出力回路は、第一のデータが記憶部に記憶されてから、記憶部に記憶される第二のデータが出力されるまでの経過時間に基づいて、外部回路からの出力要求のタイミングを制御するための情報としての経過時間を、外部回路に通知する。出力回路は、外部回路からの出力要求に応じてデータの出力を行なう。【００４４】
したがって、正確なタイミングでデータを出力できるという効果を奏する。
本発明に係る出力回路は、第一のデータが記憶部に記憶された時刻と、記憶部に記憶される第二のデータが出力された時刻とを、外部回路からの出力要求のタイミングを制御するための情報としての経過時間を、外部回路に通知する。出力回路は、外部回路からの出力要求に応じてデータの出力を行なう。【００４５】
したがって、正確なタイミングでデータを出力できるという効果を奏する。
本発明に係るプログラム製品は、第一のデータが記憶部に記憶されてから、記憶部に記憶される第二のデータが出力されるまでの経過時間に基づいて、データを出力する速度を変化させる。【００４６】
したがって、正確なタイミングでデータを出力できるという効果を奏する。
本発明に係る制御方法は、第一のデータが記憶部に記憶されてから、記憶部に記憶される第二のデータが出力されるまでの経過時間に基づいて、データを出力する速度を変化させる。【００４７】
したがって、正確なタイミングでデータを出力できるという効果を奏する。
【図面の簡単な説明】
【００４８】
【図１】本実施の形態におけるネットワークシステムの構成を概略的に示した図である。
【図２】第１の実施の形態における、送信装置および受信装置の内部構成を示したブロック図である。
【図３Ａ】一例としてのストリーミングデータの構成を示す図である。
【図３Ｂ】一例としてのストリーミングデータの構成を示す図である。
【図４】第１の実施の形態において、処理部内で行なわれる処理を示す図である。
【図５】データ蓄積処理のフローチャートである。
【図６】記憶部にパケットを記憶させた状態を示す図である。
【図７】差分監視処理のフローチャートである。
【図８】記憶番地と、記憶時刻とを対応付けた例を示す図である。
【図９】記憶番地、記憶時刻および出力時刻とが対応づけられた例を示す図である。
【図１０】第２の実施の形態における、送信装置および受信装置の内部構成を示したブロック図である。
【図１１】第２の実施の形態において、通信部および処理部内で行なわれる処理を示す図である。
【図１２】データ受信処理のフローチャートである。
【図１３】クロックカウント処理のフローチャートである。
【図１４】出力要求処理のフローチャートである。
【図１５】データ出力処理のフローチャートである。
【図１６】第３の実施の形態における、送信装置および受信装置の内部構成を示したブロック図である。
【図１７】第３の実施の形態において、通信部および処理部内で行なわれる処理を示す図である。
【図１８】差分監視処理Ａのフローチャートである。
【図１９】出力要求処理Ａのフローチャートである。
【図２０】復号処理のフローチャートである。
【図２１】データ出力処理Ｂのフローチャートである。
【図２２】第４の実施の形態における、送信装置および受信装置の内部構成を示したブロック図である。
【図２３】第４の実施の形態において、通信部および処理部内で行なわれる処理を示す図である。
【図２４】差分監視処理Ｂのフローチャートである。
【図２５】出力要求処理Ｂのフローチャートである。
【図２６】データ出力処理Ｃのフローチャートである。
【図２７】データ出力処理Ｄのフローチャートである。
【図２８】時間経過に伴う差分時間の変化を示す図である。
【図２９】第５の実施の形態における、送信装置および受信装置の内部構成を示したブロック図である。
【図３０】従来のネットワークシステムの構成を示す図である。
【図３１】従来の他のネットワークシステムの構成を示す図である。
【図３２】バイト数を監視した場合において、受信バッファのバッファ量の変化を例示するタイムチャートである。
【符号の説明】
【００４９】
１００，１００Ｂ  送信装置、２００，２００Ａ，２００Ｂ，２００Ｃ  受信装置、２１０  デコーダ、２３０  通信部、２４０，２４０Ａ，２４０Ｂ，２４０Ｃ  出力回路、２５０，２５０Ｂ  処理部、２４４，２４５，２４８Ａ，２４８Ｂ  記憶部、３００  記憶媒体、３１０  制御プログラム、１０００  ネットワークシステム。
【発明を実施するための最良の形態】
【００５０】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。【００５１】
本発明の実施の形態では、ＩＰ（Internet  Protocol）ネットワークを通じてＲＴＰ（Real  Time  Protocol）を用いたＭＰＥＧ２−ＴＳのリアルタイムストリーム伝送における例について述べる。ただし、本発明はこれに限定されるものではない。【００５２】
＜第１の実施の形態＞
図１は、本実施の形態におけるネットワークシステム１０００の構成を概略的に示した図である。ネットワークシステム１０００は、たとえば、テレビ、ハードディスクレコーダ（以下、ＨＤＲともいう）およびデジタルチューナーなどの様々な家庭内の機器が接続されたネットワークシステムである。ネットワークシステム１０００では、例えば、ＩＰのようなネットワークプロトコルを用いて通信が行われる。【００５３】
図１を参照して、ネットワークシステム１０００は、送信装置１００と、受信装置２００と、機器２０と、機器３０と、ネットワーク５０とから構成される。【００５４】
ネットワーク５０は、たとえば、インターネットなどのネットワークである。送信装置１００、受信装置２００、機器２０および機器３０は、ネットワーク５０と接続されている。【００５５】
送信装置１００は、ネットワーク５０を介して、受信装置２００との間でリアルタイムストリーム伝送を行なう。【００５６】
送信装置１００は、たとえば、通信機能を備えた、ビデオ、ＨＤＲまたはデジタルチューナーなどの映像データを送信可能な機器であればいずれの機器であってもよい。【００５７】
受信装置２００は、ネットワーク５０を介して、送信装置１００から送信されるリアルタイムデータを受信する機能を有する。受信装置２００は、たとえば、通信機能を備えた、テレビまたは液晶プロジェクタなどの映像データを受信可能な機器であればいずれの機器であってもよい。【００５８】
機器２０および機器３０は、ネットワーク５０に接続されるその他の機器である。
図２は、第１の実施の形態における、送信装置１００および受信装置２００の内部構成を示したブロック図である。なお、図１には、説明のために、記録媒体３００も示している。記録媒体３００には、後述する制御プログラム３１０が記録されている。すなわち、制御プログラム３１０は、媒体等に記録されてプログラム製品として流通される。また、記録媒体３００もプログラム製品として流通される。【００５９】
図２を参照して、送信装置１００は、エンコーダ１１０と、処理部１２０と、通信部１３０とを備える。【００６０】
エンコーダ１１０は、入力された映像信号を符号化し、符号化後のデータを出力する機能を有する。エンコーダ１１０は、クロック１１２と、エンコード部１１４とを含む。エンコード部１１４は、入力された映像信号を所定の符号化方式に従って符号化し、符号化後のデータ（以下、符号化データともいう）を出力する。ここで、所定の符号化方式は、たとえば、ＭＰＥＧ２であるとする。クロック１１２は、エンコード部１１４が符号化に要した符号化時間をカウントする。【００６１】
処理部１２０は、マイクロプロセッサ（Microprocessor）、プログラミングすることができるＬＳＩ（Large  Scale  Integration）であるＦＰＧＡ（Field  Programmable  Gate  Array）、特定の用途のために設計、製造される集積回路であるＡＳＩＣ（Application  Specific  Integrated  Circuit）、その他の演算機能を有する回路のいずれであってもよい。【００６２】
処理部１２０は、エンコード部１１４から出力された符号化データをネットワーク上で伝送可能なフォーマットのデータ（以下、ストリーミングデータともいう）に順次変換し、通信部１３０へ順次出力する。なお、ストリーミングデータは、パケットである。【００６３】
図３Ａは、一例としてのストリーミングデータＳＴＤ１００の構成を示す図である。図３Ａを参照して、ストリーミングデータＳＴＤ１００は、ＩＰヘッダ、ＴＣＰ（Transmission  Control  Protocol）ヘッダ、ＲＴＰヘッダおよびデータ部とから構成される。データ部は、符号化データとしてのＭＰＥＧ２データにタイムスタンプ（以下、ＴＳともいう）を付加したデータを所定個数まとめたものである。ＭＰＥＧ２データは、可変ビットレートで符号化されたデータである。したがって、ＭＰＥＧ２データにおける映像データ、音声データも、可変ビットレートで符号化されたデータとなる。タイムスタンプ（ＴＳ）は、対応するＭＰＥＧ２データを、受信装置２００のデコーダ２１０へ出力する時間を表わす。【００６４】
図３Ｂは、一例としてのストリーミングデータＳＴＤ２００の構成を示す図である。ストリーミングデータＳＴＤ２００は、ストリーミングデータＳＴＤ１００と比較して、データ部の代わりに暗号化データ部を含む点が異なる。それ以外は、ストリーミングデータＳＴＤ１００と同様なので詳細な説明は繰り返さない。暗号化データ部は、ストリーミングデータＳＴＤ１００のデータ部を所定の方式により暗号化したデータである。【００６５】
本実施の形態で、送信装置１００から受信装置２００へ送信されるストリーミングデータは、ストリーミングデータＳＴＤ１００またはストリーミングデータＳＴＤ２００である。【００６６】
再び、図２を参照して、通信部１３０は、処理部１２０で順次生成されたパケットとしてのストリーミングデータを、ネットワーク５０へ順次送信する。通信部１３０は、たとえば、イーサネット（登録商標）を利用した通信用インターフェースである。【００６７】
受信装置２００は、送信装置１００から順次送信されるパケットとしてのストリーミングデータを受信する。【００６８】
受信装置２００は、通信部２３０と、出力回路２４０と、記録媒体アクセス部２６０と、デコーダ２１０とを備える。【００６９】
通信部２３０は、送信装置１００から、ネットワーク５０を介して、順次送信されるデータを受信する機能を有する。通信部２３０は、通信部１３０と同様なインターフェースであるので詳細な説明は繰り返さない。【００７０】
出力回路２４０は、処理部２５０と、記憶部２４４と、記憶部２４５とを含む。記憶部２４４は、データを一時的に保持可能なＦＩＦＯ（First  In  First  Out）型のバッファとしての機能を有する。記憶部２４５は、データを保持可能なメモリである。記憶部２４５には、処理部２５０に後述する処理を行なわせるための制御プログラム３１０、その他各種プログラムおよびデータ等が記憶されている。処理部２５０は、記憶部２４４および記憶部２４５にデータアクセスする。【００７１】
処理部２５０は、処理部１２０と同様な機能を有する回路であるので詳細な説明は繰り返さない。処理部２５０は、記憶部２４５に記憶された制御プログラム３１０に従って、受信装置２００の内部の各機器に対する各種処理や、演算処理等を行なう機能を有する。【００７２】
処理部２５０は、差分監視部２５１、蓄積部２５２、出力要求部２５３および出力部２５４を含む。後述する処理を行なう、差分監視部２５１、蓄積部２５２、出力要求部２５３および出力部２５４の各々は、処理部２５０の一機能を担う。なお、処理部２５０とは、別に設けられた処理部が、出力要求部２５３、出力部２５４を含んでもよい。また、処理部２５０に含まれる各部の全てまたは一部は、ハードウエアで構成されてもよい。【００７３】
出力要求部２５３は、所定のタイミングで、出力部２５４へ記憶部２４４に記憶されたデータを出力させるための出力要求を出す。出力部２５４は、出力要求部２５３からの出力要求に応じて、記憶部２４４に記憶されたデータを、デコーダ２１０へ出力する。【００７４】
デコーダ２１０は、受信したデータの復号を行なう機能を有する。デコーダ２１０は、クロック２１２と、デコード部２１４とを含む。【００７５】
記録媒体アクセス部２６０は、制御プログラム３１０が記録された記録媒体３００から、制御プログラム３１０を読出す機能を有する。記録媒体３００に記憶されている制御プログラム３１０は、処理部２５０の動作（インストール処理）により、記録媒体アクセス部２６０から読み出され、記憶部２４５に記憶される。【００７６】
このインストール処理用プログラムは、予め、記憶部２４５に格納されており、インストール処理は、処理部２５０が、インストール処理用プログラムに基づいて行なう。【００７７】
なお、記憶部２４５には、制御プログラム３１０がインストールされていなくてもよい。この場合、処理部２５０は、記録媒体アクセス部２６０を介して、記録媒体３００に記憶された制御プログラム３１０を読み出して、制御プログラム３１０に基づいた所定の処理を行なう。【００７８】
記録媒体３００は、ＤＶＤ−ＲＯＭ（Digital  Versatile  Disk  Read  Only  Memory）、ＤＶＤ−Ｒ（Digital  Versatile  Disk  Recordable）、ＤＶＤ−ＲＡＭ（Digital  Versatile  Disk  Random  Access  Memory）、ＤＶＤ＋ＲＷ（Digital  Versatile  Disk  Re-Writable）、ＤＶＤ−ＲＷ、ＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、ＭＯ（Magneto  Optical  Disk）、フロッピー（登録商標）ディスク、ＣＦ(Compact  Flash)  カード、ＳＭ（Smart  Media（登録商標））、ＭＭＣ（Multi  Media  Card）、ＳＤ（Secure  Digital）メモリーカード、メモリースティック（登録商標）、ｘＤピクチャーカードおよびＵＳＢメモリ、磁気テープ、ハードディスク、その他不揮発性メモリのいずれであってもよい。【００７９】
また、受信装置２００は、ネットワーク５０から、通信部２３０を介して、プログラムをダウンロード処理を行ない、記憶部２４５に格納することもできる。この場合、当該ダウンロードしたプログラムは、制御プログラム３１０である。【００８０】
処理部２５０は、ネットワーク５０からダウンロードしたプログラム（制御プログラム３１０）に従って、所定の処理を行なう。このダウンロード用プログラムは、予め、記憶部２４５に格納されており、ダウンロード処理は、処理部２５０が、ダウンロード用プログラムに基づいて行なう。【００８１】
デコード部２１４は、出力部２５４によって出力されたＭＰＥＧ２データの復号を行なう。【００８２】
クロック２１２は、出力部２５４から出力されたデータに含まれるタイムスタンプ（ＴＳ）に基づく時刻情報と、当該データがデコーダ２１０に入力されたタイミングとに基づいて、受信したデータの再生を行なうためのクロックを生成する。クロック２１２は、ＰＬＬ（Phase  Locked  Loop）と呼ばれる回路を有する。デコード部２１４は、クロック２１２が生成したクロックのタイミングに基づいて映像や音声の再生を行なう。【００８３】
なお、本実施の形態において以下に説明する各種処理は、同時に開始され、各々が独立して行なわれる。  【００８４】
図４は、第１の実施の形態において、処理部２５０内で行なわれる処理を示す図である。図４を参照して、蓄積部２５２は、データ蓄積処理を行なう。蓄積部２５２は、常に現在の時刻を管理している。たとえば、データ蓄積処理において、ある処理が行われる時刻は、データ蓄積処理の開始から経過した秒で示される。なお、蓄積部２５２が、データ蓄積処理を開始すると同時に、差分監視部２５１は、後述する差分監視処理を開始する。差分監視部２５１は、蓄積部２５２が管理している時刻を管理している。たとえば、差分監視処理において、ある処理が行われる時刻は、データ蓄積処理（差分監視処理）の開始から経過した秒で示される。【００８５】
図５は、データ蓄積処理のフローチャートである。図５を参照して、ステップＳ１１０では、蓄積部２５２が、パケットを受信したか否かを判定する。ステップＳ１１０において、ＹＥＳならば、ステップＳ１１２に進む。一方、ステップＳ１１０において、ＮＯならば、再度、ステップＳ１１０の処理が繰り返される。【００８６】
ステップＳ１１２では、蓄積部２５２が、受信したパケットを記憶部２４４に記憶させる。【００８７】
図６は、記憶部２４４にパケットを記憶させた状態を示す図である。図６を参照して、ｂｕｆｆｅｒ＿ｔａｉｌは、新たに記憶部２４４に記憶させるデータを記憶させる領域の番地を示す変数である。変数ｂｕｆｆｅｒ＿ｔａｉｌは、記憶部２４４において、データが記憶されていない先頭番地を示す。図６では、領域Ｏ，Ｎ，Ｍにデータが記憶されており、領域Ｌ，Ｋにはデータが記憶されていない場合を示す。この場合、変数ｂｕｆｆｅｒ＿ｔａｉｌは、領域Ｌの番地を示す。【００８８】
記憶部２４４に新たに記憶されるデータは、変数ｂｕｆｆｅｒ＿ｔａｉｌが示す番地の領域を先頭として記憶される。したがって、ステップＳ１１２の処理では、記憶部２４４の領域Ｌにパケットが記憶されることになる。なお、記憶部２４４に記憶させるデータのサイズが領域Ｌよりも大きい場合は、領域ＬおよびＫにデータが記憶される。【００８９】
再び、図５を参照して、ステップＳ１１２の処理が終了すると、ステップＳ１１４に進む。【００９０】
ステップＳ１１４では、蓄積部２５２が、パケットを記憶させた旨を示す記憶通知を、差分監視部２５１へ送信する。なお、記憶通知には、パケットを記憶させた先頭の番地を示す、変数ｂｕｆｆｅｒ＿ｔａｉｌの値も含まれる。また、記憶通知には、パケットを記憶させた時刻（以下、記憶時刻ともいう）の情報も含まれる。その後、ステップＳ１１６に進む。【００９１】
ステップＳ１１６では、蓄積部２５２が、変数ｂｕｆｆｅｒ＿ｔａｉｌの値を、ステップＳ１１２の処理で記憶させたデータのバイト数だけ増加させる。これにより、次のパケットの書込み位置が変更される。その後、再度、ステップＳ１１０の処理が行なわれる。【００９２】
再び、図４を参照して、差分監視部２５１は、差分監視処理を行なう。
図７は、差分監視処理のフローチャートである。図７を参照して、ステップＳ１２０では、差分監視部２５１が、蓄積部２５２から記憶通知を受信したか否かを判定する。ステップＳ１２０において、ＹＥＳならば、ステップＳ１２１に進む。一方、ステップＳ１２０において、ＮＯならば、ステップＳ１２２に進む。【００９３】
ステップＳ１２１では、差分監視部２５１が、受信した記憶通知に基づいて、記憶通知に含まれる、変数ｂｕｆｆｅｒ＿ｔａｉｌの値と、記憶時刻の情報とを対応付けて、記憶部２４５に記憶させる。この場合、変数ｂｕｆｆｅｒ＿ｔａｉｌの値は、パケットを記憶させた番地の先頭番地（以下、記憶番地ともいう）を示す。【００９４】
図８は、記憶番地と、記憶時刻とを対応付けた例を示す図である。図８を参照して、たとえば、記憶部２４５の記憶番地“１”に、データが記憶された時刻は、前述のデータ蓄積処理の開始から１２２５４０３０００００μ秒経過した時刻であることが分かる。【００９５】
再び、図７を参照して、ステップＳ１２１の処理が終了すると、ステップＳ１２２に進む。【００９６】
ステップＳ１２２では、差分監視部２５１が、出力要求部２５３から、出力部２５４へ出力要求があったか否かを判定する。なお、出力要求には、データを読み出す記憶部２４４の番地（記憶番地）が含まれる。出力部２５４は、出力要求を受信すると、指定された記憶部２４４の番地のデータを、記憶部２４４から読出し、デコーダ２１０へ出力する。ステップＳ１２２において、ＹＥＳならば、ステップＳ１２３へ進む。一方、ステップＳ１２２において、ＮＯならば、再度、ステップＳ１２０の処理が繰り返される。【００９７】
ステップＳ１２３では、差分監視部２５１が、出力要求があった時刻（以下、出力時刻ともいう）を、出力要求に含まれる記憶番地に対応付けて、記憶部２４５に記憶させる。すなわち、記憶部２４５には、記憶番地、記憶時刻および出力時刻とが対応づけられたデータが記憶される。【００９８】
図９は、記憶番地、記憶時刻および出力時刻とが対応づけられた例を示す図である。図９を参照して、たとえば、記憶部２４５の記憶番地“１”のデータが出力される時刻は、前述のデータ蓄積処理（差分監視処理）の開始から１２２５４０５５００００μ秒経過した時刻であることが分かる。【００９９】
再び、図７を参照して、ステップＳ１２３の処理が終了すると、ステップＳ１２４に進む。【０１００】
ステップＳ１２４では、差分監視部２５１が、ステップＳ１２３の処理で記憶させた出力時刻と、当該出力時刻に対応する記憶時刻との差分の時間を算出する。たとえば、図９において、記憶番地“１００１”に、対応付けて出力時刻“１２２５４１００００００”が記憶されたとする。この場合、差分の時間は、１２２５４１００００００−１２２５４０７５５５５０＝２４４４５０（μ秒）となる。以下、当該差分の時間を差分時間ともいう。差分時間は、記憶部２４４の記憶番地“１００１”に記憶されたデータが、どれだけの期間、記憶部２４４に保持されていたかを表す時間である。この場合、差分時間は、記憶部２４４の記憶番地“１００１”にデータが記憶された時刻から２４４４５０μ秒経過する前の時刻までの期間に、記憶部２４４に記憶されたデータが出力され、デコーダ２１０により再生された時間に相当する。【０１０１】
前述したように、差分時間は、記憶部２４４に記憶されたデータが、どれだけの期間、記憶部２４４に保持されていたかを表す時間である。すなわち、差分時間は、記憶部２４４にデータが記憶されてから当該データが出力されるまでの経過時間でもある。そのため、以下においては、差分時間を、経過時間ともいう。その後、ステップＳ１２５に進む。【０１０２】
ステップＳ１２５では、差分監視部２５１が、算出した差分時間の情報を、出力要求部２５３に通知する。その後、再度、ステップＳ１２０の処理が繰り返される。【０１０３】
詳細は後述するが、出力要求部２５３は、記憶部２４４に記憶されたデータの出力タイミングを決定する機能を有する。また、出力要求部２５３は、差分時間が、時間経過とともにどのように変化しているかを監視する。差分時間が、時間経過とともに増加するのであれば、記憶部２４４に記憶されているデータ量が、時間経過と共に増加していることを示す。【０１０４】
これは、出力要求部２５３の出力要求のタイミングが、送信装置１００からのデータ送信に対して遅いことに起因して起こる現象である。この場合、出力要求部２５３は出力要求のタイミングを早くする。一方、差分時間が、時間経過と共に減少しているのであれば、出力要求部２５３の出力要求のタイミングが早いことになる。この場合、出力要求部２５３は出力要求のタイミングを遅くする。詳細は後述するが、出力要求部２５３は、たとえば、所定の上限値を超えたならば、増加していると判断し、所定の下限値を下回ったなら、減少していると判断する。【０１０５】
以上説明したように、第１の実施の形態の出力回路２４０は、記憶部２４４（バッファ）に記憶されているデータのバイト数やパケットに付加されたタイムスタンプの値を用いることなく、データの差分時間を利用する。出力要求部２５３は、差分時間に応じて、データの出力タイミングを決定する。【０１０６】
したがって、当該データが、データの転送速度が変化する可変ビットレートで圧縮されたデータまたはタイムスタンプを参照できない暗号化されたデータであっても、出力要求部２５３は、正確なタイミングで、出力部２５４へ出力要求を出すことができる。そのため、出力部２５４は、正確なタイミングで、記憶部２４４に記憶されたデータを出力することができる。すなわち、正確なタイミングでデータを出力できるという効果を奏する。【０１０７】
なお、詳細は後述するが、差分時間は、たとえば、受信装置と送信装置との動作クロックのズレを検出するのにも使用される。【０１０８】
＜第２の実施の形態＞
次に、本発明の１つの形態である出力回路について詳細に説明する。ここでは、リアルタイムストリーム伝送における受信装置の内部に組み込まれた形態での例について述べる。【０１０９】
本実施の形態におけるネットワークシステムでは、ネットワークシステム１０００と比較して、受信装置２００の代わりに受信装置２００Ａを含む点が異なる。それ以外は、ネットワークシステム１０００と同様なので詳細な説明は繰り返さない。【０１１０】
図１０は、第２の実施の形態における、送信装置１００および受信装置２００Ａの内部構成を示したブロック図である。図１０を参照して、受信装置２００Ａは、受信装置２００と比較して、通信部２３０を備えない点と、出力回路２４０の代わりに出力回路２４０Ａを備える点とが異なる。それ以外の構成は、受信装置２００と同様なので詳細な説明は繰り返さない。【０１１１】
出力回路２４０Ａは、出力回路２４０と比較して、さらに、通信部２３０と、クロック発生部２４７とを含む点が異なる。それ以外の構成は、出力回路２４０と同様なので詳細な説明は繰り返さない。クロック発生部２４７は、基準クロックを、処理部２５０へ送信する。ここで、基準クロックとは、受信装置内において、前述した各種処理または後述する各種処理が開始されてからの経過時間を算出するために用いるクロックである。【０１１２】
なお、処理部２５０は、基準クロックとは異なるクロックに基づき動作する。
受信装置２００Ａは、送信装置１００から、ネットワーク５０を介して、パケットとしてのストリーミングデータを受信する。ストリーミングデータは、ストリーミングデータＳＴＤ１００（図３Ａ参照）である。なお、本実施の形態において以下に説明する各種処理は、同時に開始され、各々が独立して行なわれる。【０１１３】
次に、出力回路２４０Ａ内部の各処理についてフローチャートを用いて詳細に説明する。【０１１４】
図１１は、第２の実施の形態において、通信部２３０および処理部２５０内で行なわれる処理を示す図である。図１１を参照して、通信部２３０は、データ受信処理を行なう。【０１１５】
図１２は、データ受信処理のフローチャートである。図１２を参照して、ステップＳ２１０では、通信部２３０が、データを受信したか否かを判定する。ステップＳ２１０において、ＹＥＳならば、ステップＳ２１２に進む。一方、ステップＳ２１０において、ＮＯならば、再度、ステップＳ２１０の処理が繰り返される。【０１１６】
ステップＳ２１２では、通信部２３０が、受信したデータを蓄積部２５２へ送信する。その後、再度、ステップＳ２１０の処理が行なわれる。【０１１７】
再び、図１１を参照して、蓄積部２５２は、前述の図５のデータ蓄積処理を行なう。差分監視部２５１は、前述の図７の差分監視処理を行なう。差分監視処理のステップＳ１２５の処理により、差分監視部２５１が、算出した差分時間の情報を、出力要求部２５３に通知する。【０１１８】
次に、出力要求部２５３が行なう処理について説明する。出力要求部２５３は、クロックカウント処理を行なう。【０１１９】
図１３は、クロックカウント処理のフローチャートである。図１３を参照して、ステップＳ３１０では、出力要求部２５３が、クロック発生部２４７から、前述の基準クロックを取得する。なお、処理部２５０（出力要求部２５３）自体は、前述の動作クロックの周波数で動作する。【０１２０】
たとえば、基準クロックが２７ＭＨｚであるならば、ステップＳ３１０の処理が開始された時刻から、再度、ステップＳ３１０の処理が行なわれる時刻までの時間（以下、クロックカウント処理時間ともいう）は、基準クロックの周期以内の時間にする。基準クロックが２７ＭＨｚである場合、周期は、１／（２７×１０の６乗）より、３７ｎ秒となる。したがって、クロックカウント処理時間は、３７ｎ秒以下にする必要がある。その後、ステップＳ３１１に進む。【０１２１】
ステップＳ３１１では、出力要求部２５３が、カウンタＣ１を１インクリメントする。カウンタＣ１は、基準クロックの取得回数をカウントするためのカウンタである。カウンタＣ１は、記憶部２４５に設けられている。また、カウンタＣ１の初期値は０である。その後、ステップＳ３１２に進む。【０１２２】
ステップＳ３１２では、補正値Ｈの設定が行なわれる。具体的には、出力要求部２５３が、前述の図７のステップＳ１２５の処理により、差分監視部２５１から、順次通知される差分時間の情報のうちの最新の情報に基づいて、単位時間当たりのカウンタＣ１の補正値Ｈを設定する。【０１２３】
なお、差分時間の情報は、差分監視部２５１から順次通知されるため、ステップＳ３１２の処理で使用する情報は、最新の差分時間の情報とする。なお、差分時間は、必ずしも一定ではなく、変動する。【０１２４】
カウンタＣ１の補正値Ｈは、差分時間が、所定の上限値以上または所定の下限値以下になった場合に所定値に設定される。それ以外の場合は、カウンタＣ１の補正値Ｈは、前回のステップＳ３１２の処理で決定された補正値Ｈをそのまま使用する。【０１２５】
差分時間が、所定の上限値以上になるということは、記憶部２４４にデータが記憶される速度が、記憶部２４４からデータが出力される速度よりも速いことを示す。すなわち、このままでは、記憶部２４４がオーバーランしてしまう。【０１２６】
また、差分時間が、所定の下限値以下になるということは、記憶部２４４にデータが記憶される速度が、記憶部２４４からデータが出力される速度よりも遅いことを示す。すなわち、このままでは、記憶部２４４がアンダーランしてしまう。上記現象を防ぐために、補正値Ｈを以下のように設定する。【０１２７】
本実施の形態では、基準クロックの周波数が２７ＭＨｚの場合、１秒当たり、たとえば、６０μ秒の補正が必要であるとする。この場合、２７×１０の６乗×６０×１０のマイナス６乗の計算により、１６２０が算出される。この場合、算出された１６２０は、１秒（単位時間）当たりの補正値に相当するクロックカウント数となる。【０１２８】
通知された差分時間が、所定の上限値（たとえば、４０００００μ秒）以上であれば、補正値Ｈは、−１６２０に設定される。また、通知された差分時間が、所定の下限値（たとえば、２０００００μ秒）以下であれば、補正値Ｈは、１６２０に設定される。その後、ステップＳ３１３に進む。【０１２９】
ステップＳ３１３では、出力要求部２５３が、設定された補正値Ｈが０であるか否かを判定する。ステップＳ３１３において、ＹＥＳならば、後述するステップＳ３１３Ａに進む。一方、ステップＳ３１３において、ＮＯならば、ステップＳ３１４に進む。【０１３０】
ステップＳ３１４では、カウンタＣ２を補正する周期Ｔを計算する。ここで、カウンタＣ２は、記憶部２４４に記憶されているデータの出力タイミングを決定するためのカウンタである。カウンタＣ２は、記憶部２４５に設けられている。また、カウンタＣ２の初期値は０である。周期Ｔは、基準クロック何回分に対して、カウンタＣ２を１回分早く進めるかを表す周期である。周期Ｔは、(単位時間で基準クロックによりカウントされるカウ
ント値)／(単位時間あたりの補正値に相当するクロックカウント数)  の式で算出される。【０１３１】
たとえば、基準クロックのクロック周波数が２７ＭＨｚで、１秒当たりに６０μ秒の補正が必要であるとする。この場合、６０μ秒は、前述の計算より１６２０クロックカウントに相当するので、Ｔ＝２７００００００／１６２０の計算より、１６６６６．６６・・・が得られる。【０１３２】
本実施の形態では、基準クロックの取得１６６６６回に１回の割合でカウンタＣ２の値を（通常は１増加させるところを）２増加させてカウンタを早く進めるか、カウンタＣ２の値を増加させずにそのままとしておく処理を行なう。この処理により、カウンタＣ２の進み方を変化させることができる。すなわち、記憶部２４４に記憶されているデータの出力タイミングを変更させることができる。その後、ステップＳ３１５に進む。【０１３３】
ステップＳ３１５では、出力要求部２５３が、カウンタＣ１を周期Ｔで除算し、余りがゼロか否かを判定する。余りがゼロの場合は、現在の時刻が、補正の周期Ｔに到達したことを示す。余りがゼロ以外の場合は、現在の時刻が、補正の周期Ｔに到達していないことを示す。ステップＳ３１５において、ＹＥＳならば、ステップＳ３１６に進む。一方、ステップＳ３１５において、ＮＯならば、後述するステップＳ３１３Ａに進む。【０１３４】
ステップＳ３１６では、出力要求部２５３が、カウンタＣ２を早く進めるか否かの判定を行なう。すなわち、出力要求部２５３が、カウンタＣ２を早く進めるか、遅く進めるか否かの判定を行なう。当該判定は、たとえば、ステップＳ３１２で設定した、単位時間当たりの補正値Ｈの符号で行なう。出力要求部２５３は、補正値Ｈの符号がマイナスの場合は、カウンタＣ２を早く進めると判定する。すなわち、クロックのカウントを早くする。また、出力要求部２５３は、補正値Ｈの符号がプラスの場合は、カウンタＣ２を遅く進めると判定する。すなわち、クロックのカウントを遅くする。【０１３５】
ステップＳ３１６において、ＹＥＳならば、ステップＳ３１７に進む。ステップＳ３１６において、ＮＯならば、再度、ステップＳ３１０の処理が行なわれる。すなわち、ステップＳ３１６において、ＮＯの場合、今回の処理で取得した基準クロックでは、カウンタＣ２の値を増加させないこととなる。【０１３６】
ステップＳ３１７では、出力要求部２５３が、カウンタＣ２を２インクリメントする。その後、再度、ステップＳ３１０の処理が行なわれる。【０１３７】
前述のステップＳ３１３においてＹＥＳと判定された場合、または、ステップＳ３１５においてＮＯと判定された場合は、ステップＳ３１３Ａに進む。【０１３８】
ステップＳ３１３Ａでは、出力要求部２５３が、カウンタＣ２を１インクリメントする。すなわち、基準クロックの１回の取得に対して、カウンタＣ２を１増加させることとなる。その結果、今回の処理で取得した基準クロックでは、基準クロックのカウントの補正は行わないことになる。その後、再度、ステップＳ３１０の処理が行なわれる。【０１３９】
以上のように、クロックカウント処理では、差分監視部２５１から順次通知される差分時間の情報に基づいて、記憶部２４４に記憶されているデータの出力タイミングを決定するためのカウンタＣ２の進み方を制御する。【０１４０】
具体的には、記憶部２４４に記憶されているデータの量が所定の上限値以上の場合は、カウンタＣ２の進み方を早くする。記憶部２４４に記憶されているデータの量が所定の下限値以下の場合は、カウンタＣ２の進み方を遅くする。前述したように、カウンタＣ２は、記憶部２４４に記憶されているデータの出力タイミングを決定するためのカウンタである。そのため、以上の処理により、記憶部２４４におけるオーバーランやアンダーランの発生を防ぐことができるという効果を奏する。【０１４１】
再び、図１１を参照して、出力要求部２５３は、さらに、出力要求処理を行なう。なお、クロックカウント処理および出力要求処理は同時に開始され、それぞれ、独立して行なわれる。【０１４２】
図１４は、出力要求処理のフローチャートである。図１４を参照して、ステップＳ３２０では、出力要求部２５３が、前述のクロックカウント処理により随時更新されているカウンタＣ２の値を、記憶部２４５から読出すことにより取得する。その後、ステップＳ３２１に進む。【０１４３】
ステップＳ３２１では、出力要求部２５３が、記憶部２４４に記憶されている複数のデータのうち、最も記憶された時間が古いデータを読出す。読み出したデータは、たとえば、図３ＡのストリーミングデータＳＴＤ１００であるとする。次に、出力要求部２５３は、ストリーミングデータＳＴＤ１００のタイムスタンプ（ＴＳ）を取得する。タイムスタンプ（ＴＳ）は、データの再生の時刻（タイミング）を表す情報である。当該時刻は、図９の、たとえば、出力時刻のような形式で示される。その後、ステップＳ３２２に進む。【０１４４】
ステップＳ３２２では、データの出力時刻（タイミング）であるか否かが判定される。具体的には、出力要求部２５３が、ステップＳ３２１で取得したタイムスタンプが示す時刻と、ステップＳ３２０において取得したカウンタＣ２の値とが一致するか否かを範手する。ステップＳ３２２において、ＹＥＳならば、ステップＳ３２３に進む。一方、ステップＳ３２２において、ＮＯならば、再度、ステップＳ３２０の処理が行なわれる。【０１４５】
ステップＳ３２３では、出力要求部２５３が、データの出力要求を、出力部２５４へ送信する。その後、再度、ステップＳ３２０の処理が行なわれる。【０１４６】
次に、出力部２５４の処理機能について説明する。
再び、図１１を参照して、出力部２５４は、記憶部２４４に記憶されたデータを、出力要求部２５３からの出力要求のタイミングに応じて、デコーダ２１０に出力するためのデータ出力処理を行なう。【０１４７】
図１５は、データ出力処理のフローチャートである。図１５を参照して、ステップＳ３３０では、出力部２５４が、出力要求部２５３から出力要求を受信したか否かを判定する。ステップＳ３３０において、ＹＥＳならば、ステップＳ３３１に進む。一方、ステップＳ３３０において、ＮＯならば、再度、ステップＳ３３０の処理が行なわれる。【０１４８】
ステップＳ３３１では、出力部２５４が、現在のデータ出力位置を表す変数ｂｕｆｆｅｒ＿ｈｅａｄ（図６参照）の値を参照する。なお、変数ｂｕｆｆｅｒ＿ｈｅａｄは、記憶部２４５に記憶されている。出力部２５４は、参照した変数ｂｕｆｆｅｒ＿ｈｅａｄの値に対応する記憶部２４４の記憶番地を先頭番地としてデータを読出し、デコーダ２１０へ出力（送信）する。その後、ステップＳ３３２に進む。【０１４９】
ステップＳ３３２では、出力部２５４が、デコーダ２１０へデータを出力したことを示す出力通知を、差分監視部２５１へ送信する。なお、出力通知には、データを読み出した記憶部２４４の先頭番地（記憶番地）が含まれる。その後、ステップＳ３３３に進む。【０１５０】
ステップＳ３３３では、出力部２５４が、変数ｂｕｆｆｅｒ＿ｈｅａｄの値を、ステップＳ３３１の処理で出力したデータのバイト数だけ増加させる。これにより、次のデータ（パケット）の出力位置が変更される。その後、再度、ステップＳ３３０の処理が行なわれる。【０１５１】
以上説明したように、第２の実施の形態における出力回路２４０Ａは、ネットワーク５０を介して、ストリーミングデータを受信し、記憶部２４４にデータを一時記憶させ、出力部２５４により、一時記憶させたデータをデコーダ２１０へ出力する。【０１５２】
データ出力のタイミングは、差分監視部２５１が算出した差分時間に基づいて、動的に制御される。そのため、記憶部２４４におけるオーバーランやアンダーランの発生を防ぐことができるという効果を奏する。【０１５３】
データ出力のタイミングを制御するために使用する差分時間の情報は、記憶部２４４に記憶されているデータのバイト数に依存しない。そのため、ＶＢＲのようにビットレートの変動によって、記憶部２４４に記憶されるデータのバイト数が変動するような場合でも、出力部２５４は、正確なタイミングで、記憶部２４４に記憶されたデータを、デコーダ２１０へ出力することができる。すなわち、正確なタイミングでデータを出力できるという効果を奏する。【０１５４】
＜第３の実施の形態＞
本実施の形態では、本発明の出力回路のもう１つの形態について詳細に説明する。ここでは、リアルタイムストリーム伝送における受信装置の内部に組み込まれた形態での例について述べる。【０１５５】
本実施の形態におけるネットワークシステムでは、ネットワークシステム１０００と比較して、送信装置１００の代わりに送信装置１００Ｂを含む点と、受信装置２００の代わりに受信装置２００Ｂを含む点が異なる。それ以外は、ネットワークシステム１０００と同様なので詳細な説明は繰り返さない。【０１５６】
図１６は、第３の実施の形態における、送信装置１００Ｂおよび受信装置２００Ｂの内部構成を示したブロック図である。図１６を参照して、送信装置１００Ｂは、図１０の送信装置１００と比較して、処理部１２０の代わりに処理部１２０Ｂを備える点が異なる。それ以外の構成は、送信装置１００と同様なので詳細な説明は繰り返さない。【０１５７】
処理部１２０Ｂは、処理部１２０と同様な機能を有する回路であるので詳細な説明は繰り返さない。処理部１２０Ｂは、第１処理部１２１、暗号化部１２２および第２処理部１２３を含む。後述する処理を行なう、第１処理部１２１、暗号化部１２２および第２処理部１２３の各々は、処理部１２０Ｂの一機能を担う。なお、処理部１２０Ｂに含まれる各部の全てまたは一部は、ハードウエアで構成されてもよい。【０１５８】
第１処理部１２１は、デコーダ１１０から出力されるＭＰＥＧ２データに、再生のタイミングを表すタイムスタンプ（ＴＳ）を付加し、暗号化部１２２へ送信する。【０１５９】
暗号化部１２２は、第１処理部１２１から受信したデータを暗号化する。たとえば、図３Ｂに示すように、ＭＰＥＧ２データにタイムスタンプが付加されたデータを複数個集めてまとめて暗号化する。暗号化方法としては、たとえば、ＤＥＳ（Data  Encryption  Standard）またはＡＥＳ（Advanced  Encryption  Standard）などの方法が用いられる。暗号化部１２２は、暗号化したデータを、第２処理部１２３へ送信する。【０１６０】
第２処理部１２３は、暗号化部１２２から受信したデータを、ネットワーク上を伝送できるようなデータにする。たとえば、図３Ｂに示すように、暗号化されたデータに対して、ＩＰヘッダ、ＴＣＰヘッダおよびＲＴＰヘッダを付加する。第２処理部１２３は、生成したデータを、通信部１３０へ送信する。【０１６１】
通信部１３０は、受信したデータ（ストリーミングデータ）を、ネットワーク５０へ送信する。ストリーミングデータは、図３ＢのストリーミングデータＳＴＤ２００である。【０１６２】
受信装置２００Ｂは、図１０の受信装置２００Ａと比較して、出力回路２４０Ａの代わりに出力回路２４０Ｂを備える点とが異なる。それ以外の構成は、受信装置２００Ａと同様なので詳細な説明は繰り返さない。【０１６３】
出力回路２４０Ｂは、出力回路２４０Ａと比較して、記憶部２４８Ａおよび記憶部２４８Ｂをさらに備える点と、処理部２５０の代わりに処理部２５０Ｂを含む点が異なる。それ以外の構成は、出力回路２４０Ａと同様なので詳細な説明は繰り返さない。記憶部２４８Ａおよび記憶部２４８Ｂは、記憶部２４４と同様、データを一時的に保持可能なＦＩＦＯ型のバッファとしての機能を有する。【０１６４】
処理部２５０Ｂは、処理部１２０と同様な機能を有する回路であるので詳細な説明は繰り返さない。処理部２５０Ｂは、処理部２５０と比較して、さらに、復号部２５５、データ出力部２５６を含む点が異なる。それ以外は、処理部２５０と同様なので詳細な説明は繰り返さない。すなわち、処理部２５０Ｂは、処理部２５０と同様に、制御プログラム３１０に従って、各種処理を行なう機能を有する。なお、後述する処理を行なう、差分監視部２５１、蓄積部２５２、出力要求部２５３、出力部２５４、復号部２５５およびデータ出力部２５６の各々は、処理部２５０Ｂの一機能を担う。また、処理部２５０Ｂに含まれる各部の全てまたは一部は、ハードウエアで構成されてもよい。【０１６５】
受信装置２００Ｂは、送信装置１００Ｂから、ネットワーク５０を介して、パケットとしてのストリーミングデータＳＴＤ２００を受信する。【０１６６】
次に、出力回路２４０Ｂ内部の各処理について詳細に説明する。なお、本実施の形態において以下に説明する各種処理は、同時に開始され、各々が独立して行なわれる。【０１６７】
図１７は、第３の実施の形態において、通信部２３０および処理部２５０Ｂ内で行なわれる処理を示す図である。図１７を参照して、通信部２３０は、前述の図１２のデータ受信処理を行なう。蓄積部２５２は、前述の図５のデータ蓄積処理を行なう。差分監視部２５１は、差分監視処理Ａを行なう。【０１６８】
図１８は、差分監視処理Ａのフローチャートである。図１８を参照して、差分監視処理Ａは、図７の差分監視処理と比較して、ステップＳ１２２の代わりにステップＳ１２２Ａの処理が行なわれる点と、ステップＳ１２３の代わりにステップＳ１２３Ａの処理が行なわれる点と、ステップＳ１２５の代わりにステップＳ１２５Ａの処理が行なわれる点が異なる。それ以外の処理は、図７の差分監視処理と同様なので詳細な説明は繰り返さない。【０１６９】
ステップＳ１２２Ａでは、差分監視部２５１が、出力部２５４から出力通知を受信したか否かを判定する。なお、出力通知には、データを読み出した記憶部２４４の先頭番地（記憶番地）が含まれる。前述したように出力部２５４は、記憶部２４４からデータを読出し、デコーダ２１０へ出力すると、差分監視部２５１へ出力通知を送信する。ステップＳ１２２Ａにおいて、ＹＥＳならば、ステップＳ１２３Ａへ進む。一方、ステップＳ１２２Ａにおいて、ＮＯならば、再度、ステップＳ１２０の処理が繰り返される。【０１７０】
ステップＳ１２３Ａでは、差分監視部２５１が、出力通知があった時刻（以下、出力時刻ともいう）を、出力通知に含まれる記憶番地に対応付けて、記憶部２４５に記憶させる。すなわち、記憶部２４５には、記憶番地、記憶時刻および出力時刻とが対応づけられたデータが記憶される。【０１７１】
ステップＳ１２５Ａでは、差分監視部２５１が、算出した差分時間の情報を、データ出力部２５６に通知する。その後、再度、ステップＳ１２０の処理が繰り返される。【０１７２】
再び、図１７を参照して、出力要求部２５３は、出力要求処理Ａを行なう。
図１９は、出力要求処理Ａのフローチャートである。図１９を参照して、ステップＳ４１０では、出力要求部２５３が、記憶部２４８Ａに空き領域があるか否かを判定する。ステップＳ４１０において、ＹＥＳならば、ステップＳ４１２に進む。一方、ステップＳ４１０において、ＮＯならば、再度、ステップＳ４１０の処理が行なわれる。【０１７３】
ステップＳ４１２では、出力要求部２５３が、データの出力要求を、出力部２５４へ送信する。当該出力要求は、その時点で記憶部２４８Ａの空き領域を越えない最大のデータ量の出力の要求である。その後、再度、ステップＳ４１０の処理が行なわれる。【０１７４】
再び、図１７を参照して、出力部２５４は、前述の図１５のデータ出力処理を行なう。本実施の形態において、出力部２５４が行なうデータ出力処理では、ステップＳ３３１において、データをデコーダ２１０へ出力する代わりにデータを記憶部２４８Ａに記憶させる。【０１７５】
復号部２５５は、復号処理を行なう。
図２０は、復号処理のフローチャートである。図２０を参照して、ステップＳ４２０では、復号部２５５が、記憶部２４８Ｂに空き領域があるか否かを判定する。ステップＳ４２０において、ＹＥＳならば、ステップＳ４２１に進む。一方、ステップＳ４２０において、ＮＯならば、再度、ステップＳ４２０の処理が行なわれる。【０１７６】
ステップＳ４２１では、復号部２５５が、記憶部２４８Ａからデータの読出しを行なう。読み出すデータ量は、読み出したデータを復号した後のデータのバイト数が、記憶部２４８Ｂの空き領域を越えない最大のデータ量とする。その後、ステップＳ４２２に進む。【０１７７】
ステップＳ４２２では、復号部２５５が、読み出した暗号化されたデータの復号を行なう。たとえば、送信装置１００ＢでＡＥＳによる暗号化が行われている場合は、同じＡＥＳによる復号手法を用いてデータの復号を行う。その後、ステップＳ４２３にすすむ。【０１７８】
ステップＳ４２３では、復号部２５５が、復号したデータを、記憶部２４８Ｂに記憶させる。その後、再度、ステップＳ４２０の処理が行なわれる。【０１７９】
再び、図１７を参照して、データ出力部２５６は、前述のクロックカウント処理およびデータ出力処理Ｂを行なう。本実施の形態におけるクロックカウント処理では、出力要求部２５３の代わりにデータ出力部２５６が処理を行なう。【０１８０】
図２１は、データ出力処理Ｂのフローチャートである。図２１を参照して、ステップＳ４３０では、データ出力部２５６が、本実施の形態のクロックカウント処理により随時更新されているカウンタＣ２の値を、記憶部２４５から読出すことにより取得する。その後、ステップＳ４３１に進む。【０１８１】
ステップＳ４３１では、データ出力部２５６が、記憶部２４８Ｂに記憶されている複数のデータのうち、最も記憶された時間が古いデータを読出す。読み出したデータは、たとえば、図３ＡのストリーミングデータＳＴＤ１００であるとする。次に、データ出力部２５６は、ストリーミングデータＳＴＤ１００のタイムスタンプ（ＴＳ）を取得する。その後、ステップＳ４３２に進む。【０１８２】
ステップＳ４３２では、データの出力時刻（タイミング）であるか否かが判定される。具体的には、データ出力部２５６が、ステップＳ４３１で取得したタイムスタンプが示す時刻と、ステップＳ４３０において取得したカウンタＣ２の値とが一致するか否かを範手する。ステップＳ４３２において、ＹＥＳならば、ステップＳ４３３に進む。一方、ステップＳ４３２において、ＮＯならば、再度、ステップＳ４３０の処理が行なわれる。【０１８３】
ステップＳ４３３では、データ出力部２５６が、記憶部２４８Ｂに記憶されているデータを読出し、デコーダ２１０へ送信する。その後、再度、ステップＳ４３０の処理が行なわれる。【０１８４】
以上説明したように、第３の実施の形態における出力回路２４０Ｂは、ネットワーク５０を介して、暗号化されたストリーミングデータを受信し、復号部２５５により復号されたデータを、デコーダ２１０へ出力する。【０１８５】
デコーダ２１０へ出力されるデータの速度は、差分監視部２５１が算出した差分時間に基づいて、動的に制御される。そのため、暗号化されたストリーミングデータに含まれるタイムスタンプの値を参照しなくても、デコーダ２１０へ出力されるデータの速度は、制御可能となる。【０１８６】
データ出力のタイミングを制御するために使用する差分時間の情報は、記憶部２４８Ｂに記憶されているデータのバイト数に依存しない。そのため、ＶＢＲのようにビットレートの変動によって、記憶部２４８Ｂに記憶されるデータのバイト数が変動するような場合でも、データ出力部２５６は、正確なタイミングで、記憶部２４８Ｂに記憶されたデータをデコーダ２１０へ出力することができる。すなわち、正確なタイミングでデータを出力できるという効果を奏する。すなわち、データ出力部２５６は、デコーダ２１０へ送信するデータの出力速度を正確に制御できるという効果を奏する。【０１８７】
記憶部２４４から出力されるデータ量は、出力先の記憶部２４８Ａの空き領域を超えない最大のデータ量となる。また、記憶部２４８Ａから出力されるデータ量は、出力先の記憶部２４８Ｂの空き領域を超えない最大のデータ量となる。したがって、デコーダ２１０へのデータの出力速度を伝播することが可能になる。すなわち、デコーダ２１０へのデータの出力速度が変化すれば、それに応じて記憶部２４４からのデータの出力速度も変化することになる。【０１８８】
その結果、本実施の形態の処理を用いることで、クロックのズレによる記憶部２４４のデータの増減を、データのタイムスタンプ値やバイト数によって監視できないような場合においても、記憶部２４４におけるオーバーランやアンダーランの発生を防ぐことができるという効果を奏する。【０１８９】
＜第４の実施の形態＞
本実施の形態では、本発明の出力回路のさらにもう１つの形態について詳細に説明する。ここでは、リアルタイムストリーム伝送における受信装置の内部に組み込まれた形態での例について述べる。【０１９０】
本実施の形態におけるネットワークシステムでは、ネットワークシステム１０００と比較して、送信装置１００の代わりに送信装置１００Ｂを含む点と、受信装置２００の代わりに受信装置２００Ｂを含む点が異なる。それ以外は、ネットワークシステム１０００と同様なので詳細な説明は繰り返さない。【０１９１】
図２２は、第４の実施の形態における、送信装置１００Ｂおよび受信装置２００Ｂの内部構成を示したブロック図である。図２２を参照して、送信装置１００Ｂおよび受信装置２００Ｂの構成は、図１６と同様なので詳細な説明は繰り返さない。なお、詳細は後述するが、図２２の処理部２５０Ｂと、図１６の処理部２５０Ｂは、異なる処理を行なう。【０１９２】
受信装置２００Ｂは、送信装置１００Ｂから、ネットワーク５０を介して、パケットとしてのストリーミングデータを受信する。ストリーミングデータは、図３ＢのストリーミングデータＳＴＤ２００である。【０１９３】
次に、出力回路２４０Ｂ内部の各処理について詳細に説明する。なお、本実施の形態において以下に説明する各種処理は、同時に開始され、各々が独立して行なわれる。【０１９４】
図２３は、第４の実施の形態において、通信部２３０および処理部２５０Ｂ内で行なわれる処理を示す図である。図２３を参照して、通信部２３０は、前述の図１２のデータ受信処理を行なう。蓄積部２５２は、前述の図５のデータ蓄積処理を行なう。差分監視部２５１は、差分監視処理Ｂを行なう。【０１９５】
図２４は、差分監視処理Ｂのフローチャートである。図２４を参照して、差分監視処理Ｂは、図１８の差分監視処理Ａと比較して、ステップＳ１２５Ａの代わりにステップＳ１２５Ｂの処理が行なわれる点が異なる。それ以外の処理は、図１８の差分監視処理Ａと同様なので詳細な説明は繰り返さない。【０１９６】
ステップＳ１２５Ｂでは、差分監視部２５１が、算出した差分時間の情報を、出力要求部２５３に通知する。その後、再度、ステップＳ１２０の処理が繰り返される。【０１９７】
再び、図２３を参照して、出力要求部２５３は、前述の図１３のクロックカウント処理を行なう。また、出力要求部２５３は、出力要求処理Ｂを行なう。【０１９８】
図２５は、出力要求処理Ｂのフローチャートである。図２５を参照して、出力要求処理Ｂは、図１４の出力要求処理と比較して、ステップＳ３２１の代わりにステップＳ３２１Ａが行なわれる点と、ステップＳ３２３の代わりにステップＳ３２３Ａが行なわれる点とが異なる。それ以外の処理は、図１４の出力要求処理と同様なので詳細な説明は繰り返さない。【０１９９】
ステップＳ３２１Ａでは、出力要求部２５３が、記憶部２４８Ｂに記憶されている複数のデータのうち、最も記憶された時間が古いデータを読出す。読み出したデータは、たとえば、図３ＡのストリーミングデータＳＴＤ１００であるとする。次に、出力要求部２５３は、ストリーミングデータＳＴＤ１００のタイムスタンプ（ＴＳ）を取得する。その後、ステップＳ３２２に進む。【０２００】
ステップＳ３２３Ａでは、出力要求部２５３が、データの出力要求を、データ出力部２５６へ送信する。その後、再度、ステップＳ３２０の処理が行なわれる。【０２０１】
再び、図２３を参照して、出力部２５４は、データ出力処理Ｃを行なう。
図２６は、データ出力処理Ｃのフローチャートである。図２６を参照して、ステップＳ５３０では、出力部２５４が、記憶部２４８Ａに空き領域があるか否かを判定する。ステップＳ５３０において、ＹＥＳならば、ステップＳ５３１に進む。一方、ステップＳ５３０において、ＮＯならば、再度、ステップＳ５３０の処理が行なわれる。【０２０２】
ステップＳ５３１では、出力部２５４が、現在のデータ出力位置を表す変数ｂｕｆｆｅｒ＿ｈｅａｄ（図６参照）の値を参照する。出力部２５４は、記憶部２４８Ａの空き領域を超えない最大の量のデータを、変数ｂｕｆｆｅｒ＿ｈｅａｄの値に対応する記憶部２４４の記憶番地を先頭番地として、記憶部２４４から読み出す。次に、出力部２５４は、読み出したデータを、記憶部２４８Ａに出力する。すなわち、読み出したデータを記憶部２４８Ａに記憶させる。その後、ステップＳ５３２に進む。【０２０３】
ステップＳ５３２では、出力部２５４が、記憶部２４８Ａにデータを出力したことを示す出力通知を、差分監視部２５１へ送信する。その後、ステップＳ５３３に進む。【０２０４】
ステップ５３３では、出力部２５４が、変数ｂｕｆｆｅｒ＿ｈｅａｄの値を、ステップＳ５３１の処理で出力したデータのバイト数だけ増加させる。これにより、次のデータ（パケット）の出力位置が変更される。その後、再度、ステップＳ５３０の処理が行なわれる。【０２０５】
再び、図２３を参照して、復号部２５５は、前述の図２０の復号処理を行なう。データ出力部２５６は、データ出力処理Ｄを行なう。【０２０６】
図２７は、データ出力処理Ｄのフローチャートである。図２７を参照して、ステップＳ５４０では、データ出力部２５６が、出力要求部２５３から出力要求を受信したか否かを判定する。ステップＳ５４０において、ＹＥＳならば、ステップＳ５４２に進む。一方、ステップＳ５４０において、ＮＯならば、再度、ステップＳ５４０の処理が行なわれる。【０２０７】
ステップＳ５４２では、データ出力部２５６が、記憶部２４８Ｂに記憶されているデータを読出し、デコーダ２１０へ送信する。その後、再度、ステップＳ５４０の処理が行なわれる。【０２０８】
以上説明したように、第４の実施の形態における出力回路２４０Ｂの処理においても、第３の実施の形態の処理により得られる効果と同じ効果を奏する。【０２０９】
＜第５の実施の形態＞
本実施の形態では、出力回路のさらに異なる形態について説明する。【０２１０】
本実施の形態におけるネットワークシステムは、ネットワークシステム１０００と比較して、受信装置２００の代わりに受信装置２００Ｃを含む点が異なる。それ以外は、ネットワークシステム１０００と同様なので詳細な説明は繰り返さない。【０２１１】
図２９は、第５の実施の形態における、送信装置１００および受信装置２００Ｃの内部構成を示したブロック図である。図２９を参照して、受信装置２００Ｃは、図１０の受信装置２００Ａと比較して、出力要求部２５３をさらに備える点と、出力回路２４０Ａの代わりに出力回路２４０Ｃを備える点とが異なる。それ以外の構成は、受信装置２００Ａと同様なので詳細な説明は繰り返さない。【０２１２】
出力回路２４０Ｃは、出力回路２４０Ａと比較して、処理部２５０の代わりに処理部２５０Ｃを含む点が異なる。それ以外の構成は、出力回路２４０Ａと同様なので詳細な説明は繰り返さない。【０２１３】
処理部２５０Ｃは、図１０の処理部２５０と比較して、出力要求部２５３を含まない点が異なる。それ以外は、処理部２５０と同様なので詳細な説明は繰り返さない。すなわち、処理部２５０Ｃは、処理部２５０と同様に、制御プログラム３１０に従って、各種処理を行なう機能を有する。また、差分監視部２５１、蓄積部２５２および出力部２５４の各々は、処理部２５０Ｃの一機能を担う。また、処理部２５０Ｃに含まれる各部の全てまたは一部は、ハードウエアで構成されてもよい。【０２１４】
すなわち、受信装置２００Ｃは、受信装置２００Ａと比較して、出力回路２４０Ｃの外部に出力要求部２５３が設けられる。出力要求部２５３は、ハードウエアによって構成される。すなわち、出力要求部２５３は、出力回路２４０Ｃに対して、外部の回路である。【０２１５】
本実施の形態における、差分監視部２５１、蓄積部２５２、出力要求部２５３および出力部２５４の各々が行なう処理は、第２の実施の形態と同様なので詳細な説明は繰り返さない。【０２１６】
以上により、差分監視部２５１により算出された差分時間が、出力要求部２５３へ送信（通知）される。この場合、差分時間は、出力要求部２５３が出力要求を出すタイミングを制御するための情報となる。【０２１７】
したがって、本実施の形態における受信装置２００Ｃにおいても、第２の実施の形態と同様な効果を得ることができる。【０２１８】
＜第５の実施の形態の変形例＞
本実施の形態では、出力回路の外部の回路が差分時間を算出する処理について説明する。【０２１９】
本実施の形態におけるネットワークシステムは、第５の実施の形態と同様なので詳細な説明は繰り返さない。したがって、本実施の形態における、送信装置１００および受信装置２００Ｃの内部構成を示したブロック図は、図２９である。【０２２０】
本実施の形態では、蓄積部２５２が、第２の実施の形態と同様な処理（図５のデータ蓄積処理）を行なうので詳細な説明は繰り返さない。【０２２１】
また、差分監視部２５１が、図７の差分監視処理のステップＳ１２０，Ｓ１２１，Ｓ１２２の処理を行なう。そして、ステップＳ１２２では、出力要求部２５３から、出力部２５４へ出力要求があったとして、ステップＳ１２３の処理が行なわれる。【０２２２】
そして、差分監視部２５１は、ステップＳ１２３の処理で記憶させた出力時刻と、当該出力時刻に対応する記憶時刻とを、外部回路としての出力要求部２５３へ送信（通知）する。【０２２３】
そして、出力要求部２５３は、受信した、出力時刻と、当該出力時刻に対応する記憶時刻との差分時間を算出する。差分時間の算出は、ステップＳ１２４において、差分監視部２５１が行なう処理と同様なので詳細な説明は繰り返さない。この場合、算出された差分時間は、出力要求部２５３が出力要求を出すタイミングを制御するための情報となる。すなわち、出力要求部２５３が受信した、出力時刻と、当該出力時刻に対応する記憶時刻とは、出力要求部２５３が出力要求を出すタイミングを制御するための情報となる。【０２２４】
したがって、本実施の形態における受信装置２００Ｃにおいても、第２の実施の形態と同様な効果を得ることができる。【０２２５】
なお、第１の実施の形態の出力回路２４０および第２〜第５の実施の形態の出力回路内の差分監視部２５１は、差分時間を算出する処理を行なっていた。第２の実施の形態では、出力要求部２５３が、差分時間を利用して、出力部２５４のデータを出力する速度を制御していた。【０２２６】
第３の実施の形態では、データ出力部２５６が、差分時間を利用して、データを出力する速度を制御していた。第４の実施の形態では、出力要求部２５３が、差分時間を利用して、データ出力部２５６のデータを出力する速度を制御していた。第２〜第４のデータの出力する速度の制御は、差分時間が所定の上限値に達したとき、データの出力速度を増加させ、差分時間が、所定の下限値に達したとき、データの出力速度を減少させるという制御である。【０２２７】
しかしながら、本発明は、上記処理に限定されることなく以下の処理を行なってもよい。【０２２８】
図２８は、時間経過に伴う差分時間の変化を示す図である。図２８を参照して、差分監視部２５１は時間経過に伴い変化する差分時間のデータを、所定個数使用して、たとえば、最小二乗法などの計算方法を用いて、特性として、直線Ｙ＝ＡＸ＋Ｂを算出する。すなわち、差分時間の特性を算出する。【０２２９】
この場合、直線の傾きを示すＡは、記憶部（バッファ）のデータ量を、観測した時間で割った値となる。すなわち、Ａは、送信装置と受信装置との間の時間の進み方のズレを表す。【０２３０】
送信装置のエンコーダ１１０がデータを出力する速度で、デコーダ２１０が、データの再生を行っていた場合は、Ａ＝０となる。しかし、送信装置と受信装置との間でクロックのズレがある場合は、Ａがゼロ以外の数値となる。【０２３１】
そこで、各実施の形態のクロックカウント処理において、単位時間当たりの補正値ＨをＡに設定する。各実施の形態においてクロックカウント処理を行なう処理部（たとえば、処理部２５０、処理部２５０Ｂ，処理部２５０Ｃ）は、設定された補正値を使用して、各実施の形態において、データをデコーダ２１０へ出力する処理部（たとえば、出力部２５４、データ出力部２５６）がデータを出力する速度を制御する。【０２３２】
以上の処理により、送信装置のクロック速度と受信装置とのクロック速度は、時間経過と共に近づいていく。したがって、オーバーランやアンダーランの発生を防ぐことができるという効果を奏する。【０２３３】
なお、本発明における各部は同一の処理部で実行される例を示したが、各部がそれぞれ別々の処理部で実行されてもよい。たとえば、出力要求部を他の処理部上で動作させ、差分監視部が取得した差分情報を別の処理部上にある出力要求部に通知する構成や、差分算出の基となる記憶時刻と出力時刻を通知し、別の処理部で差分を計算し出力要求を出すような構成も考えられる。【０２３４】
また、本発明においては、データＡが記憶部２４４に記憶される時刻と、記憶部２４４からデータＡが出力される時刻の差分を算出することにより、差分時間を算出していた。すなわち、差分時間は、データＡという同一のデータに着目して算出されていた。しかしながら、差分時間は、以下の算出方法Ａで算出されてもよい。【０２３５】
算出方法Ａは、データＡが記憶部２４４に記憶されてから、データＢが記憶部２４４に記憶されるまでの期間おいて、所定個数（たとえば、２個）のデータが記憶部２４４に記憶される場合における差分時間の算出方法である。なお、所定個数は０個であってもよい。ここで、データＡが記憶部２４４に記憶される時刻を時刻ｔ１とし、記憶部２４４からデータＢが出力される時刻を時刻ｔ２とする。この場合、算出方法Ａでは、時刻ｔ１と、時刻ｔ２との差分の時間を計算することにより差分時間が算出される。すなわち、差分時間は、異なる２つのデータに着目しても算出可能である。【０２３６】
また、差分時間は、以下の算出方法Ｂで算出されてもよい。
算出方法Ｂでは、データＡが記憶部２４４に記憶された時刻で、クロック発生部２４７から出力されるクロックをカウントするためのクロックカウンタの値を０に設定し、データＡが記憶部２４４から出力された時刻でのクロックカウンタの値を読み取ることにより、差分時間が算出される。以下においては、クロックカウンタの値をクロックカウント数ともいう。【０２３７】
また、差分時間は、算出方法Ａと、算出方法Ｂとを組み合わせた算出方法Ｃで算出されてもよい。算出方法Ｃは、データＡが記憶部２４４に記憶されてから、データＢが記憶部２４４に記憶されるまでの期間おいて、所定個数（たとえば、２個）のデータが記憶部２４４に記憶される場合における差分時間の算出方法である。なお、所定個数は０個であってもよい。ここで、データＡが記憶部２４４に記憶される時刻を時刻ｔ３とし、記憶部２４４からデータＢが出力される時刻を時刻ｔ４とする。この場合、算出方法Ｃでは、時刻ｔ３でクロックカウンタの値を０に設定し、時刻ｔ４でのクロックカウンタの値を読み取ることにより、差分時間が算出される。【０２３８】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図１】
2007004611.tif 000002
【図２】
2007004611.tif 000003
【図３Ａ】
2007004611.tif 000004
【図３Ｂ】
2007004611.tif 000005
【図４】
2007004611.tif 000006
【図５】
2007004611.tif 000007
【図６】
2007004611.tif 000008
【図７】
2007004611.tif 000009
【図８】
2007004611.tif 000010
【図９】
2007004611.tif 000011
【図１０】
2007004611.tif 000012
【図１１】
2007004611.tif 000013
【図１２】
2007004611.tif 000014
【図１３】
2007004611.tif 000015
【図１４】
2007004611.tif 000016
【図１５】
2007004611.tif 000017
【図１６】
2007004611.tif 000018
【図１７】
2007004611.tif 000019
【図１８】
2007004611.tif 000020
【図１９】
2007004611.tif 000021
【図２０】
2007004611.tif 000022
【図２１】
2007004611.tif 000023
【図２２】
2007004611.tif 000024
【図２３】
2007004611.tif 000025
【図２４】
2007004611.tif 000026
【図２５】
2007004611.tif 000027
【図２６】
2007004611.tif 000028
【図２７】
2007004611.tif 000029
【図２８】
2007004611.tif 000030
【図２９】
2007004611.tif 000031
【図３０】
2007004611.tif 000032
【図３１】
2007004611.tif 000033
【図３２】
2007004611.tif 000034
【手続補正書】
【提出日】平成18年9月29日(2006.9.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求の範囲
【補正方法】変更
【補正の内容】
【書類名】請求の範囲
【請求項１】  データを記憶するための記憶部（２４４）と、
データを前記記憶部に記憶させる蓄積部（２５２）と、
前記記憶部に記憶されたデータの出力要求を行なうための出力要求部（２５３）と、
前記出力要求に応じて、前記記憶部に記憶されたデータを出力させるための出力部（２５４）と、
第一のデータが、前記蓄積部によって、前記記憶部に記憶されてから、前記記憶部に記憶される第二のデータが、前記出力部によって出力されるまでの経過時間を算出するための算出部（２５１）とを備え、
前記出力要求部は、前記経過時間に基づいて、前記出力部がデータを出力する速度を変化させる、出力回路。
【請求項２】  前記出力要求部は、前記経過時間が所定の上限値に達した場合、前記出力部がデータを出力させる速度を増加させ、前記経過時間が所定の下限値に達した場合、前記出力部がデータを出力させる速度を減少させる、請求の範囲第１項に記載の出力回路。
【請求項３】  前記算出部は、所定時間における、前記記憶部に記憶されるデータに基づいて変化する前記経過時間の情報を所定個数使用し、所定の演算により、前記経過時間の特性を算出し、
前記出力要求部は、前記経過時間の特性に基づいて、前記出力部がデータを出力する速度を変化させる、請求の範囲第１項に記載の出力回路。
【請求項４】  前記所定の演算は、最小二乗法による演算である、請求の範囲第３項に記載の出力回路。
【請求項５】  前記経過時間は、前記蓄積部が前記第一のデータを前記記憶部に記憶させた時刻と、前記出力部が前記記憶部に記憶された前記第二のデータを出力させる時刻との差分の時間である、請求の範囲第１項に記載の出力回路。
【請求項６】  前記経過時間は、前記蓄積部が前記第一のデータを前記記憶部に記憶させてから、前記出力部が前記記憶部に記憶された前記第二のデータを出力させるまでにカウントされるクロックカウント数に基づく時間である、請求の範囲第１項に記載の出力回路。
【請求項７】  前記第一のデータおよび前記第二のデータは同じデータである、請求の範囲第１項に記載の出力回路。
【請求項８】  前記記憶部に前記第一のデータが記憶されてから、前記記憶部に前記第二のデータが記憶されるまでの期間において、前記記憶部には所定個数のデータが記憶される、請求の範囲第１項に記載の出力回路。
【請求項９】  データを記憶するための記憶部（２４４）と、
暗号化された暗号データを前記記憶部に記憶させる蓄積部（２５２）と、
前記記憶部に記憶された暗号データの出力要求を行なうための出力要求部（２５３）と、
前記出力要求に応じて、前記記憶部から暗号データを出力するための第一出力部（２５４）と、
前記第一出力部から出力される暗号データを、復号するための復号部（２５５）と、
前記復号部により復号された復号データを出力するための第二出力部（２５６）と、
第一の暗号データが、前記蓄積部によって、前記記憶部に記憶されてから、前記記憶部に記憶される第二の暗号データが、前記第一出力部によって出力されるまでの経過時間を算出するための算出部（２５１）とを備え、
前記第二出力部は、前記経過時間に基づいて、前記復号データを出力する速度を変化させる、出力回路。
【請求項１０】  前記第二出力部は、前記経過時間が所定の上限値に達した場合、前記復号データを出力する速度を増加させ、前記経過時間が所定の下限値に達した場合、前記復号データを出力する速度を減少させる、請求の範囲第９項に記載の出力回路。
【請求項１１】  前記算出部は、所定時間における、前記記憶部に記憶される暗号データに基づいて変化する前記経過時間の情報を所定個数使用し、所定の演算により、前記経過時間の特性を算出し、
前記第二出力部は、前記経過時間の特性に基づいて、前記復号データを出力する速度を変化させる、請求の範囲第９項に記載の出力回路。
【請求項１２】  前記所定の演算は、最小二乗法による演算である、請求の範囲第１１項に記載の出力回路。
【請求項１３】  前記第一の暗号データおよび前記第二の暗号データは同じデータである、請求の範囲第９項に記載の出力回路。
【請求項１４】  データを記憶するための記憶部（２４４）と、
暗号化された暗号データを前記記憶部に記憶させる蓄積部（２５２）と、
前記記憶部から暗号データを出力するための第一出力部（２５４）と、
前記第一出力部から出力される暗号データを復号するための復号部（２５５）と、
出力要求に応じて、前記復号部により復号された復号データを出力するための第二出力部（２５６）と、
前記出力要求を、前記第二出力部へ行なうための出力要求部（２５３）と、
第一の暗号データが、前記蓄積部によって、前記記憶部に記憶されてから、前記記憶部に記憶される第二の暗号データが、前記第一出力部によって出力されるまでの経過時間を算出するための算出部（２５１）とを備え、
前記出力要求部は、前記経過時間に基づいて、前記第二出力部が前記復号データを出力する速度を変化させる、出力回路。
【請求項１５】  前記出力要求部は、前記経過時間が所定の上限値に達した場合、前記第二出力部が前記復号データを出力する速度を増加させ、前記経過時間が所定の下限値に達した場合、前記第二出力部が前記復号データを出力する速度を減少させる、請求の範囲第１４項に記載の出力回路。
【請求項１６】  前記算出部は、所定時間における、前記記憶部に記憶される暗号データに基づいて変化する前記経過時間の情報を所定個数使用し、所定の演算により、前記経過時間の特性を算出し、
前記出力要求部は、前記経過時間の特性に基づいて、前記第二出力部が前記復号データを出力する速度を変化させる、請求の範囲第１４項に記載の出力回路。
【請求項１７】  前記所定の演算は、最小二乗法による演算である、請求の範囲第１６項に記載の出力回路。
【請求項１８】  前記第一の暗号データおよび前記第二の暗号データは同じデータである、請求の範囲第１４項に記載の出力回路。
【請求項１９】  外部回路（２５３）からの出力要求に応じてデータの出力を行なう出力回路であって、
データを記憶するための記憶部（２４４）と、
データを前記記憶部に記憶させるための蓄積部（２５２）と、
前記出力要求に応じて、前記記憶部に記憶されたデータを出力させるための出力部（２５４）と、
第一のデータが、前記蓄積部によって、前記記憶部に記憶されてから、前記記憶部に記憶される第二のデータが、前記出力部によって出力されるまでの経過時間を算出し、前記出力要求のタイミングを制御するための情報として、前記経過時間を前記外部回路に通知する算出部（２５１）とを備える、出力回路。
【請求項２０】  前記経過時間は、前記蓄積部が前記第一のデータを前記記憶部に記憶させた時刻と、前記出力部が前記記憶部に記憶された前記第二のデータを出力させる時刻との差分の時間である、請求の範囲第１９項に記載の出力回路。
【請求項２１】  前記経過時間は、前記蓄積部が前記第一のデータを前記記憶部に記憶させてから、前記出力部が前記記憶部に記憶された前記第二のデータを出力させるまでにカウントされるクロックカウント数に基づく時間である、請求の範囲第１９項に記載の出力回路。
【請求項２２】  前記第一のデータおよび前記第二のデータは同じデータである、請求の範囲第１９項に記載の出力回路。
【請求項２３】  前記記憶部に前記第一のデータが記憶されてから、前記記憶部に前記第二のデータが記憶されるまでの期間において、前記記憶部には所定個数のデータが記憶される、請求の範囲第１９項に記載の出力回路。
【請求項２４】  外部回路（２５３）からの出力要求に応じてデータの出力を行なう出力回路であって、
データを記憶するための記憶部（２４４）と、
データを前記記憶部に記憶させるための蓄積部（２５２）と、
前記出力要求に応じて、前記記憶部に記憶されたデータを出力させるための出力部（２５４）と、
第一のデータが、前記蓄積部によって、前記記憶部に記憶された時刻と、前記記憶部に記憶される第二のデータが、前記出力部によって出力された時刻とを、前記出力要求のタイミングを制御するための情報として、前記外部回路に通知する通知部（２５１）とを備える、出力回路。
【請求項２５】  前記第一のデータおよび前記第二のデータは同じデータである、請求の範囲第２４項に記載の出力回路。
【請求項２６】  コンピュータにデータ処理を実行させるための制御プログラム製品であって、
データをコンピュータの記憶部（２４４）に記憶させるステップ（Ｓ１１２）と、
前記記憶部に記憶されたデータの出力要求を行なうステップ（Ｓ３２３）と、
前記出力要求に応じて、前記記憶部に記憶されたデータを出力させるステップ（Ｓ３３１）と、
第一のデータが前記記憶部に記憶されてから、前記記憶部に記憶される第二のデータが出力されるまでの経過時間を算出するステップ（Ｓ１２４）と、
前記経過時間に基づいて、データを出力する速度を変化させるステップ（Ｓ３１０，Ｓ３１１，Ｓ３１２，Ｓ３１３，Ｓ３１３Ａ，Ｓ３１４，Ｓ３１５，Ｓ３１６，Ｓ３１７）とをコンピュータに実行させる、制御プログラム製品。
【請求項２７】  前記第一のデータおよび前記第二のデータは同じデータである、請求の範囲第２６項に記載の制御プログラム製品。
【請求項２８】  記憶部（２４４）が設けられた出力回路が行なう制御方法であって、
前記制御方法は、
データを前記記憶部に記憶させるステップ（Ｓ１１２）と、
前記記憶部に記憶されたデータの出力要求を行なうステップ（Ｓ３２３）と、
前記出力要求に応じて、前記記憶部に記憶されたデータを出力させるステップ（Ｓ３３１）と、
第一のデータが前記記憶部に記憶されてから、前記記憶部に記憶される第二のデータが出力されるまでの経過時間を算出するステップ（Ｓ１２４）と、
前記経過時間に基づいて、データを出力する速度を変化させるステップ（Ｓ３１０，Ｓ３１１，Ｓ３１２，Ｓ３１３，Ｓ３１３Ａ，Ｓ３１４，Ｓ３１５，Ｓ３１６，Ｓ３１７）とを備える、制御方法。
【請求項２９】  前記第一のデータおよび前記第二のデータは同じデータである、請求の範囲第２８項に記載の制御方法。
【国際調査報告】
2007004611.tif 000035
2007004611.tif 000036
2007004611.tif 000037
2007004611.tif 000038