JPWO2007004611A1 - 出力回路、制御プログラム製品および制御方法 - Google Patents

出力回路、制御プログラム製品および制御方法 Download PDF

Info

Publication number
JPWO2007004611A1
JPWO2007004611A1 JP2007524055A JP2007524055A JPWO2007004611A1 JP WO2007004611 A1 JPWO2007004611 A1 JP WO2007004611A1 JP 2007524055 A JP2007524055 A JP 2007524055A JP 2007524055 A JP2007524055 A JP 2007524055A JP WO2007004611 A1 JPWO2007004611 A1 JP WO2007004611A1
Authority
JP
Japan
Prior art keywords
data
output
unit
storage unit
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007524055A
Other languages
English (en)
Inventor
足立 誠
誠 足立
敦司 中尾
敦司 中尾
伊藤 浩道
浩道 伊藤
昇 杉原
昇 杉原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Technology Corp
Hitachi Ltd
Sharp Corp
Original Assignee
Renesas Technology Corp
Hitachi Ltd
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Technology Corp, Hitachi Ltd, Sharp Corp filed Critical Renesas Technology Corp
Publication of JPWO2007004611A1 publication Critical patent/JPWO2007004611A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4305Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4334Recording operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4405Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video stream decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4408Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video stream encryption, e.g. re-encrypting a decrypted video stream for redistribution in a home network

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

算出部(251)が、第一のデータが記憶部(244)に記憶されてから、記憶部に記憶される第二のデータが出力されるまでの経過時間を算出する。出力要求部(253)は、経過時間に基づいて、出力部(254)がデータを出力する速度を変化させる。

Description

本発明は、出力回路、制御プログラム製品および制御方法に関し、特に、通信網を介して受信したデータを扱う出力回路、制御プログラム製品および制御方法に関する。
近年、ホームネットワークにおいてAVデータなどのリアルタイムデータをIP(Internet Protocol)パケットにより転送する技術が広がりつつある。この場合、エンコーダ(符号化回路)とデコーダ(復号回路)とのクロックのズレによって、単位時間あたりに伝送されるデータ量と、再生されるデータ量に違いがでてしまい画質の劣化等の問題を起こしてしまう可能性があった。
デジタルデータのリアルタイムストリーム伝送で一般的に用いられているMPEG2−TSでは、図30に示すように、送信装置1201から受信装置1202にPCR信号とよばれる同期信号が、データと一緒に送信される。受信装置1202内のデコーダでは、PCR信号に含まれる値およびPCR信号が入力された時刻の情報に基づき、PLL回路と呼ばれるクロックの同期を行う回路を用いて送信装置1201内のエンコーダのクロックを再現する。これにより、送信装置1201と受信装置1202のクロックのズレをなくしている。
しかし、PLL回路を使った同期方式は、ネットワークにおける遅延の変動(ジッタ)が小さい場合に有効な技術であり、IPデータ通信網のようなジッタが大きなネットワークにおいては有効ではない。
このような問題を解決するために、一般に用いられているのがアダプティブクロック法と呼ばれる方法である。アダプティブクロック法では、図31に示すように、受信装置1302側で、受信データをデコーダに入力する前に、すべてのデータを一旦バッファリングし、受信側のクロック(一般にデコーダ内部のクロックとは別のクロック)に合わせて、デコーダに入力する。
受信側のクロックで受信データを出力するタイミングは、たとえば、各パケットに付加されたタイミング情報(タイムスタンプ)の値と受信クロックに同期したカウンタを比較することでタイミングを決定する。これにより、デコーダは、受信装置のバッファを駆動する時間情報に同期して動作することになる。
そのため、受信装置1302のデコーダにデータが送信される速度は、送信装置1301がデータを送出する速度とは異なる。したがって、受信バッファ内のデータは、長期的にみると、増加または減少していく。
そこで、受信バッファのオーバーフロー(以下、オーバーランともいう)およびアンダーフロー(以下、アンダーランともいう)の発生を防ぐ技術が、特開2000−174742(特許文献1)および特開2002−165148(特許文献2)に開示されている。
特開2002−165148(特許文献2)の技術では、バッファに蓄積されたデータを監視し、蓄積されているデータのバイト数や、バッファの先頭および最後のデータのそれぞれのタイムスタンプ値の差が上限値を超えたときデータ出力速度を速くし、下限値よりも低下したとき出力速度を遅くすることにより、オーバーフローおよびアンダーフローの発生を防いでいる。
図32は、バイト数を監視した場合において、受信バッファのバッファ量の変化を例示するタイムチャートである。図32を参照して、受信データのバッファリングが開始されると、受信バッファのバッファ量は一定の速度で増加する。バッファ量が再生開始バッファ量に到達すると、受信バッファのデータはデコーダに出力される。受信バッファからのデータの出力速度(以下、バッファ出力速度ともいう)が、受信バッファへのデータの入力速度(以下、バッファ入力速度ともいう)よりも速い場合は、バッファ量が減少する。これを放置するとアンダーランが生じる。そのため、バッファ量がアンダーラン回避のための下限に到達したことに応じて、バッファ出力速度をバッファ入力速度よりも遅くする。バッファ出力速度をバッファ入力速度よりも遅くすると、受信バッファのバッファ量が増加する。これを放置するとオーバーランが生じるので、バッファ量がオーバーラン回避のための上限に到達したことに応じて、バッファ出力速度をバッファ入力速度よりも速くする。このようにしてオーバーランとアンダーランが回避される。
特開2000−174742号公報 特開2002−165148号公報
ところで、従来の技術においては、前述したように受信バッファにバッファリングされているデータ量の変化を監視するために、バッファにバッファリングされているデータのバイト数や、各データに付加されているタイミング情報の値の差を使用していた。
一方、今日、デジタルデータの伝送においては、著作権保護等の観点から暗号化されたデータを伝送し再生の直前に復号するような試みがなされてきている。このような暗号化されたデータにおいては、各データに付加されるタイミング情報もまた暗号化されて伝送される。
このような、タイミング情報を含め暗号化されたデータを受信するような場合では、タイミング情報の値の差でバッファ量の変化を監視するためには、暗号化されたデータを一旦復号しバッファリングをする必要が生じる。しかしながら、バッファ上のデータは意図しない方法で取得される可能性が高いため、暗号化されたデータを一旦復号する処理は、著作権保護の観点からみれば好ましくない。
また、復号処理の処理速度には制限があるため、復号処理の処理速度を超えて、バースト的にデータを受信するような場合は、復号処理の前にもさらにバッファメモリを持たせる必要があり、コストアップにつながるという問題があった。
また、タイミング情報が暗号化されていても、バッファに蓄積されているバイト数を用いれば、データのタイミング情報を使用する必要はない。しかしながら、伝送速度が時間によって変動するVBR(Variable Bit Rate)伝送では、バッファに蓄積されているバイト数が時々刻々と変化する。そのため、VBR伝送では、バッファ出力速度とバッファ入力速度との差に基づいてバッファ量の変化を監視し、データの出力制御を行なったとしても、正確な制御ができない。その結果、オーバーランやアンダーランの発生を引き起こし、正確にデータを復元できないといった不具合が生じる。
本発明は、上述の問題点を解決するためになされたものであって、その目的は、正確なタイミングでデータを出力可能な出力回路を提供することである。
本発明のさらに他の目的は、正確なタイミングでデータを出力可能なプログラム製品またはプログラムを提供することである。
本発明のさらに他の目的は、正確なタイミングでデータを出力可能な制御方法を提供することである。
上述の課題を解決するために、この発明のある局面に従う出力回路は、データを記憶するための記憶部と、データを記憶部に記憶させる蓄積部と、記憶部に記憶されたデータの出力要求を行なうための出力要求部と、出力要求に応じて、記憶部に記憶されたデータを出力させるための出力部と、第一のデータが、蓄積部によって、記憶部に記憶されてから、記憶部に記憶される第二のデータが、出力部によって出力されるまでの経過時間を算出するための算出部とを備え、出力要求部は、経過時間に基づいて、出力部がデータを出力する速度を変化させる。
好ましくは、出力要求部は、経過時間が所定の上限値に達した場合、出力部がデータを出力させる速度を増加させ、経過時間が所定の下限値に達した場合、出力部がデータを出力させる速度を減少させる。
好ましくは、算出部は、所定時間における、記憶部に記憶されるデータに基づいて変化する経過時間の情報を所定個数使用し、所定の演算により、経過時間の特性を算出し、出力要求部は、経過時間の特性に基づいて、出力部がデータを出力する速度を変化させる。
好ましくは、所定の演算は、最小二乗法による演算である。
好ましくは、経過時間は、蓄積部が第一のデータを記憶部に記憶させた時刻と、出力部が記憶部に記憶された第二のデータを出力させる時刻との差分の時間である。
好ましくは、経過時間は、蓄積部が第一のデータを記憶部に記憶させてから、出力部が記憶部に記憶された第二のデータを出力させるまでにカウントされるクロックカウント数に基づく時間である。
好ましくは、第一のデータおよび第二のデータは同じデータである。
好ましくは、記憶部に第一のデータが記憶されてから、記憶部に第二のデータが記憶されるまでの期間において、記憶部には所定個数のデータが記憶される。
この発明の他の局面に従う出力回路は、データを記憶するための記憶部と、暗号化された暗号データを記憶部に記憶させる蓄積部と、記憶部に記憶された暗号データの出力要求を行なうための出力要求部と、出力要求に応じて、記憶部から暗号データを出力するための第一出力部と、第一出力部から出力される暗号データを、復号するための復号部と、復号部により復号された復号データを出力するための第二出力部と、第一の暗号データが、蓄積部によって、記憶部に記憶されてから、記憶部に記憶される第二の暗号データが、第一出力部によって出力されるまでの経過時間を算出するための算出部とを備え、第二出力部は、経過時間に基づいて、復号データを出力する速度を変化させる。
好ましくは、第二出力部は、経過時間が所定の上限値に達した場合、復号データを出力する速度を増加させ、経過時間が所定の下限値に達した場合、復号データを出力する速度を減少させる。
好ましくは、算出部は、所定時間における、記憶部に記憶される暗号データに基づいて変化する経過時間の情報を所定個数使用し、所定の演算により、経過時間の特性を算出し、第二出力部は、経過時間の特性に基づいて、復号データを出力する速度を変化させる。
好ましくは、所定の演算は、最小二乗法による演算である。
好ましくは、第一の暗号データおよび第二の暗号データは同じデータである。
この発明のさらに他の局面に従う出力回路は、データを記憶するための記憶部と、暗号化された暗号データを記憶部に記憶させる蓄積部と、記憶部から暗号データを出力するための第一出力部と、第一出力部から出力される暗号データを復号するための復号部と、出力要求に応じて、復号部により復号された復号データを出力するための第二出力部と、出力要求を、第二出力部へ行なうための出力要求部と、第一の暗号データが、蓄積部によって、記憶部に記憶されてから、記憶部に記憶される第二の暗号データが、第一出力部によって出力されるまでの経過時間を算出するための算出部とを備え、出力要求部は、経過時間に基づいて、第二出力部が復号データを出力する速度を変化させる。
好ましくは、出力要求部は、経過時間が所定の上限値に達した場合、第二出力部が復号データを出力する速度を増加させ、経過時間が所定の下限値に達した場合、第二出力部が復号データを出力する速度を減少させる。
好ましくは、算出部は、所定時間における、記憶部に記憶される暗号データに基づいて変化する経過時間の情報を所定個数使用し、所定の演算により、経過時間の特性を算出し、出力要求部は、経過時間の特性に基づいて、第二出力部が復号データを出力する速度を変化させる。
好ましくは、所定の演算は、最小二乗法による演算である。
好ましくは、第一の暗号データおよび第二の暗号データは同じデータである。
この発明のさらに他の局面に従うと、外部回路からの出力要求に応じてデータの出力を行なう出力回路であって、出力回路は、データを記憶するための記憶部と、データを記憶部に記憶させるための蓄積部と、出力要求に応じて、記憶部に記憶されたデータを出力させるための出力部と、第一のデータが、蓄積部によって、記憶部に記憶されてから、記憶部に記憶される第二のデータが、出力部によって出力されるまでの経過時間を算出し、出力要求のタイミングを制御するための情報として、経過時間を外部回路に通知する算出部とを備える。
好ましくは、経過時間は、蓄積部が第一のデータを記憶部に記憶させた時刻と、出力部が記憶部に記憶された第二のデータを出力させる時刻との差分の時間である。
好ましくは、経過時間は、蓄積部が第一のデータを記憶部に記憶させてから、出力部が記憶部に記憶された第二のデータを出力させるまでにカウントされるクロックカウント数に基づく時間である。
好ましくは、第一のデータおよび第二のデータは同じデータである。
好ましくは、記憶部に第一のデータが記憶されてから、記憶部に第二のデータが記憶されるまでの期間において、記憶部には所定個数のデータが記憶される。
この発明のさらに他の局面に従うと、外部回路からの出力要求に応じてデータの出力を行なう出力回路であって、出力回路は、データを記憶するための記憶部と、データを記憶部に記憶させるための蓄積部と、出力要求に応じて、記憶部に記憶されたデータを出力させるための出力部と、第一のデータが、蓄積部によって、記憶部に記憶された時刻と、記憶部に記憶される第二のデータが、出力部によって出力された時刻とを、出力要求のタイミングを制御するための情報として、外部回路に通知する通知部とを備える。
好ましくは、第一のデータおよび第二のデータは同じデータである。
この発明のさらに他の局面に従うと、コンピュータにデータ処理を実行させるための制御プログラム製品は、データをコンピュータの記憶部に記憶させるステップと、記憶部に記憶されたデータの出力要求を行なうステップと、出力要求に応じて、記憶部に記憶されたデータを出力させるステップと、第一のデータが記憶部に記憶されてから、記憶部に記憶される第二のデータが出力されるまでの経過時間を算出するステップと、経過時間に基づいて、データを出力する速度を変化させるステップとをコンピュータに実行させる。
好ましくは、第一のデータおよび第二のデータは同じデータである。
この発明のさらに他の局面に従うと、記憶部が設けられた出力回路が行なう制御方法であって、制御方法は、データを記憶部に記憶させるステップと、記憶部に記憶されたデータの出力要求を行なうステップと、出力要求に応じて、記憶部に記憶されたデータを出力させるステップと、第一のデータが記憶部に記憶されてから、記憶部に記憶される第二のデータが出力されるまでの経過時間を算出するステップと、経過時間に基づいて、データを出力する速度を変化させるステップとを備える、
好ましくは、第一のデータおよび第二のデータは同じデータである。
本発明に係る出力回路は、第一のデータが記憶部に記憶されてから、記憶部に記憶される第二のデータが出力されるまでの経過時間に基づいて、データを出力する速度を変化させる。
したがって、正確なタイミングでデータを出力できるという効果を奏する。
本発明に係る出力回路は、第一の暗号データが記憶部に記憶されてから、記憶部に記憶される第二の暗号データが出力されるまでの経過時間に基づいて、データを出力する速度を変化させる。
したがって、正確なタイミングでデータを出力できるという効果を奏する。
本発明に係る出力回路は、第一の暗号データが記憶部に記憶されてから、記憶部に記憶される第二の暗号データが出力されるまでの経過時間に基づいて、データを出力する速度を変化させる。
したがって、正確なタイミングでデータを出力できるという効果を奏する。
本発明に係る出力回路は、第一のデータが記憶部に記憶されてから、記憶部に記憶される第二のデータが出力されるまでの経過時間に基づいて、外部回路からの出力要求のタイミングを制御するための情報としての経過時間を、外部回路に通知する。出力回路は、外部回路からの出力要求に応じてデータの出力を行なう。
したがって、正確なタイミングでデータを出力できるという効果を奏する。
本発明に係る出力回路は、第一のデータが記憶部に記憶された時刻と、記憶部に記憶される第二のデータが出力された時刻とを、外部回路からの出力要求のタイミングを制御するための情報としての経過時間を、外部回路に通知する。出力回路は、外部回路からの出力要求に応じてデータの出力を行なう。
したがって、正確なタイミングでデータを出力できるという効果を奏する。
本発明に係るプログラム製品は、第一のデータが記憶部に記憶されてから、記憶部に記憶される第二のデータが出力されるまでの経過時間に基づいて、データを出力する速度を変化させる。
したがって、正確なタイミングでデータを出力できるという効果を奏する。
本発明に係る制御方法は、第一のデータが記憶部に記憶されてから、記憶部に記憶される第二のデータが出力されるまでの経過時間に基づいて、データを出力する速度を変化させる。
したがって、正確なタイミングでデータを出力できるという効果を奏する。
本実施の形態におけるネットワークシステムの構成を概略的に示した図である。 第1の実施の形態における、送信装置および受信装置の内部構成を示したブロック図である。 一例としてのストリーミングデータの構成を示す図である。 一例としてのストリーミングデータの構成を示す図である。 第1の実施の形態において、処理部内で行なわれる処理を示す図である。 データ蓄積処理のフローチャートである。 記憶部にパケットを記憶させた状態を示す図である。 差分監視処理のフローチャートである。 記憶番地と、記憶時刻とを対応付けた例を示す図である。 記憶番地、記憶時刻および出力時刻とが対応づけられた例を示す図である。 第2の実施の形態における、送信装置および受信装置の内部構成を示したブロック図である。 第2の実施の形態において、通信部および処理部内で行なわれる処理を示す図である。 データ受信処理のフローチャートである。 クロックカウント処理のフローチャートである。 出力要求処理のフローチャートである。 データ出力処理のフローチャートである。 第3の実施の形態における、送信装置および受信装置の内部構成を示したブロック図である。 第3の実施の形態において、通信部および処理部内で行なわれる処理を示す図である。 差分監視処理Aのフローチャートである。 出力要求処理Aのフローチャートである。 復号処理のフローチャートである。 データ出力処理Bのフローチャートである。 第4の実施の形態における、送信装置および受信装置の内部構成を示したブロック図である。 第4の実施の形態において、通信部および処理部内で行なわれる処理を示す図である。 差分監視処理Bのフローチャートである。 出力要求処理Bのフローチャートである。 データ出力処理Cのフローチャートである。 データ出力処理Dのフローチャートである。 時間経過に伴う差分時間の変化を示す図である。 第5の実施の形態における、送信装置および受信装置の内部構成を示したブロック図である。 従来のネットワークシステムの構成を示す図である。 従来の他のネットワークシステムの構成を示す図である。 バイト数を監視した場合において、受信バッファのバッファ量の変化を例示するタイムチャートである。
符号の説明
100,100B 送信装置、200,200A,200B,200C 受信装置、210 デコーダ、230 通信部、240,240A,240B,240C 出力回路、250,250B 処理部、244,245,248A,248B 記憶部、300 記憶媒体、310 制御プログラム、1000 ネットワークシステム。
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
本発明の実施の形態では、IP(Internet Protocol)ネットワークを通じてRTP(Real Time Protocol)を用いたMPEG2−TSのリアルタイムストリーム伝送における例について述べる。ただし、本発明はこれに限定されるものではない。
<第1の実施の形態>
図1は、本実施の形態におけるネットワークシステム1000の構成を概略的に示した図である。ネットワークシステム1000は、たとえば、テレビ、ハードディスクレコーダ(以下、HDRともいう)およびデジタルチューナーなどの様々な家庭内の機器が接続されたネットワークシステムである。ネットワークシステム1000では、例えば、IPのようなネットワークプロトコルを用いて通信が行われる。
図1を参照して、ネットワークシステム1000は、送信装置100と、受信装置200と、機器20と、機器30と、ネットワーク50とから構成される。
ネットワーク50は、たとえば、インターネットなどのネットワークである。送信装置100、受信装置200、機器20および機器30は、ネットワーク50と接続されている。
送信装置100は、ネットワーク50を介して、受信装置200との間でリアルタイムストリーム伝送を行なう。
送信装置100は、たとえば、通信機能を備えた、ビデオ、HDRまたはデジタルチューナーなどの映像データを送信可能な機器であればいずれの機器であってもよい。
受信装置200は、ネットワーク50を介して、送信装置100から送信されるリアルタイムデータを受信する機能を有する。受信装置200は、たとえば、通信機能を備えた、テレビまたは液晶プロジェクタなどの映像データを受信可能な機器であればいずれの機器であってもよい。
機器20および機器30は、ネットワーク50に接続されるその他の機器である。
図2は、第1の実施の形態における、送信装置100および受信装置200の内部構成を示したブロック図である。なお、図1には、説明のために、記録媒体300も示している。記録媒体300には、後述する制御プログラム310が記録されている。すなわち、制御プログラム310は、媒体等に記録されてプログラム製品として流通される。また、記録媒体300もプログラム製品として流通される。
図2を参照して、送信装置100は、エンコーダ110と、処理部120と、通信部130とを備える。
エンコーダ110は、入力された映像信号を符号化し、符号化後のデータを出力する機能を有する。エンコーダ110は、クロック112と、エンコード部114とを含む。エンコード部114は、入力された映像信号を所定の符号化方式に従って符号化し、符号化後のデータ(以下、符号化データともいう)を出力する。ここで、所定の符号化方式は、たとえば、MPEG2であるとする。クロック112は、エンコード部114が符号化に要した符号化時間をカウントする。
処理部120は、マイクロプロセッサ(Microprocessor)、プログラミングすることができるLSI(Large Scale Integration)であるFPGA(Field Programmable Gate Array)、特定の用途のために設計、製造される集積回路であるASIC(Application Specific Integrated Circuit)、その他の演算機能を有する回路のいずれであってもよい。
処理部120は、エンコード部114から出力された符号化データをネットワーク上で伝送可能なフォーマットのデータ(以下、ストリーミングデータともいう)に順次変換し、通信部130へ順次出力する。なお、ストリーミングデータは、パケットである。
図3Aは、一例としてのストリーミングデータSTD100の構成を示す図である。図3Aを参照して、ストリーミングデータSTD100は、IPヘッダ、TCP(Transmission Control Protocol)ヘッダ、RTPヘッダおよびデータ部とから構成される。データ部は、符号化データとしてのMPEG2データにタイムスタンプ(以下、TSともいう)を付加したデータを所定個数まとめたものである。MPEG2データは、可変ビットレートで符号化されたデータである。したがって、MPEG2データにおける映像データ、音声データも、可変ビットレートで符号化されたデータとなる。タイムスタンプ(TS)は、対応するMPEG2データを、受信装置200のデコーダ210へ出力する時間を表わす。
図3Bは、一例としてのストリーミングデータSTD200の構成を示す図である。ストリーミングデータSTD200は、ストリーミングデータSTD100と比較して、データ部の代わりに暗号化データ部を含む点が異なる。それ以外は、ストリーミングデータSTD100と同様なので詳細な説明は繰り返さない。暗号化データ部は、ストリーミングデータSTD100のデータ部を所定の方式により暗号化したデータである。
本実施の形態で、送信装置100から受信装置200へ送信されるストリーミングデータは、ストリーミングデータSTD100またはストリーミングデータSTD200である。
再び、図2を参照して、通信部130は、処理部120で順次生成されたパケットとしてのストリーミングデータを、ネットワーク50へ順次送信する。通信部130は、たとえば、イーサネット(登録商標)を利用した通信用インターフェースである。
受信装置200は、送信装置100から順次送信されるパケットとしてのストリーミングデータを受信する。
受信装置200は、通信部230と、出力回路240と、記録媒体アクセス部260と、デコーダ210とを備える。
通信部230は、送信装置100から、ネットワーク50を介して、順次送信されるデータを受信する機能を有する。通信部230は、通信部130と同様なインターフェースであるので詳細な説明は繰り返さない。
出力回路240は、処理部250と、記憶部244と、記憶部245とを含む。記憶部244は、データを一時的に保持可能なFIFO(First In First Out)型のバッファとしての機能を有する。記憶部245は、データを保持可能なメモリである。記憶部245には、処理部250に後述する処理を行なわせるための制御プログラム310、その他各種プログラムおよびデータ等が記憶されている。処理部250は、記憶部244および記憶部245にデータアクセスする。
処理部250は、処理部120と同様な機能を有する回路であるので詳細な説明は繰り返さない。処理部250は、記憶部245に記憶された制御プログラム310に従って、受信装置200の内部の各機器に対する各種処理や、演算処理等を行なう機能を有する。
処理部250は、差分監視部251、蓄積部252、出力要求部253および出力部254を含む。後述する処理を行なう、差分監視部251、蓄積部252、出力要求部253および出力部254の各々は、処理部250の一機能を担う。なお、処理部250とは、別に設けられた処理部が、出力要求部253、出力部254を含んでもよい。また、処理部250に含まれる各部の全てまたは一部は、ハードウエアで構成されてもよい。
出力要求部253は、所定のタイミングで、出力部254へ記憶部244に記憶されたデータを出力させるための出力要求を出す。出力部254は、出力要求部253からの出力要求に応じて、記憶部244に記憶されたデータを、デコーダ210へ出力する。
デコーダ210は、受信したデータの復号を行なう機能を有する。デコーダ210は、クロック212と、デコード部214とを含む。
記録媒体アクセス部260は、制御プログラム310が記録された記録媒体300から、制御プログラム310を読出す機能を有する。記録媒体300に記憶されている制御プログラム310は、処理部250の動作(インストール処理)により、記録媒体アクセス部260から読み出され、記憶部245に記憶される。
このインストール処理用プログラムは、予め、記憶部245に格納されており、インストール処理は、処理部250が、インストール処理用プログラムに基づいて行なう。
なお、記憶部245には、制御プログラム310がインストールされていなくてもよい。この場合、処理部250は、記録媒体アクセス部260を介して、記録媒体300に記憶された制御プログラム310を読み出して、制御プログラム310に基づいた所定の処理を行なう。
記録媒体300は、DVD−ROM(Digital Versatile Disk Read Only Memory)、DVD−R(Digital Versatile Disk Recordable)、DVD−RAM(Digital Versatile Disk Random Access Memory)、DVD+RW(Digital Versatile Disk Re-Writable)、DVD−RW、CD−ROM(Compact Disk Read Only Memory)、MO(Magneto Optical Disk)、フロッピー(登録商標)ディスク、CF(Compact Flash) カード、SM(Smart Media(登録商標))、MMC(Multi Media Card)、SD(Secure Digital)メモリーカード、メモリースティック(登録商標)、xDピクチャーカードおよびUSBメモリ、磁気テープ、ハードディスク、その他不揮発性メモリのいずれであってもよい。
また、受信装置200は、ネットワーク50から、通信部230を介して、プログラムをダウンロード処理を行ない、記憶部245に格納することもできる。この場合、当該ダウンロードしたプログラムは、制御プログラム310である。
処理部250は、ネットワーク50からダウンロードしたプログラム(制御プログラム310)に従って、所定の処理を行なう。このダウンロード用プログラムは、予め、記憶部245に格納されており、ダウンロード処理は、処理部250が、ダウンロード用プログラムに基づいて行なう。
デコード部214は、出力部254によって出力されたMPEG2データの復号を行なう。
クロック212は、出力部254から出力されたデータに含まれるタイムスタンプ(TS)に基づく時刻情報と、当該データがデコーダ210に入力されたタイミングとに基づいて、受信したデータの再生を行なうためのクロックを生成する。クロック212は、PLL(Phase Locked Loop)と呼ばれる回路を有する。デコード部214は、クロック212が生成したクロックのタイミングに基づいて映像や音声の再生を行なう。
なお、本実施の形態において以下に説明する各種処理は、同時に開始され、各々が独立して行なわれる。
図4は、第1の実施の形態において、処理部250内で行なわれる処理を示す図である。図4を参照して、蓄積部252は、データ蓄積処理を行なう。蓄積部252は、常に現在の時刻を管理している。たとえば、データ蓄積処理において、ある処理が行われる時刻は、データ蓄積処理の開始から経過した秒で示される。なお、蓄積部252が、データ蓄積処理を開始すると同時に、差分監視部251は、後述する差分監視処理を開始する。差分監視部251は、蓄積部252が管理している時刻を管理している。たとえば、差分監視処理において、ある処理が行われる時刻は、データ蓄積処理(差分監視処理)の開始から経過した秒で示される。
図5は、データ蓄積処理のフローチャートである。図5を参照して、ステップS110では、蓄積部252が、パケットを受信したか否かを判定する。ステップS110において、YESならば、ステップS112に進む。一方、ステップS110において、NOならば、再度、ステップS110の処理が繰り返される。
ステップS112では、蓄積部252が、受信したパケットを記憶部244に記憶させる。
図6は、記憶部244にパケットを記憶させた状態を示す図である。図6を参照して、buffer_tailは、新たに記憶部244に記憶させるデータを記憶させる領域の番地を示す変数である。変数buffer_tailは、記憶部244において、データが記憶されていない先頭番地を示す。図6では、領域O,N,Mにデータが記憶されており、領域L,Kにはデータが記憶されていない場合を示す。この場合、変数buffer_tailは、領域Lの番地を示す。
記憶部244に新たに記憶されるデータは、変数buffer_tailが示す番地の領域を先頭として記憶される。したがって、ステップS112の処理では、記憶部244の領域Lにパケットが記憶されることになる。なお、記憶部244に記憶させるデータのサイズが領域Lよりも大きい場合は、領域LおよびKにデータが記憶される。
再び、図5を参照して、ステップS112の処理が終了すると、ステップS114に進む。
ステップS114では、蓄積部252が、パケットを記憶させた旨を示す記憶通知を、差分監視部251へ送信する。なお、記憶通知には、パケットを記憶させた先頭の番地を示す、変数buffer_tailの値も含まれる。また、記憶通知には、パケットを記憶させた時刻(以下、記憶時刻ともいう)の情報も含まれる。その後、ステップS116に進む。
ステップS116では、蓄積部252が、変数buffer_tailの値を、ステップS112の処理で記憶させたデータのバイト数だけ増加させる。これにより、次のパケットの書込み位置が変更される。その後、再度、ステップS110の処理が行なわれる。
再び、図4を参照して、差分監視部251は、差分監視処理を行なう。
図7は、差分監視処理のフローチャートである。図7を参照して、ステップS120では、差分監視部251が、蓄積部252から記憶通知を受信したか否かを判定する。ステップS120において、YESならば、ステップS121に進む。一方、ステップS120において、NOならば、ステップS122に進む。
ステップS121では、差分監視部251が、受信した記憶通知に基づいて、記憶通知に含まれる、変数buffer_tailの値と、記憶時刻の情報とを対応付けて、記憶部245に記憶させる。この場合、変数buffer_tailの値は、パケットを記憶させた番地の先頭番地(以下、記憶番地ともいう)を示す。
図8は、記憶番地と、記憶時刻とを対応付けた例を示す図である。図8を参照して、たとえば、記憶部245の記憶番地“1”に、データが記憶された時刻は、前述のデータ蓄積処理の開始から122540300000μ秒経過した時刻であることが分かる。
再び、図7を参照して、ステップS121の処理が終了すると、ステップS122に進む。
ステップS122では、差分監視部251が、出力要求部253から、出力部254へ出力要求があったか否かを判定する。なお、出力要求には、データを読み出す記憶部244の番地(記憶番地)が含まれる。出力部254は、出力要求を受信すると、指定された記憶部244の番地のデータを、記憶部244から読出し、デコーダ210へ出力する。ステップS122において、YESならば、ステップS123へ進む。一方、ステップS122において、NOならば、再度、ステップS120の処理が繰り返される。
ステップS123では、差分監視部251が、出力要求があった時刻(以下、出力時刻ともいう)を、出力要求に含まれる記憶番地に対応付けて、記憶部245に記憶させる。すなわち、記憶部245には、記憶番地、記憶時刻および出力時刻とが対応づけられたデータが記憶される。
図9は、記憶番地、記憶時刻および出力時刻とが対応づけられた例を示す図である。図9を参照して、たとえば、記憶部245の記憶番地“1”のデータが出力される時刻は、前述のデータ蓄積処理(差分監視処理)の開始から122540550000μ秒経過した時刻であることが分かる。
再び、図7を参照して、ステップS123の処理が終了すると、ステップS124に進む。
ステップS124では、差分監視部251が、ステップS123の処理で記憶させた出力時刻と、当該出力時刻に対応する記憶時刻との差分の時間を算出する。たとえば、図9において、記憶番地“1001”に、対応付けて出力時刻“122541000000”が記憶されたとする。この場合、差分の時間は、122541000000−122540755550=244450(μ秒)となる。以下、当該差分の時間を差分時間ともいう。差分時間は、記憶部244の記憶番地“1001”に記憶されたデータが、どれだけの期間、記憶部244に保持されていたかを表す時間である。この場合、差分時間は、記憶部244の記憶番地“1001”にデータが記憶された時刻から244450μ秒経過する前の時刻までの期間に、記憶部244に記憶されたデータが出力され、デコーダ210により再生された時間に相当する。
前述したように、差分時間は、記憶部244に記憶されたデータが、どれだけの期間、記憶部244に保持されていたかを表す時間である。すなわち、差分時間は、記憶部244にデータが記憶されてから当該データが出力されるまでの経過時間でもある。そのため、以下においては、差分時間を、経過時間ともいう。その後、ステップS125に進む。
ステップS125では、差分監視部251が、算出した差分時間の情報を、出力要求部253に通知する。その後、再度、ステップS120の処理が繰り返される。
詳細は後述するが、出力要求部253は、記憶部244に記憶されたデータの出力タイミングを決定する機能を有する。また、出力要求部253は、差分時間が、時間経過とともにどのように変化しているかを監視する。差分時間が、時間経過とともに増加するのであれば、記憶部244に記憶されているデータ量が、時間経過と共に増加していることを示す。
これは、出力要求部253の出力要求のタイミングが、送信装置100からのデータ送信に対して遅いことに起因して起こる現象である。この場合、出力要求部253は出力要求のタイミングを早くする。一方、差分時間が、時間経過と共に減少しているのであれば、出力要求部253の出力要求のタイミングが早いことになる。この場合、出力要求部253は出力要求のタイミングを遅くする。詳細は後述するが、出力要求部253は、たとえば、所定の上限値を超えたならば、増加していると判断し、所定の下限値を下回ったなら、減少していると判断する。
以上説明したように、第1の実施の形態の出力回路240は、記憶部244(バッファ)に記憶されているデータのバイト数やパケットに付加されたタイムスタンプの値を用いることなく、データの差分時間を利用する。出力要求部253は、差分時間に応じて、データの出力タイミングを決定する。
したがって、当該データが、データの転送速度が変化する可変ビットレートで圧縮されたデータまたはタイムスタンプを参照できない暗号化されたデータであっても、出力要求部253は、正確なタイミングで、出力部254へ出力要求を出すことができる。そのため、出力部254は、正確なタイミングで、記憶部244に記憶されたデータを出力することができる。すなわち、正確なタイミングでデータを出力できるという効果を奏する。
なお、詳細は後述するが、差分時間は、たとえば、受信装置と送信装置との動作クロックのズレを検出するのにも使用される。
<第2の実施の形態>
次に、本発明の1つの形態である出力回路について詳細に説明する。ここでは、リアルタイムストリーム伝送における受信装置の内部に組み込まれた形態での例について述べる。
本実施の形態におけるネットワークシステムでは、ネットワークシステム1000と比較して、受信装置200の代わりに受信装置200Aを含む点が異なる。それ以外は、ネットワークシステム1000と同様なので詳細な説明は繰り返さない。
図10は、第2の実施の形態における、送信装置100および受信装置200Aの内部構成を示したブロック図である。図10を参照して、受信装置200Aは、受信装置200と比較して、通信部230を備えない点と、出力回路240の代わりに出力回路240Aを備える点とが異なる。それ以外の構成は、受信装置200と同様なので詳細な説明は繰り返さない。
出力回路240Aは、出力回路240と比較して、さらに、通信部230と、クロック発生部247とを含む点が異なる。それ以外の構成は、出力回路240と同様なので詳細な説明は繰り返さない。クロック発生部247は、基準クロックを、処理部250へ送信する。ここで、基準クロックとは、受信装置内において、前述した各種処理または後述する各種処理が開始されてからの経過時間を算出するために用いるクロックである。
なお、処理部250は、基準クロックとは異なるクロックに基づき動作する。
受信装置200Aは、送信装置100から、ネットワーク50を介して、パケットとしてのストリーミングデータを受信する。ストリーミングデータは、ストリーミングデータSTD100(図3A参照)である。なお、本実施の形態において以下に説明する各種処理は、同時に開始され、各々が独立して行なわれる。
次に、出力回路240A内部の各処理についてフローチャートを用いて詳細に説明する。
図11は、第2の実施の形態において、通信部230および処理部250内で行なわれる処理を示す図である。図11を参照して、通信部230は、データ受信処理を行なう。
図12は、データ受信処理のフローチャートである。図12を参照して、ステップS210では、通信部230が、データを受信したか否かを判定する。ステップS210において、YESならば、ステップS212に進む。一方、ステップS210において、NOならば、再度、ステップS210の処理が繰り返される。
ステップS212では、通信部230が、受信したデータを蓄積部252へ送信する。その後、再度、ステップS210の処理が行なわれる。
再び、図11を参照して、蓄積部252は、前述の図5のデータ蓄積処理を行なう。差分監視部251は、前述の図7の差分監視処理を行なう。差分監視処理のステップS125の処理により、差分監視部251が、算出した差分時間の情報を、出力要求部253に通知する。
次に、出力要求部253が行なう処理について説明する。出力要求部253は、クロックカウント処理を行なう。
図13は、クロックカウント処理のフローチャートである。図13を参照して、ステップS310では、出力要求部253が、クロック発生部247から、前述の基準クロックを取得する。なお、処理部250(出力要求部253)自体は、前述の動作クロックの周波数で動作する。
たとえば、基準クロックが27MHzであるならば、ステップS310の処理が開始された時刻から、再度、ステップS310の処理が行なわれる時刻までの時間(以下、クロックカウント処理時間ともいう)は、基準クロックの周期以内の時間にする。基準クロックが27MHzである場合、周期は、1/(27×10の6乗)より、37n秒となる。したがって、クロックカウント処理時間は、37n秒以下にする必要がある。その後、ステップS311に進む。
ステップS311では、出力要求部253が、カウンタC1を1インクリメントする。カウンタC1は、基準クロックの取得回数をカウントするためのカウンタである。カウンタC1は、記憶部245に設けられている。また、カウンタC1の初期値は0である。その後、ステップS312に進む。
ステップS312では、補正値Hの設定が行なわれる。具体的には、出力要求部253が、前述の図7のステップS125の処理により、差分監視部251から、順次通知される差分時間の情報のうちの最新の情報に基づいて、単位時間当たりのカウンタC1の補正値Hを設定する。
なお、差分時間の情報は、差分監視部251から順次通知されるため、ステップS312の処理で使用する情報は、最新の差分時間の情報とする。なお、差分時間は、必ずしも一定ではなく、変動する。
カウンタC1の補正値Hは、差分時間が、所定の上限値以上または所定の下限値以下になった場合に所定値に設定される。それ以外の場合は、カウンタC1の補正値Hは、前回のステップS312の処理で決定された補正値Hをそのまま使用する。
差分時間が、所定の上限値以上になるということは、記憶部244にデータが記憶される速度が、記憶部244からデータが出力される速度よりも速いことを示す。すなわち、このままでは、記憶部244がオーバーランしてしまう。
また、差分時間が、所定の下限値以下になるということは、記憶部244にデータが記憶される速度が、記憶部244からデータが出力される速度よりも遅いことを示す。すなわち、このままでは、記憶部244がアンダーランしてしまう。上記現象を防ぐために、補正値Hを以下のように設定する。
本実施の形態では、基準クロックの周波数が27MHzの場合、1秒当たり、たとえば、60μ秒の補正が必要であるとする。この場合、27×10の6乗×60×10のマイナス6乗の計算により、1620が算出される。この場合、算出された1620は、1秒(単位時間)当たりの補正値に相当するクロックカウント数となる。
通知された差分時間が、所定の上限値(たとえば、400000μ秒)以上であれば、補正値Hは、−1620に設定される。また、通知された差分時間が、所定の下限値(たとえば、200000μ秒)以下であれば、補正値Hは、1620に設定される。その後、ステップS313に進む。
ステップS313では、出力要求部253が、設定された補正値Hが0であるか否かを判定する。ステップS313において、YESならば、後述するステップS313Aに進む。一方、ステップS313において、NOならば、ステップS314に進む。
ステップS314では、カウンタC2を補正する周期Tを計算する。ここで、カウンタC2は、記憶部244に記憶されているデータの出力タイミングを決定するためのカウンタである。カウンタC2は、記憶部245に設けられている。また、カウンタC2の初期値は0である。周期Tは、基準クロック何回分に対して、カウンタC2を1回分早く進めるかを表す周期である。周期Tは、(単位時間で基準クロックによりカウントされるカウ
ント値)/(単位時間あたりの補正値に相当するクロックカウント数) の式で算出される。
たとえば、基準クロックのクロック周波数が27MHzで、1秒当たりに60μ秒の補正が必要であるとする。この場合、60μ秒は、前述の計算より1620クロックカウントに相当するので、T=27000000/1620の計算より、16666.66・・・が得られる。
本実施の形態では、基準クロックの取得16666回に1回の割合でカウンタC2の値を(通常は1増加させるところを)2増加させてカウンタを早く進めるか、カウンタC2の値を増加させずにそのままとしておく処理を行なう。この処理により、カウンタC2の進み方を変化させることができる。すなわち、記憶部244に記憶されているデータの出力タイミングを変更させることができる。その後、ステップS315に進む。
ステップS315では、出力要求部253が、カウンタC1を周期Tで除算し、余りがゼロか否かを判定する。余りがゼロの場合は、現在の時刻が、補正の周期Tに到達したことを示す。余りがゼロ以外の場合は、現在の時刻が、補正の周期Tに到達していないことを示す。ステップS315において、YESならば、ステップS316に進む。一方、ステップS315において、NOならば、後述するステップS313Aに進む。
ステップS316では、出力要求部253が、カウンタC2を早く進めるか否かの判定を行なう。すなわち、出力要求部253が、カウンタC2を早く進めるか、遅く進めるか否かの判定を行なう。当該判定は、たとえば、ステップS312で設定した、単位時間当たりの補正値Hの符号で行なう。出力要求部253は、補正値Hの符号がマイナスの場合は、カウンタC2を早く進めると判定する。すなわち、クロックのカウントを早くする。また、出力要求部253は、補正値Hの符号がプラスの場合は、カウンタC2を遅く進めると判定する。すなわち、クロックのカウントを遅くする。
ステップS316において、YESならば、ステップS317に進む。ステップS316において、NOならば、再度、ステップS310の処理が行なわれる。すなわち、ステップS316において、NOの場合、今回の処理で取得した基準クロックでは、カウンタC2の値を増加させないこととなる。
ステップS317では、出力要求部253が、カウンタC2を2インクリメントする。その後、再度、ステップS310の処理が行なわれる。
前述のステップS313においてYESと判定された場合、または、ステップS315においてNOと判定された場合は、ステップS313Aに進む。
ステップS313Aでは、出力要求部253が、カウンタC2を1インクリメントする。すなわち、基準クロックの1回の取得に対して、カウンタC2を1増加させることとなる。その結果、今回の処理で取得した基準クロックでは、基準クロックのカウントの補正は行わないことになる。その後、再度、ステップS310の処理が行なわれる。
以上のように、クロックカウント処理では、差分監視部251から順次通知される差分時間の情報に基づいて、記憶部244に記憶されているデータの出力タイミングを決定するためのカウンタC2の進み方を制御する。
具体的には、記憶部244に記憶されているデータの量が所定の上限値以上の場合は、カウンタC2の進み方を早くする。記憶部244に記憶されているデータの量が所定の下限値以下の場合は、カウンタC2の進み方を遅くする。前述したように、カウンタC2は、記憶部244に記憶されているデータの出力タイミングを決定するためのカウンタである。そのため、以上の処理により、記憶部244におけるオーバーランやアンダーランの発生を防ぐことができるという効果を奏する。
再び、図11を参照して、出力要求部253は、さらに、出力要求処理を行なう。なお、クロックカウント処理および出力要求処理は同時に開始され、それぞれ、独立して行なわれる。
図14は、出力要求処理のフローチャートである。図14を参照して、ステップS320では、出力要求部253が、前述のクロックカウント処理により随時更新されているカウンタC2の値を、記憶部245から読出すことにより取得する。その後、ステップS321に進む。
ステップS321では、出力要求部253が、記憶部244に記憶されている複数のデータのうち、最も記憶された時間が古いデータを読出す。読み出したデータは、たとえば、図3AのストリーミングデータSTD100であるとする。次に、出力要求部253は、ストリーミングデータSTD100のタイムスタンプ(TS)を取得する。タイムスタンプ(TS)は、データの再生の時刻(タイミング)を表す情報である。当該時刻は、図9の、たとえば、出力時刻のような形式で示される。その後、ステップS322に進む。
ステップS322では、データの出力時刻(タイミング)であるか否かが判定される。具体的には、出力要求部253が、ステップS321で取得したタイムスタンプが示す時刻と、ステップS320において取得したカウンタC2の値とが一致するか否かを範手する。ステップS322において、YESならば、ステップS323に進む。一方、ステップS322において、NOならば、再度、ステップS320の処理が行なわれる。
ステップS323では、出力要求部253が、データの出力要求を、出力部254へ送信する。その後、再度、ステップS320の処理が行なわれる。
次に、出力部254の処理機能について説明する。
再び、図11を参照して、出力部254は、記憶部244に記憶されたデータを、出力要求部253からの出力要求のタイミングに応じて、デコーダ210に出力するためのデータ出力処理を行なう。
図15は、データ出力処理のフローチャートである。図15を参照して、ステップS330では、出力部254が、出力要求部253から出力要求を受信したか否かを判定する。ステップS330において、YESならば、ステップS331に進む。一方、ステップS330において、NOならば、再度、ステップS330の処理が行なわれる。
ステップS331では、出力部254が、現在のデータ出力位置を表す変数buffer_head(図6参照)の値を参照する。なお、変数buffer_headは、記憶部245に記憶されている。出力部254は、参照した変数buffer_headの値に対応する記憶部244の記憶番地を先頭番地としてデータを読出し、デコーダ210へ出力(送信)する。その後、ステップS332に進む。
ステップS332では、出力部254が、デコーダ210へデータを出力したことを示す出力通知を、差分監視部251へ送信する。なお、出力通知には、データを読み出した記憶部244の先頭番地(記憶番地)が含まれる。その後、ステップS333に進む。
ステップS333では、出力部254が、変数buffer_headの値を、ステップS331の処理で出力したデータのバイト数だけ増加させる。これにより、次のデータ(パケット)の出力位置が変更される。その後、再度、ステップS330の処理が行なわれる。
以上説明したように、第2の実施の形態における出力回路240Aは、ネットワーク50を介して、ストリーミングデータを受信し、記憶部244にデータを一時記憶させ、出力部254により、一時記憶させたデータをデコーダ210へ出力する。
データ出力のタイミングは、差分監視部251が算出した差分時間に基づいて、動的に制御される。そのため、記憶部244におけるオーバーランやアンダーランの発生を防ぐことができるという効果を奏する。
データ出力のタイミングを制御するために使用する差分時間の情報は、記憶部244に記憶されているデータのバイト数に依存しない。そのため、VBRのようにビットレートの変動によって、記憶部244に記憶されるデータのバイト数が変動するような場合でも、出力部254は、正確なタイミングで、記憶部244に記憶されたデータを、デコーダ210へ出力することができる。すなわち、正確なタイミングでデータを出力できるという効果を奏する。
<第3の実施の形態>
本実施の形態では、本発明の出力回路のもう1つの形態について詳細に説明する。ここでは、リアルタイムストリーム伝送における受信装置の内部に組み込まれた形態での例について述べる。
本実施の形態におけるネットワークシステムでは、ネットワークシステム1000と比較して、送信装置100の代わりに送信装置100Bを含む点と、受信装置200の代わりに受信装置200Bを含む点が異なる。それ以外は、ネットワークシステム1000と同様なので詳細な説明は繰り返さない。
図16は、第3の実施の形態における、送信装置100Bおよび受信装置200Bの内部構成を示したブロック図である。図16を参照して、送信装置100Bは、図10の送信装置100と比較して、処理部120の代わりに処理部120Bを備える点が異なる。それ以外の構成は、送信装置100と同様なので詳細な説明は繰り返さない。
処理部120Bは、処理部120と同様な機能を有する回路であるので詳細な説明は繰り返さない。処理部120Bは、第1処理部121、暗号化部122および第2処理部123を含む。後述する処理を行なう、第1処理部121、暗号化部122および第2処理部123の各々は、処理部120Bの一機能を担う。なお、処理部120Bに含まれる各部の全てまたは一部は、ハードウエアで構成されてもよい。
第1処理部121は、デコーダ110から出力されるMPEG2データに、再生のタイミングを表すタイムスタンプ(TS)を付加し、暗号化部122へ送信する。
暗号化部122は、第1処理部121から受信したデータを暗号化する。たとえば、図3Bに示すように、MPEG2データにタイムスタンプが付加されたデータを複数個集めてまとめて暗号化する。暗号化方法としては、たとえば、DES(Data Encryption Standard)またはAES(Advanced Encryption Standard)などの方法が用いられる。暗号化部122は、暗号化したデータを、第2処理部123へ送信する。
第2処理部123は、暗号化部122から受信したデータを、ネットワーク上を伝送できるようなデータにする。たとえば、図3Bに示すように、暗号化されたデータに対して、IPヘッダ、TCPヘッダおよびRTPヘッダを付加する。第2処理部123は、生成したデータを、通信部130へ送信する。
通信部130は、受信したデータ(ストリーミングデータ)を、ネットワーク50へ送信する。ストリーミングデータは、図3BのストリーミングデータSTD200である。
受信装置200Bは、図10の受信装置200Aと比較して、出力回路240Aの代わりに出力回路240Bを備える点とが異なる。それ以外の構成は、受信装置200Aと同様なので詳細な説明は繰り返さない。
出力回路240Bは、出力回路240Aと比較して、記憶部248Aおよび記憶部248Bをさらに備える点と、処理部250の代わりに処理部250Bを含む点が異なる。それ以外の構成は、出力回路240Aと同様なので詳細な説明は繰り返さない。記憶部248Aおよび記憶部248Bは、記憶部244と同様、データを一時的に保持可能なFIFO型のバッファとしての機能を有する。
処理部250Bは、処理部120と同様な機能を有する回路であるので詳細な説明は繰り返さない。処理部250Bは、処理部250と比較して、さらに、復号部255、データ出力部256を含む点が異なる。それ以外は、処理部250と同様なので詳細な説明は繰り返さない。すなわち、処理部250Bは、処理部250と同様に、制御プログラム310に従って、各種処理を行なう機能を有する。なお、後述する処理を行なう、差分監視部251、蓄積部252、出力要求部253、出力部254、復号部255およびデータ出力部256の各々は、処理部250Bの一機能を担う。また、処理部250Bに含まれる各部の全てまたは一部は、ハードウエアで構成されてもよい。
受信装置200Bは、送信装置100Bから、ネットワーク50を介して、パケットとしてのストリーミングデータSTD200を受信する。
次に、出力回路240B内部の各処理について詳細に説明する。なお、本実施の形態において以下に説明する各種処理は、同時に開始され、各々が独立して行なわれる。
図17は、第3の実施の形態において、通信部230および処理部250B内で行なわれる処理を示す図である。図17を参照して、通信部230は、前述の図12のデータ受信処理を行なう。蓄積部252は、前述の図5のデータ蓄積処理を行なう。差分監視部251は、差分監視処理Aを行なう。
図18は、差分監視処理Aのフローチャートである。図18を参照して、差分監視処理Aは、図7の差分監視処理と比較して、ステップS122の代わりにステップS122Aの処理が行なわれる点と、ステップS123の代わりにステップS123Aの処理が行なわれる点と、ステップS125の代わりにステップS125Aの処理が行なわれる点が異なる。それ以外の処理は、図7の差分監視処理と同様なので詳細な説明は繰り返さない。
ステップS122Aでは、差分監視部251が、出力部254から出力通知を受信したか否かを判定する。なお、出力通知には、データを読み出した記憶部244の先頭番地(記憶番地)が含まれる。前述したように出力部254は、記憶部244からデータを読出し、デコーダ210へ出力すると、差分監視部251へ出力通知を送信する。ステップS122Aにおいて、YESならば、ステップS123Aへ進む。一方、ステップS122Aにおいて、NOならば、再度、ステップS120の処理が繰り返される。
ステップS123Aでは、差分監視部251が、出力通知があった時刻(以下、出力時刻ともいう)を、出力通知に含まれる記憶番地に対応付けて、記憶部245に記憶させる。すなわち、記憶部245には、記憶番地、記憶時刻および出力時刻とが対応づけられたデータが記憶される。
ステップS125Aでは、差分監視部251が、算出した差分時間の情報を、データ出力部256に通知する。その後、再度、ステップS120の処理が繰り返される。
再び、図17を参照して、出力要求部253は、出力要求処理Aを行なう。
図19は、出力要求処理Aのフローチャートである。図19を参照して、ステップS410では、出力要求部253が、記憶部248Aに空き領域があるか否かを判定する。ステップS410において、YESならば、ステップS412に進む。一方、ステップS410において、NOならば、再度、ステップS410の処理が行なわれる。
ステップS412では、出力要求部253が、データの出力要求を、出力部254へ送信する。当該出力要求は、その時点で記憶部248Aの空き領域を越えない最大のデータ量の出力の要求である。その後、再度、ステップS410の処理が行なわれる。
再び、図17を参照して、出力部254は、前述の図15のデータ出力処理を行なう。本実施の形態において、出力部254が行なうデータ出力処理では、ステップS331において、データをデコーダ210へ出力する代わりにデータを記憶部248Aに記憶させる。
復号部255は、復号処理を行なう。
図20は、復号処理のフローチャートである。図20を参照して、ステップS420では、復号部255が、記憶部248Bに空き領域があるか否かを判定する。ステップS420において、YESならば、ステップS421に進む。一方、ステップS420において、NOならば、再度、ステップS420の処理が行なわれる。
ステップS421では、復号部255が、記憶部248Aからデータの読出しを行なう。読み出すデータ量は、読み出したデータを復号した後のデータのバイト数が、記憶部248Bの空き領域を越えない最大のデータ量とする。その後、ステップS422に進む。
ステップS422では、復号部255が、読み出した暗号化されたデータの復号を行なう。たとえば、送信装置100BでAESによる暗号化が行われている場合は、同じAESによる復号手法を用いてデータの復号を行う。その後、ステップS423にすすむ。
ステップS423では、復号部255が、復号したデータを、記憶部248Bに記憶させる。その後、再度、ステップS420の処理が行なわれる。
再び、図17を参照して、データ出力部256は、前述のクロックカウント処理およびデータ出力処理Bを行なう。本実施の形態におけるクロックカウント処理では、出力要求部253の代わりにデータ出力部256が処理を行なう。
図21は、データ出力処理Bのフローチャートである。図21を参照して、ステップS430では、データ出力部256が、本実施の形態のクロックカウント処理により随時更新されているカウンタC2の値を、記憶部245から読出すことにより取得する。その後、ステップS431に進む。
ステップS431では、データ出力部256が、記憶部248Bに記憶されている複数のデータのうち、最も記憶された時間が古いデータを読出す。読み出したデータは、たとえば、図3AのストリーミングデータSTD100であるとする。次に、データ出力部256は、ストリーミングデータSTD100のタイムスタンプ(TS)を取得する。その後、ステップS432に進む。
ステップS432では、データの出力時刻(タイミング)であるか否かが判定される。具体的には、データ出力部256が、ステップS431で取得したタイムスタンプが示す時刻と、ステップS430において取得したカウンタC2の値とが一致するか否かを範手する。ステップS432において、YESならば、ステップS433に進む。一方、ステップS432において、NOならば、再度、ステップS430の処理が行なわれる。
ステップS433では、データ出力部256が、記憶部248Bに記憶されているデータを読出し、デコーダ210へ送信する。その後、再度、ステップS430の処理が行なわれる。
以上説明したように、第3の実施の形態における出力回路240Bは、ネットワーク50を介して、暗号化されたストリーミングデータを受信し、復号部255により復号されたデータを、デコーダ210へ出力する。
デコーダ210へ出力されるデータの速度は、差分監視部251が算出した差分時間に基づいて、動的に制御される。そのため、暗号化されたストリーミングデータに含まれるタイムスタンプの値を参照しなくても、デコーダ210へ出力されるデータの速度は、制御可能となる。
データ出力のタイミングを制御するために使用する差分時間の情報は、記憶部248Bに記憶されているデータのバイト数に依存しない。そのため、VBRのようにビットレートの変動によって、記憶部248Bに記憶されるデータのバイト数が変動するような場合でも、データ出力部256は、正確なタイミングで、記憶部248Bに記憶されたデータをデコーダ210へ出力することができる。すなわち、正確なタイミングでデータを出力できるという効果を奏する。すなわち、データ出力部256は、デコーダ210へ送信するデータの出力速度を正確に制御できるという効果を奏する。
記憶部244から出力されるデータ量は、出力先の記憶部248Aの空き領域を超えない最大のデータ量となる。また、記憶部248Aから出力されるデータ量は、出力先の記憶部248Bの空き領域を超えない最大のデータ量となる。したがって、デコーダ210へのデータの出力速度を伝播することが可能になる。すなわち、デコーダ210へのデータの出力速度が変化すれば、それに応じて記憶部244からのデータの出力速度も変化することになる。
その結果、本実施の形態の処理を用いることで、クロックのズレによる記憶部244のデータの増減を、データのタイムスタンプ値やバイト数によって監視できないような場合においても、記憶部244におけるオーバーランやアンダーランの発生を防ぐことができるという効果を奏する。
<第4の実施の形態>
本実施の形態では、本発明の出力回路のさらにもう1つの形態について詳細に説明する。ここでは、リアルタイムストリーム伝送における受信装置の内部に組み込まれた形態での例について述べる。
本実施の形態におけるネットワークシステムでは、ネットワークシステム1000と比較して、送信装置100の代わりに送信装置100Bを含む点と、受信装置200の代わりに受信装置200Bを含む点が異なる。それ以外は、ネットワークシステム1000と同様なので詳細な説明は繰り返さない。
図22は、第4の実施の形態における、送信装置100Bおよび受信装置200Bの内部構成を示したブロック図である。図22を参照して、送信装置100Bおよび受信装置200Bの構成は、図16と同様なので詳細な説明は繰り返さない。なお、詳細は後述するが、図22の処理部250Bと、図16の処理部250Bは、異なる処理を行なう。
受信装置200Bは、送信装置100Bから、ネットワーク50を介して、パケットとしてのストリーミングデータを受信する。ストリーミングデータは、図3BのストリーミングデータSTD200である。
次に、出力回路240B内部の各処理について詳細に説明する。なお、本実施の形態において以下に説明する各種処理は、同時に開始され、各々が独立して行なわれる。
図23は、第4の実施の形態において、通信部230および処理部250B内で行なわれる処理を示す図である。図23を参照して、通信部230は、前述の図12のデータ受信処理を行なう。蓄積部252は、前述の図5のデータ蓄積処理を行なう。差分監視部251は、差分監視処理Bを行なう。
図24は、差分監視処理Bのフローチャートである。図24を参照して、差分監視処理Bは、図18の差分監視処理Aと比較して、ステップS125Aの代わりにステップS125Bの処理が行なわれる点が異なる。それ以外の処理は、図18の差分監視処理Aと同様なので詳細な説明は繰り返さない。
ステップS125Bでは、差分監視部251が、算出した差分時間の情報を、出力要求部253に通知する。その後、再度、ステップS120の処理が繰り返される。
再び、図23を参照して、出力要求部253は、前述の図13のクロックカウント処理を行なう。また、出力要求部253は、出力要求処理Bを行なう。
図25は、出力要求処理Bのフローチャートである。図25を参照して、出力要求処理Bは、図14の出力要求処理と比較して、ステップS321の代わりにステップS321Aが行なわれる点と、ステップS323の代わりにステップS323Aが行なわれる点とが異なる。それ以外の処理は、図14の出力要求処理と同様なので詳細な説明は繰り返さない。
ステップS321Aでは、出力要求部253が、記憶部248Bに記憶されている複数のデータのうち、最も記憶された時間が古いデータを読出す。読み出したデータは、たとえば、図3AのストリーミングデータSTD100であるとする。次に、出力要求部253は、ストリーミングデータSTD100のタイムスタンプ(TS)を取得する。その後、ステップS322に進む。
ステップS323Aでは、出力要求部253が、データの出力要求を、データ出力部256へ送信する。その後、再度、ステップS320の処理が行なわれる。
再び、図23を参照して、出力部254は、データ出力処理Cを行なう。
図26は、データ出力処理Cのフローチャートである。図26を参照して、ステップS530では、出力部254が、記憶部248Aに空き領域があるか否かを判定する。ステップS530において、YESならば、ステップS531に進む。一方、ステップS530において、NOならば、再度、ステップS530の処理が行なわれる。
ステップS531では、出力部254が、現在のデータ出力位置を表す変数buffer_head(図6参照)の値を参照する。出力部254は、記憶部248Aの空き領域を超えない最大の量のデータを、変数buffer_headの値に対応する記憶部244の記憶番地を先頭番地として、記憶部244から読み出す。次に、出力部254は、読み出したデータを、記憶部248Aに出力する。すなわち、読み出したデータを記憶部248Aに記憶させる。その後、ステップS532に進む。
ステップS532では、出力部254が、記憶部248Aにデータを出力したことを示す出力通知を、差分監視部251へ送信する。その後、ステップS533に進む。
ステップ533では、出力部254が、変数buffer_headの値を、ステップS531の処理で出力したデータのバイト数だけ増加させる。これにより、次のデータ(パケット)の出力位置が変更される。その後、再度、ステップS530の処理が行なわれる。
再び、図23を参照して、復号部255は、前述の図20の復号処理を行なう。データ出力部256は、データ出力処理Dを行なう。
図27は、データ出力処理Dのフローチャートである。図27を参照して、ステップS540では、データ出力部256が、出力要求部253から出力要求を受信したか否かを判定する。ステップS540において、YESならば、ステップS542に進む。一方、ステップS540において、NOならば、再度、ステップS540の処理が行なわれる。
ステップS542では、データ出力部256が、記憶部248Bに記憶されているデータを読出し、デコーダ210へ送信する。その後、再度、ステップS540の処理が行なわれる。
以上説明したように、第4の実施の形態における出力回路240Bの処理においても、第3の実施の形態の処理により得られる効果と同じ効果を奏する。
<第5の実施の形態>
本実施の形態では、出力回路のさらに異なる形態について説明する。
本実施の形態におけるネットワークシステムは、ネットワークシステム1000と比較して、受信装置200の代わりに受信装置200Cを含む点が異なる。それ以外は、ネットワークシステム1000と同様なので詳細な説明は繰り返さない。
図29は、第5の実施の形態における、送信装置100および受信装置200Cの内部構成を示したブロック図である。図29を参照して、受信装置200Cは、図10の受信装置200Aと比較して、出力要求部253をさらに備える点と、出力回路240Aの代わりに出力回路240Cを備える点とが異なる。それ以外の構成は、受信装置200Aと同様なので詳細な説明は繰り返さない。
出力回路240Cは、出力回路240Aと比較して、処理部250の代わりに処理部250Cを含む点が異なる。それ以外の構成は、出力回路240Aと同様なので詳細な説明は繰り返さない。
処理部250Cは、図10の処理部250と比較して、出力要求部253を含まない点が異なる。それ以外は、処理部250と同様なので詳細な説明は繰り返さない。すなわち、処理部250Cは、処理部250と同様に、制御プログラム310に従って、各種処理を行なう機能を有する。また、差分監視部251、蓄積部252および出力部254の各々は、処理部250Cの一機能を担う。また、処理部250Cに含まれる各部の全てまたは一部は、ハードウエアで構成されてもよい。
すなわち、受信装置200Cは、受信装置200Aと比較して、出力回路240Cの外部に出力要求部253が設けられる。出力要求部253は、ハードウエアによって構成される。すなわち、出力要求部253は、出力回路240Cに対して、外部の回路である。
本実施の形態における、差分監視部251、蓄積部252、出力要求部253および出力部254の各々が行なう処理は、第2の実施の形態と同様なので詳細な説明は繰り返さない。
以上により、差分監視部251により算出された差分時間が、出力要求部253へ送信(通知)される。この場合、差分時間は、出力要求部253が出力要求を出すタイミングを制御するための情報となる。
したがって、本実施の形態における受信装置200Cにおいても、第2の実施の形態と同様な効果を得ることができる。
<第5の実施の形態の変形例>
本実施の形態では、出力回路の外部の回路が差分時間を算出する処理について説明する。
本実施の形態におけるネットワークシステムは、第5の実施の形態と同様なので詳細な説明は繰り返さない。したがって、本実施の形態における、送信装置100および受信装置200Cの内部構成を示したブロック図は、図29である。
本実施の形態では、蓄積部252が、第2の実施の形態と同様な処理(図5のデータ蓄積処理)を行なうので詳細な説明は繰り返さない。
また、差分監視部251が、図7の差分監視処理のステップS120,S121,S122の処理を行なう。そして、ステップS122では、出力要求部253から、出力部254へ出力要求があったとして、ステップS123の処理が行なわれる。
そして、差分監視部251は、ステップS123の処理で記憶させた出力時刻と、当該出力時刻に対応する記憶時刻とを、外部回路としての出力要求部253へ送信(通知)する。
そして、出力要求部253は、受信した、出力時刻と、当該出力時刻に対応する記憶時刻との差分時間を算出する。差分時間の算出は、ステップS124において、差分監視部251が行なう処理と同様なので詳細な説明は繰り返さない。この場合、算出された差分時間は、出力要求部253が出力要求を出すタイミングを制御するための情報となる。すなわち、出力要求部253が受信した、出力時刻と、当該出力時刻に対応する記憶時刻とは、出力要求部253が出力要求を出すタイミングを制御するための情報となる。
したがって、本実施の形態における受信装置200Cにおいても、第2の実施の形態と同様な効果を得ることができる。
なお、第1の実施の形態の出力回路240および第2〜第5の実施の形態の出力回路内の差分監視部251は、差分時間を算出する処理を行なっていた。第2の実施の形態では、出力要求部253が、差分時間を利用して、出力部254のデータを出力する速度を制御していた。
第3の実施の形態では、データ出力部256が、差分時間を利用して、データを出力する速度を制御していた。第4の実施の形態では、出力要求部253が、差分時間を利用して、データ出力部256のデータを出力する速度を制御していた。第2〜第4のデータの出力する速度の制御は、差分時間が所定の上限値に達したとき、データの出力速度を増加させ、差分時間が、所定の下限値に達したとき、データの出力速度を減少させるという制御である。
しかしながら、本発明は、上記処理に限定されることなく以下の処理を行なってもよい。
図28は、時間経過に伴う差分時間の変化を示す図である。図28を参照して、差分監視部251は時間経過に伴い変化する差分時間のデータを、所定個数使用して、たとえば、最小二乗法などの計算方法を用いて、特性として、直線Y=AX+Bを算出する。すなわち、差分時間の特性を算出する。
この場合、直線の傾きを示すAは、記憶部(バッファ)のデータ量を、観測した時間で割った値となる。すなわち、Aは、送信装置と受信装置との間の時間の進み方のズレを表す。
送信装置のエンコーダ110がデータを出力する速度で、デコーダ210が、データの再生を行っていた場合は、A=0となる。しかし、送信装置と受信装置との間でクロックのズレがある場合は、Aがゼロ以外の数値となる。
そこで、各実施の形態のクロックカウント処理において、単位時間当たりの補正値HをAに設定する。各実施の形態においてクロックカウント処理を行なう処理部(たとえば、処理部250、処理部250B,処理部250C)は、設定された補正値を使用して、各実施の形態において、データをデコーダ210へ出力する処理部(たとえば、出力部254、データ出力部256)がデータを出力する速度を制御する。
以上の処理により、送信装置のクロック速度と受信装置とのクロック速度は、時間経過と共に近づいていく。したがって、オーバーランやアンダーランの発生を防ぐことができるという効果を奏する。
なお、本発明における各部は同一の処理部で実行される例を示したが、各部がそれぞれ別々の処理部で実行されてもよい。たとえば、出力要求部を他の処理部上で動作させ、差分監視部が取得した差分情報を別の処理部上にある出力要求部に通知する構成や、差分算出の基となる記憶時刻と出力時刻を通知し、別の処理部で差分を計算し出力要求を出すような構成も考えられる。
また、本発明においては、データAが記憶部244に記憶される時刻と、記憶部244からデータAが出力される時刻の差分を算出することにより、差分時間を算出していた。すなわち、差分時間は、データAという同一のデータに着目して算出されていた。しかしながら、差分時間は、以下の算出方法Aで算出されてもよい。
算出方法Aは、データAが記憶部244に記憶されてから、データBが記憶部244に記憶されるまでの期間おいて、所定個数(たとえば、2個)のデータが記憶部244に記憶される場合における差分時間の算出方法である。なお、所定個数は0個であってもよい。ここで、データAが記憶部244に記憶される時刻を時刻t1とし、記憶部244からデータBが出力される時刻を時刻t2とする。この場合、算出方法Aでは、時刻t1と、時刻t2との差分の時間を計算することにより差分時間が算出される。すなわち、差分時間は、異なる2つのデータに着目しても算出可能である。
また、差分時間は、以下の算出方法Bで算出されてもよい。
算出方法Bでは、データAが記憶部244に記憶された時刻で、クロック発生部247から出力されるクロックをカウントするためのクロックカウンタの値を0に設定し、データAが記憶部244から出力された時刻でのクロックカウンタの値を読み取ることにより、差分時間が算出される。以下においては、クロックカウンタの値をクロックカウント数ともいう。
また、差分時間は、算出方法Aと、算出方法Bとを組み合わせた算出方法Cで算出されてもよい。算出方法Cは、データAが記憶部244に記憶されてから、データBが記憶部244に記憶されるまでの期間おいて、所定個数(たとえば、2個)のデータが記憶部244に記憶される場合における差分時間の算出方法である。なお、所定個数は0個であってもよい。ここで、データAが記憶部244に記憶される時刻を時刻t3とし、記憶部244からデータBが出力される時刻を時刻t4とする。この場合、算出方法Cでは、時刻t3でクロックカウンタの値を0に設定し、時刻t4でのクロックカウンタの値を読み取ることにより、差分時間が算出される。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。

Claims (29)

  1. データを記憶するための記憶部(244)と、
    データを前記記憶部に記憶させる蓄積部(252)と、
    前記記憶部に記憶されたデータの出力要求を行なうための出力要求部(253)と、
    前記出力要求に応じて、前記記憶部に記憶されたデータを出力させるための出力部(254)と、
    第一のデータが、前記蓄積部によって、前記記憶部に記憶されてから、前記記憶部に記憶される第二のデータが、前記出力部によって出力されるまでの経過時間を算出するための算出部(251)とを備え、
    前記出力要求部は、前記経過時間に基づいて、前記出力部がデータを出力する速度を変化させる、出力回路。
  2. 前記出力要求部は、前記経過時間が所定の上限値に達した場合、前記出力部がデータを出力させる速度を増加させ、前記経過時間が所定の下限値に達した場合、前記出力部がデータを出力させる速度を減少させる、請求の範囲第1項に記載の出力回路。
  3. 前記算出部は、所定時間における、前記記憶部に記憶されるデータに基づいて変化する前記経過時間の情報を所定個数使用し、所定の演算により、前記経過時間の特性を算出し、
    前記出力要求部は、前記経過時間の特性に基づいて、前記出力部がデータを出力する速度を変化させる、請求の範囲第1項に記載の出力回路。
  4. 前記所定の演算は、最小二乗法による演算である、請求の範囲第3項に記載の出力回路。
  5. 前記経過時間は、前記蓄積部が前記第一のデータを前記記憶部に記憶させた時刻と、前記出力部が前記記憶部に記憶された前記第二のデータを出力させる時刻との差分の時間である、請求の範囲第1項に記載の出力回路。
  6. 前記経過時間は、前記蓄積部が前記第一のデータを前記記憶部に記憶させてから、前記出力部が前記記憶部に記憶された前記第二のデータを出力させるまでにカウントされるクロックカウント数に基づく時間である、請求の範囲第1項に記載の出力回路。
  7. 前記第一のデータおよび前記第二のデータは同じデータである、請求の範囲第1項に記載の出力回路。
  8. 前記記憶部に前記第一のデータが記憶されてから、前記記憶部に前記第二のデータが記憶されるまでの期間において、前記記憶部には所定個数のデータが記憶される、請求の範囲第1項に記載の出力回路。
  9. データを記憶するための記憶部(244)と、
    暗号化された暗号データを前記記憶部に記憶させる蓄積部(252)と、
    前記記憶部に記憶された暗号データの出力要求を行なうための出力要求部(253)と、
    前記出力要求に応じて、前記記憶部から暗号データを出力するための第一出力部(254)と、
    前記第一出力部から出力される暗号データを、復号するための復号部(255)と、
    前記復号部により復号された復号データを出力するための第二出力部(256)と、
    第一の暗号データが、前記蓄積部によって、前記記憶部に記憶されてから、前記記憶部に記憶される第二の暗号データが、前記第一出力部によって出力されるまでの経過時間を算出するための算出部(251)とを備え、
    前記第二出力部は、前記経過時間に基づいて、前記復号データを出力する速度を変化させる、出力回路。
  10. 前記第二出力部は、前記経過時間が所定の上限値に達した場合、前記復号データを出力する速度を増加させ、前記経過時間が所定の下限値に達した場合、前記復号データを出力する速度を減少させる、請求の範囲第9項に記載の出力回路。
  11. 前記算出部は、所定時間における、前記記憶部に記憶される暗号データに基づいて変化する前記経過時間の情報を所定個数使用し、所定の演算により、前記経過時間の特性を算出し、
    前記第二出力部は、前記経過時間の特性に基づいて、前記復号データを出力する速度を変化させる、請求の範囲第9項に記載の出力回路。
  12. 前記所定の演算は、最小二乗法による演算である、請求の範囲第11項に記載の出力回路。
  13. 前記第一の暗号データおよび前記第二の暗号データは同じデータである、請求の範囲第9項に記載の出力回路。
  14. データを記憶するための記憶部(244)と、
    暗号化された暗号データを前記記憶部に記憶させる蓄積部(252)と、
    前記記憶部から暗号データを出力するための第一出力部(254)と、
    前記第一出力部から出力される暗号データを復号するための復号部(255)と、
    出力要求に応じて、前記復号部により復号された復号データを出力するための第二出力部(256)と、
    前記出力要求を、前記第二出力部へ行なうための出力要求部(253)と、
    第一の暗号データが、前記蓄積部によって、前記記憶部に記憶されてから、前記記憶部に記憶される第二の暗号データが、前記第一出力部によって出力されるまでの経過時間を算出するための算出部(251)とを備え、
    前記出力要求部は、前記経過時間に基づいて、前記第二出力部が前記復号データを出力する速度を変化させる、出力回路。
  15. 前記出力要求部は、前記経過時間が所定の上限値に達した場合、前記第二出力部が前記復号データを出力する速度を増加させ、前記経過時間が所定の下限値に達した場合、前記第二出力部が前記復号データを出力する速度を減少させる、請求の範囲第14項に記載の出力回路。
  16. 前記算出部は、所定時間における、前記記憶部に記憶される暗号データに基づいて変化する前記経過時間の情報を所定個数使用し、所定の演算により、前記経過時間の特性を算出し、
    前記出力要求部は、前記経過時間の特性に基づいて、前記第二出力部が前記復号データを出力する速度を変化させる、請求の範囲第14項に記載の出力回路。
  17. 前記所定の演算は、最小二乗法による演算である、請求の範囲第16項に記載の出力回路。
  18. 前記第一の暗号データおよび前記第二の暗号データは同じデータである、請求の範囲第14項に記載の出力回路。
  19. 外部回路(253)からの出力要求に応じてデータの出力を行なう出力回路であって、
    データを記憶するための記憶部(244)と、
    データを前記記憶部に記憶させるための蓄積部(252)と、
    前記出力要求に応じて、前記記憶部に記憶されたデータを出力させるための出力部(254)と、
    第一のデータが、前記蓄積部によって、前記記憶部に記憶されてから、前記記憶部に記憶される第二のデータが、前記出力部によって出力されるまでの経過時間を算出し、前記出力要求のタイミングを制御するための情報として、前記経過時間を前記外部回路に通知する算出部(251)とを備える、出力回路。
  20. 前記経過時間は、前記蓄積部が前記第一のデータを前記記憶部に記憶させた時刻と、前記出力部が前記記憶部に記憶された前記第二のデータを出力させる時刻との差分の時間である、請求の範囲第19項に記載の出力回路。
  21. 前記経過時間は、前記蓄積部が前記第一のデータを前記記憶部に記憶させてから、前記出力部が前記記憶部に記憶された前記第二のデータを出力させるまでにカウントされるクロックカウント数に基づく時間である、請求の範囲第19項に記載の出力回路。
  22. 前記第一のデータおよび前記第二のデータは同じデータである、請求の範囲第19項に記載の出力回路。
  23. 前記記憶部に前記第一のデータが記憶されてから、前記記憶部に前記第二のデータが記憶されるまでの期間において、前記記憶部には所定個数のデータが記憶される、請求の範囲第19項に記載の出力回路。
  24. 外部回路(253)からの出力要求に応じてデータの出力を行なう出力回路であって、
    データを記憶するための記憶部(244)と、
    データを前記記憶部に記憶させるための蓄積部(252)と、
    前記出力要求に応じて、前記記憶部に記憶されたデータを出力させるための出力部(254)と、
    第一のデータが、前記蓄積部によって、前記記憶部に記憶された時刻と、前記記憶部に記憶される第二のデータが、前記出力部によって出力された時刻とを、前記出力要求のタイミングを制御するための情報として、前記外部回路に通知する通知部(251)とを備える、出力回路。
  25. 前記第一のデータおよび前記第二のデータは同じデータである、請求の範囲第24項に記載の出力回路。
  26. コンピュータにデータ処理を実行させるための制御プログラム製品であって、
    データをコンピュータの記憶部(244)に記憶させるステップ(S112)と、
    前記記憶部に記憶されたデータの出力要求を行なうステップ(S323)と、
    前記出力要求に応じて、前記記憶部に記憶されたデータを出力させるステップ(S331)と、
    第一のデータが前記記憶部に記憶されてから、前記記憶部に記憶される第二のデータが出力されるまでの経過時間を算出するステップ(S124)と、
    前記経過時間に基づいて、データを出力する速度を変化させるステップ(S310,S311,S312,S313,S313A,S314,S315,S316,S317)とをコンピュータに実行させる、制御プログラム製品。
  27. 前記第一のデータおよび前記第二のデータは同じデータである、請求の範囲第26項に記載の出力回路。
  28. 記憶部(244)が設けられた出力回路が行なう制御方法であって、
    前記制御方法は、
    データを前記記憶部に記憶させるステップ(S112)と、
    前記記憶部に記憶されたデータの出力要求を行なうステップ(S323)と、
    前記出力要求に応じて、前記記憶部に記憶されたデータを出力させるステップ(S331)と、
    第一のデータが前記記憶部に記憶されてから、前記記憶部に記憶される第二のデータが出力されるまでの経過時間を算出するステップ(S124)と、
    前記経過時間に基づいて、データを出力する速度を変化させるステップ(S310,S311,S312,S313,S313A,S314,S315,S316,S317)とを備える、制御方法。
  29. 前記第一のデータおよび前記第二のデータは同じデータである、請求の範囲第28項に記載の制御方法。
JP2007524055A 2005-07-06 2006-07-03 出力回路、制御プログラム製品および制御方法 Pending JPWO2007004611A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005197865 2005-07-06
JP2005197865 2005-07-06
PCT/JP2006/313230 WO2007004611A1 (ja) 2005-07-06 2006-07-03 出力回路、制御プログラム製品および制御方法

Publications (1)

Publication Number Publication Date
JPWO2007004611A1 true JPWO2007004611A1 (ja) 2009-01-29

Family

ID=37604472

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007524055A Pending JPWO2007004611A1 (ja) 2005-07-06 2006-07-03 出力回路、制御プログラム製品および制御方法

Country Status (3)

Country Link
US (1) US20090210588A1 (ja)
JP (1) JPWO2007004611A1 (ja)
WO (1) WO2007004611A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5440839B2 (ja) * 2009-06-10 2014-03-12 ソニー株式会社 情報処理装置および方法、並びにプログラム
KR101180540B1 (ko) * 2010-10-20 2012-09-06 연세대학교 산학협력단 스트리밍 서비스 송/수신 장치 및 방법
US11750706B1 (en) 2020-03-26 2023-09-05 Amazon Technologies, Inc. Data transmission time management

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07191695A (ja) * 1993-11-17 1995-07-28 Sanyo Electric Co Ltd 話速変換装置
JPH0845177A (ja) * 1993-10-19 1996-02-16 Sanyo Electric Co Ltd 話速変換装置
JPH08147874A (ja) * 1993-10-19 1996-06-07 Sanyo Electric Co Ltd 話速変換装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0485971B1 (en) * 1990-11-14 1998-02-18 Fujitsu Limited Delay distortion supressing system for ATM communication system
JPH04179341A (ja) * 1990-11-14 1992-06-26 Fujitsu Ltd 遅延揺らぎ吸収制御方式
US5790543A (en) * 1995-09-25 1998-08-04 Bell Atlantic Network Services, Inc. Apparatus and method for correcting jitter in data packets
US6052384A (en) * 1997-03-21 2000-04-18 Scientific-Atlanta, Inc. Using a receiver model to multiplex variable-rate bit streams having timing constraints
AUPP362498A0 (en) * 1998-05-19 1998-06-11 Curtin University Of Technology Method and apparatus for transfer of real time signals over packet network
JP3449276B2 (ja) * 1999-02-03 2003-09-22 日本電気株式会社 パケット受信装置およびパケット受信方法、並びに記録媒体
US6408198B1 (en) * 1999-12-17 2002-06-18 Datex-Ohmeda, Inc. Method and system for improving photoplethysmographic analyte measurements by de-weighting motion-contaminated data
JP2002165148A (ja) * 2000-11-29 2002-06-07 Sony Corp データ処理装置および方法、並びに記録媒体
US6701389B2 (en) * 2001-06-07 2004-03-02 International Business Machines Corporation Bandwidth allocation in accordance with shared queue output limit
US7581019B1 (en) * 2002-06-05 2009-08-25 Israel Amir Active client buffer management method, system, and apparatus
JP4062504B2 (ja) * 2002-09-09 2008-03-19 ソニー株式会社 同期化方法、通信システムおよびデータ受信装置
US6876952B1 (en) * 2003-04-30 2005-04-05 Cisco Technology, Inc. Methods and apparatus for maintaining queues
JP4176576B2 (ja) * 2003-08-01 2008-11-05 株式会社エヌ・ティ・ティ・ドコモ データ流入量制御方法、基地局及び制御局
JP2005167414A (ja) * 2003-11-28 2005-06-23 Toshiba Corp データ受信装置およびデータ受信方法
US8543723B2 (en) * 2004-07-27 2013-09-24 Sony Corporation Home network system with transmission error recovery
US7599456B1 (en) * 2004-12-13 2009-10-06 Marvell International Ltd. Input/output data rate synchronization using first in first out data buffers

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0845177A (ja) * 1993-10-19 1996-02-16 Sanyo Electric Co Ltd 話速変換装置
JPH08147874A (ja) * 1993-10-19 1996-06-07 Sanyo Electric Co Ltd 話速変換装置
JPH07191695A (ja) * 1993-11-17 1995-07-28 Sanyo Electric Co Ltd 話速変換装置

Also Published As

Publication number Publication date
WO2007004611A1 (ja) 2007-01-11
US20090210588A1 (en) 2009-08-20

Similar Documents

Publication Publication Date Title
JP4361561B2 (ja) データ受信装置及びデータ受信方法
RU2407214C2 (ru) Устройство и способ обработки потока данных, имеющего последовательность пакетов и информацию синхронизации, относящуюся к пакетам
JP3516206B2 (ja) データストリーム処理装置および方法、並びにプログラム格納媒体
JP6935552B2 (ja) 送信方法、受信方法、送信装置および受信装置
JP2005534219A (ja) ウォールクロックを持つシステムに対するジッタ補正方法
TWI471016B (zh) 重建數位視訊資料流的方法與裝置
JP2007274607A (ja) デジタル信号処理装置及びデータストリーム処理方法
JP2008153908A (ja) 記録装置、記録方法、再生装置及び再生方法
US8261060B2 (en) Content transmitting apparatus, content transmitting method, and content transmitting program
JP2007511948A (ja) トリックプレイ信号の再生
JP2008061150A (ja) 受信機及び情報処理方法
JPWO2007004611A1 (ja) 出力回路、制御プログラム製品および制御方法
TWI431986B (zh) Information processing apparatus and method, and program
WO2006011426A1 (ja) 受信装置、受信プログラム、および受信プログラムを記録した記録媒体
US20070223536A1 (en) Stream reproducing method and device
JP2008035197A (ja) クロック回路、映像処理装置およびクロック調整方法
JP2003179871A (ja) データストリームをdvd記録する方法及びdvd記録装置
WO2011024437A1 (ja) 記録装置及び再生装置
JP5082715B2 (ja) 受信装置、受信方法およびコンピュータプログラム
JP5958008B2 (ja) ストリーム処理装置、ストリーム処理方法およびストリーム処理プログラム
JP2007295491A (ja) ストリーミングデータ受信装置及びジッタ除去回路
JP4382230B2 (ja) Mpeg2符号化技術を用いた映像蓄積、再生システムにおける伝送装置及び方法
JP2008035198A (ja) 映像処理装置およびパケット処理方法
JP2008199516A (ja) データ処理装置
JP2018037793A (ja) ストリーム送信装置、ストリーム処理システムおよびストリーム処理プログラム

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101005

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101125

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110301