説明

送信装置、送信方法、及びプログラム

【課題】データ伝送路の状況に拘らず、低遅延でデータを伝送する。
【解決手段】レート制御部212は、データを送信する際の送信レートを調整し、バッファ制御部211は、送信レートに基づいて、データを一時的に保存するための送信バッファ211aのサイズを変更し、送信バッファ211aに、送信バッファ211aのサイズよりも小さい追加可能サイズ以下のデータを一時的に保存させ、RTP送信部113に出力させる。そして、RTP送信部113は、送信レートで、送信バッファ211aにより出力されるデータを送信する。本開示は、例えば動画像等を送信してリアルタイムに再生させる送信装置等に適用できる。

【発明の詳細な説明】
【技術分野】
【0001】
本開示は、送信装置、送信方法、及びプログラムに関し、特に、例えば、ネットワーク等のデータ伝送路の状況に拘わらず、低遅延でデータを送信できるようにした送信装置、送信方法、及びプログラムに関する。
【背景技術】
【0002】
近年、例えば、遠隔地においてロボットアームを操作して患者を手術する遠隔手術が行われつつある。この遠隔手術では、手術の様子を撮像して得られる動画像を見ながら、執刀医がロボットアームを操作するため、数フレーム以下の低遅延(ほぼリアルタイム)で、動画像が伝送されることが望ましい。
【0003】
そこで、インターネット等のデータ伝送路を経由して、動画像等を、数フレーム以下の低遅延で送信(伝送)するために、動画像を構成する各ピクチャの数ライン毎に、ウェーブレット変換による符号化(圧縮)を行う符号化技術が提案されている(例えば、引用文献1参照)。
【0004】
この符号化技術では、送信装置において、ピクチャ内のデータ全ての入力を待つことなく符号化を開始し、その結果得られる符号化データを送信することができる。また、受信装置においても、送信装置からの符号化データ全てを受信する前に復号(伸張)を開始することができる。
【0005】
このため、ネットワークに輻輳(トラフィックの混雑)が生じていない場合、ネットワークの輻輳に起因する遅延が生じないので、符号化データの伝送時間(送信装置からネットワークを介して受信装置に到達するまでに要する時間)は十分に短いものとなり、送信装置は、低遅延で動画像を送信できる。
【0006】
しかしながら、ネットワークに輻輳が生じている場合、ネットワークの輻輳に起因する遅延が生じてしまうため、符号化データの伝送時間が長くなってしまい、送信装置は、低遅延で動画像を送信することができなくなる。
【0007】
そこで、ネットワークの輻輳状況に拘らず、伝送時間を十分に短くするために、ネットワークの輻輳状況に応じて、単位時間当りにおける符号化データの送信量を表す送信レートを調整するようにしたレート制御処理が存在する。
【0008】
このレート制御処理では、送信装置において、内蔵する送信バッファに符号化データを一時的に保存し、レート制御処理により調整される送信レートで受信装置に送信するようにしている。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2007−311924号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
送信装置において、送信レートが、単位時間当りにおける符号化データの生成量を表すデータ生成レートよりも高い場合、送信バッファに保存される符号化データの生成量よりも、送信バッファから出力されて送信される送信量の方が多くなる。
【0011】
この場合、符号化データが送信バッファ内に滞在する時間は十分に短くなるため、低遅延で動画像を送信することができる。
【0012】
しかしながら、送信装置において、送信レートが、符号化データのデータ生成レートよりも低い場合には、送信バッファから出力されて送信される送信量よりも、送信バッファに保存される符号化データの生成量の方が多くなってしまう。
【0013】
この場合、符号化データが送信バッファ内に滞在する時間は長くなるため、低遅延で動画像を送信することができなくなることが生じ得る。
【0014】
このように、ネットワークの輻輳に応じて送信レートを調整することにより、ネットワークの輻輳に起因する遅延を回避することはできるものの、送信レートによっては、低遅延で動画像を送信することができなくなってしまう。
【0015】
本開示は、このような状況に鑑みてなされたものであり、ネットワーク等のデータ伝送路の状況に拘らず、低遅延によりデータを伝送できるようにするものである。
【課題を解決するための手段】
【0016】
本開示の一側面の送信装置は、データを送信する際の送信レートを調整するレート調整部と、前記送信レートに基づいて、前記データを一時的に保存するためのバッファのサイズを変更する変更部と、前記バッファに、前記バッファのサイズよりも小さい追加可能サイズ以下の前記データを一時的に保存させ、送信部に出力させるバッファ制御部と、前記バッファから出力される前記データを送信する前記送信部とを含む送信装置である。
【0017】
前記変更部には、予め決められた送信バッファ時間にも基づいて、前記バッファのサイズを変更させ、前記バッファ制御部には、前記バッファに保存したときから前記送信バッファ時間以内に、前記データを前記送信部に出力させることができる。
【0018】
前記レート調整部には、調整前の送信レートと、調整後の送信レートとの比を表すレート調整比率が、予め決められたレート調整比率下限値以上となるように、前記送信レートを調整させることができる。
【0019】
前記レート調整部には、前記送信レートを調整したときから、予め決められた制限時間が経過するまで、新たな前記送信レートの調整を制限させることができる。
【0020】
前記レート調整部には、前記送信レートを調整したときから、前記バッファに保存済みの前記データのデータサイズが、前記追加可能サイズ以下となるまでに要する最大時間である前記制限時間が経過するまで、新たな前記送信レートの調整を制限させることができる。
【0021】
前記送信レートに基づいて、前記データを符号化して得られる符号化データを生成する際に用いる符号化パラメータを調整するパラメータ調整部と、前記データに対して、前記符号化パラメータに基づく符号化処理を行う符号化部とをさらに設けることができ、前記バッファ制御部には、前記バッファに、前記追加可能サイズ以下の前記符号化データを一時的に保存させ、前記送信部に出力させることができる。
【0022】
前記パラメータ調整部には、前記送信レートに基づいて、前記符号化パラメータとして、所定の時間における前記符号化データの生成量を表すデータ生成レートを調整させることができる。
【0023】
前記レート調整部には、前記データを送信する際に用いるデータ伝送路の状況を表す伝送品質情報に基づいて、前記送信レートを調整させることができる。
【0024】
前記レート調整部には、前記データの損失率、往復伝送遅延、ジッタ、S/N比(signal to noise ratio)、又はBER(Bit Error Rate)の少なくとも1つを含む前記伝送品質情報に基づいて、前記送信レートを調整させることができる。
【0025】
本開示の一側面の送信方法は、データを送信する送信装置の送信方法であって、データを送信する際の送信レートを調整するレート調整ステップと、前記送信レートに基づいて、前記データを一時的に保存するためのバッファのサイズを変更する変更ステップと、前記バッファに、前記バッファのサイズよりも小さい追加可能サイズ以下の前記データを一時的に保存させて出力させるバッファ制御ステップと、前記バッファから出力される前記データを送信する送信ステップとを含む送信方法である。
【0026】
本開示の一側面のプログラムは、コンピュータを、データを送信する際の送信レートを調整するレート調整部と、前記送信レートに基づいて、前記データを一時的に保存するためのバッファのサイズを変更する変更部と、前記バッファに、前記バッファのサイズよりも小さい追加可能サイズ以下の前記データを一時的に保存させ、送信部に出力させるバッファ制御部と、前記バッファから出力される前記データを送信する前記送信部として機能させるためのプログラムである。
【0027】
本開示によれば、データを送信する際の送信レートが調整され、前記送信レートに基づいて、前記データを一時的に保存するためのバッファのサイズが変更され、前記バッファに、前記バッファのサイズよりも小さい追加可能サイズ以下の前記データが一時的に保存されて出力され、出力される前記データが送信される。
【発明の効果】
【0028】
本開示によれば、ネットワーク等のデータ伝送路の状況に拘らず、低遅延でデータを伝送することが可能となる。また、本開示によれば、バッファ内のデータを破棄することなく、低遅延でデータを伝送することが可能となる。
【図面の簡単な説明】
【0029】
【図1】第1の実施の形態である第1の送受信システムの構成例を示すブロック図である。
【図2】主に、保存可能バッファサイズを変更するときの処理の一例を示す図である。
【図3】主に、保存可能バッファサイズを変更した際に、送信バッファ内のデータを破棄するときの一例を示す図である。
【図4】図1の送信装置が行う送信処理を説明するためのフローチャートである。
【図5】図4のステップS9における第1のレート制御処理の詳細を説明するためのフローチャートである。
【図6】図1の受信装置が行う受信処理を説明するためのフローチャートである。
【図7】保存可能バッファサイズを変更した際に、優先度に応じて送信バッファ内のデータを破棄するときの一例を示す図である。
【図8】第2の実施の形態であるNICの構成例を示すブロック図である。
【図9】図8のバッファ制御部が行う処理の一例を示す図である。
【図10】図8のNICが行う送信処理を説明するためのフローチャートである。
【図11】図10のステップS77における第2のレート制御処理の詳細を説明するためのフローチャートである。
【図12】図8のNICが行う受信処理を説明するためのフローチャートである。
【図13】第3の実施の形態である無線中継装置の構成例を示すブロック図である。
【図14】第4の実施の形態である第2の送受信システムの構成例を示すブロック図である。
【図15】図14のバッファ制御部が行う処理の一例を示す図である。
【図16】図14のバッファ制御部211及びレート制御部212が行う処理の一例を説明するための図である。
【図17】図14の送信装置が行う送信処理を説明するためのフローチャートである。
【図18】図14のステップS139における第3のレート制御処理の詳細を説明するためのフローチャートである。
【図19】コンピュータの構成例を示すブロック図である。
【発明を実施するための形態】
【0030】
以下、発明を実施するための形態(以下、実施の形態という)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(送信バッファの保存可能バッファサイズを調整して、低遅延データ伝送を行うときの一例)
2.第2の実施の形態(NICを用いて低遅延データ伝送を行うときの一例)
3.第3の実施の形態(無線中継装置において低遅延データ伝送を行うときの一例)
4.第4の実施の形態(送信バッファに保存されたデータを破棄することなく、低遅延データ伝送を行うときの一例)
【0031】
<1.第1の実施の形態>
[送受信システム100の構成例]
図1は、第1の実施の形態である送受信システム100を示している。
【0032】
この送受信システム100は、送信装置101、受信装置102、及びインターネット等のネットワーク103から構成される。
【0033】
なお、この送受信システム100は、送信装置101の送信レートRに拘らず、後述する送信バッファ112aの送信バッファ時間を一定時間T(以下、送信バッファ時間Tともいう)に維持するように制御して、低遅延でデータを送信できるようにするものである。
【0034】
ここで、送信バッファ時間Tとは、データが送信バッファ112aに保存されたときから出力されるまでに要する最大時間を表す。なお、送信バッファ時間Tは、ユーザや送信装置101を製造する企業等により予め決定され、送信バッファ時間Tが短い程に、より低遅延によるデータ伝送が可能となる。
【0035】
また、送受信システム100では、例えば、IETF(Internet Engineering Task Force) RFC(Request for Comments)3550に記載のRTP(Real time Transport Protocol)/RTCP(Real time Transport Control Protocol)を用いて、送信装置101から受信装置102に対してデータの送信や、ネットワーク状況等の収集が行なわれる。
【0036】
以下において、第1の実施の形態では、送信装置101から受信装置102に対して、低遅延で画像データを送信する場合について説明するが、低遅延で送信されるデータは、画像データに限定されず、低遅延で送信すべきデータであれば、どのようなデータであってもよい。
【0037】
[送信装置101の構成例]
送信装置101は、符号化部111、送信バッファ112aを内蔵するバッファ制御部112、RTP送信部113、RTCP部114、レート制御部115、制御部116、及び操作部117から構成される。
【0038】
符号化部111は、外部から入力される画像データ(ビデオINに対応)を符号化する符号化処理を行う。なお、符号化処理としては、画像データに対して、例えばウェーブレット変換を用いた符号化を施して圧縮するウェーブレット符号化処理を採用することができる。このウェーブレット符号化処理は、ITU-T H.264や、上述の引用文献1等に詳細に記載されている。
【0039】
ここで、ウェーブレット変換とは、画像データを空間周波数の高い成分(高域成分)と低い成分(低域成分)に分割する分析フィルタリングを、分割により得られる低域成分に対して再帰的に繰り返すことにより、画像データを、空間周波数成分毎の係数データに変換する処理をいう。
【0040】
なお、符号化部111において、例えば、高域成分の係数データほど圧縮率を小さくし、低域成分の係数データほど圧縮率を大きくするようにすれば、画像データの画質劣化の少ない符号化処理が可能となる。
【0041】
また、符号化部111は、符号化処理により得られる符号化データを、複数のRTPパケットにパケット化(変換)してバッファ制御部112に出力する。なお、RTPパケットとは、IETF RFC3550に記載のRTPに則った形式のパケットを表す。
【0042】
さらに、符号化部111は、バッファ制御部112からの、送信バッファ112a内にRTPパケットを保存可能な残りサイズを表す残りバッファサイズbr(図2)と、レート制御部115からの送信レートRに基づいて、符号化処理に用いる符号化パラメータを調整する。そして、符号化部111は、調整後の符号化パラメータを用いて、上述の符号化処理を行うようにしている。
【0043】
ここで、符号化パラメータとは、符号化処理におけるデータの圧縮率や、単位時間当たりにおける、RTPパケットの生成量を表すデータ生成レート等を含むものである。
【0044】
バッファ制御部112は、符号化部111からのRTPパケットを、送信バッファ112aに供給して保存させ、FIFO(First In First Out)で出力させる。
【0045】
また、バッファ制御部112は、送信バッファ112a内にRTPパケットを保存したときから送信バッファ時間T以内に出力するように、レート制御部115からの送信レートRに応じて、送信バッファ112aにRTPパケットを保存可能なデータサイズを表す保存可能バッファサイズBを変更する。なお、保存可能バッファサイズBの変更方法は、本開示により開示する技術のポイント部分であるため、図2及び図3を参照して詳述する。
【0046】
さらに、バッファ制御部112は、レート制御部115からの送信レートRで、送信バッファ112a内のRTPパケットを、RTP送信部113に送信(出力)させる平滑化送信を行う。これにより、RTP送信部113では、レート制御部115により調整された送信レートRで、RTPパケットを送信することができるようになる。
【0047】
なお、平滑化送信としては、例えば、ITU-T Y.1221に記載されたトークンバケットビヘイビアやリーキーバケットビヘイビアを用いた平滑化送信を採用することができる。
【0048】
送信バッファ112aは、例えば、バッファ制御部112からの制御に従って、平滑化送信を行う。すなわち、送信バッファ112aは、RTPパケットを出力する際の出力レートを、レート制御部115からの送信レートRに合わせるように平滑化して送信するための平滑化バッファとして機能する。
【0049】
送信バッファ112aは、バッファ制御部112により調整される保存可能バッファサイズBで、符号化部111からのRTPパケットを保存し、FIFOで出力する。なお、送信バッファ112aは、十分に大きな記憶容量を有しており、調整され得る最大の保存可能バッファサイズB以上の記憶容量とされる。
【0050】
RTP送信部113は、RTPに従って、バッファ制御部112からのRTPパケットに対して、タイムスタンプとして、例えばRTPパケットを受信装置102に送信する際の送信時刻等を付加する。そして、RTP送信部113は、タイムスタンプを付加したRTPパケットを、レート制御部115から通知される送信レートRで、ネットワーク103を介して受信装置102に送信する。
【0051】
RTP送信部113では、タイムスタンプを付加したRTPパケットを送信するようにしたので、受信装置102において、送信装置101から送信されてくるRTPパケットの時間的関係(例えば、送信順序等)を把握することができる。このため、受信装置102において、RTPパケットの遅延ゆらぎ(ジッタ)等の影響を受けずに同期をとって、正確に画像データを再生することができる。
【0052】
ここで、RTPは、実時間(リアルタイム)によるRTPパケットの送信を保証するものではない。また、RTPパケットの送信における優先度、設定、管理などは、RTPが提供するトランスポートサービスの範疇ではない。
【0053】
このため、RTPパケットには、RTPパケットを送信したときから所定時間内に受信装置102に到達しない伝送遅延や、RTPパケットにエラー(誤り)が生じるパケット損失が生じ得る。
【0054】
受信装置102において、伝送遅延やパケット損失が生じたRTPパケットは破棄される。そして、受信装置102において、伝送遅延及びパケット損失のいずれも生じていないRTPパケットのみを対象として再生等の処理が行われる。
【0055】
なお、伝送遅延やパケット損失が生じたRTPパケットを破棄するようにしたのは、RTPパケットとしての画像データ(動画像)によるリアルタイム再生を実現するためである。
【0056】
ここで、RTPパケットによる伝送遅延やパケット損失は、ネットワーク103の輻輳により引き起こされることが多い。すなわち、例えば、送信装置101において、高品質な画像データのRTPパケットを送信しても、ネットワーク103の輻輳の程度によっては、RTPパケットに対して、無視できないほどの伝送遅延やパケット損失が生じ得る。
【0057】
この場合、受信装置102において、RTPパケットに伝送遅延やパケット損失が生じたことに起因して、多くのRTPパケットが破棄されてしまうので、高品質な画像データを再生できないことが生じ得る。
【0058】
そこで、後述するレート制御部115では、ネットワーク103の状況(例えば、輻輳の程度等)に応じて送信レートRを調整するようにして、RTPパケットに生じる伝送遅延やパケット損失を抑制するようにしている。これにより、受信装置102において、ネットワーク103の状況に拘らず、送信装置101からの画像データの画質等を維持したまま、画像データを再生することができるようになる。
【0059】
また、RTP送信部113は、RTPパケットの送信状況等に基づいて、RTPパケットの伝送状態を表すRTPパケット伝送情報を生成してRTCP部114に供給する。
【0060】
RTCP部114は、RTP送信部113からのRTPパケット伝送情報に基づいて、送信装置101と受信装置102との間のデータ伝送路(例えば、ネットワーク103)の状況を表す伝送品質情報を生成し、レート制御部115に供給する。
【0061】
ここで、伝送品質情報には、データ伝送路の状況を判断するために必要な情報が含まれる。
【0062】
すなわち、伝送品質情報は、例えば、往復伝送遅延(RTT(Round Trip Time))、伝送ジッタ、パケット損失率、S/N比(signal to noise ratio)、又はBER(Bit Error Rate)等の少なくとも1つを含む。なお、無線通信により伝送が行われる場合には、無線通信における電波強度も含めるようにしてもよい。
【0063】
また、RTCP部114は、RTCPに従って、ネットワーク103を介して受信装置102のRTCP部124と通信を行い、送信装置101と受信装置102との間のデータ伝送路における伝送品質情報を収集して、レート制御部115に供給する。
【0064】
なお、伝送品質情報は、RTCP部114と、後述する受信装置102のRTCP部124との間で、IETF RFC 3550に記載のRTCP Receiver Report(RR)パケットやRTCP Sender Report(SR)パケットを送受信することにより収集される。
【0065】
レート制御部115は、RTCP部114からの伝送品質情報に基づいて、送信装置101からRTPパケットを送信する際の送信レートRを調整し、符号化部111、バッファ制御部112、及びRTP送信部113に通知する。
【0066】
なお、レート制御部115による送信レートRの調整は、例えば、IETF RFC3448に記載の「TCP Friendly Rate Control(TFRC):Protocol Specification」、いわゆるTFRCに従って行われる。
【0067】
このように、レート制御部115は、ネットワーク103の状況に応じて送信レートRを調整するようにしているので、ネットワーク103の輻輳に起因する遅延を回避することが可能となる。
【0068】
制御部116は、例えば、操作部117からの操作信号に基づいて、符号化部111、バッファ制御部112、RTP送信部113、RTCP部114、及びレート制御部115の各部を制御する。
【0069】
操作部117は、ユーザにより操作される操作ボタン等であり、ユーザ操作に応じた操作信号を、制御部116に供給する。
【0070】
[受信装置102の構成例]
受信装置102は、RTP受信部121、受信バッファ122、復号部123、RTCP部124、制御部125、及び操作部126から構成される。
【0071】
RTP受信部121は、RTP送信部113からネットワーク103を介して送信されてくるRTPパケットを受信し、受信バッファ122に供給して保存させる。また、RTP受信部121は、RTPパケットの受信状況等に基づいて、RTPパケットの伝送状態を表すRTPパケット伝送情報を生成してRTCP部124に供給する。
【0072】
受信バッファ122は、RTP受信部121からのRTPパケットを一時的に保存する。なお、受信バッファ122は、オーバーフローしない程度に十分に大きな記憶容量を有するものとする。
【0073】
復号部123は、受信バッファ122からRTPパケットを読み出し、読み出したRTPパケットを組み立てることにより、復号対象とされる符号化データを生成する。そして、復号部123は、生成した符号化データに対して、符号化部111で行なわれる符号化処理に対応する復号処理を行い、その結果得られる画像データを図示せぬモニタ等に出力する。
【0074】
ここで、復号処理としては、例えば、ウェーブレット変換の逆変換による復号により伸張する復号処理等が採用される。
【0075】
RTCP部124は、RTP受信部121からのRTPパケット伝送情報に基づいて、伝送品質情報を生成し、ネットワーク103を介して送信装置101のRTCP部114に送信する。
【0076】
制御部125は、例えば、操作部126からの操作信号に基づいて、RTP受信部121、受信バッファ122、及び復号部123、RTCP部124の各部を制御する。
【0077】
操作部126は、ユーザにより操作される操作ボタン等であり、ユーザ操作に応じた操作信号を、制御部125に供給する。
【0078】
[保存可能バッファサイズの調整方法]
次に、図2及び図3を参照して、主にバッファ制御部112が行う処理について説明する。
【0079】
図2は、主に、バッファ制御部112が行う処理の一例を示している。
【0080】
バッファ制御部112は、レート制御部115からの送信レートRと、予め決められた送信バッファ時間Tに基づいて、次式(1)を用いて、保存可能バッファサイズBを変更する。
B(bit) = R(bps) × T(sec) ・・・(1)
【0081】
具体的には、例えば、現在の送信レートRをRnとし、現在の保存可能バッファサイズBをBn(=Rn×T)とした場合、レート制御部115は、送信レートRnを送信レートRn+1に調整したことに応じて、送信レートRn+1を、符号化部111、バッファ制御部112及びRTP送信部113に通知する。
【0082】
このとき、バッファ制御部112は、レート制御部115から通知された送信レートRn+1と、送信バッファ時間Tに基づいて、式(1)を用いて、保存可能バッファサイズBn+1(=Rn+1×T)を算出する。そして、バッファ制御部112は、送信バッファ112aの保存可能バッファサイズBnを保存可能バッファサイズBn+1に変更する。
【0083】
なお、符号化部111は、レート制御部115からの送信レートRと、バッファ制御部112からの残りバッファサイズbrに基づき、符号化パラメータとして、例えば、RTPパケットのデータ生成レートを調整し、調整後のデータ生成レートによる符号化処理を行うようにしている。
【0084】
これにより、符号化部111からのRTPパケットにより、送信バッファ112aのバッファ内データサイズbiが、保存可能バッファサイズBよりも大きくなることを防止するようにしている。送信バッファ112aにおいて、バッファ内データサイズbiが、保存可能バッファサイズB以下である限り、低遅延データ伝送は保証される。
【0085】
なお、符号化部111は、レート制御部115からの送信レートRと、バッファ制御部112からの残りバッファサイズbrに基づいて、データ生成レートを調整するようにした。しかしながら、符号化部111が、レート制御部115による送信レートRの調整が行われたことに対応して、迅速にデータ生成レートを調整できる場合には、レート制御部115からの送信レートRのみを用いて、データ生成レートを、レート制御部115からの送信レートRに調整するようにしてもよい。
【0086】
また、符号化部111が、レート制御部115からの送信レートRと、バッファ制御部112からの残りバッファサイズbrに基づいて、データ生成レートを調整するようにしたが、レート制御部115が、データ生成レートを算出して符号化部111に通知するようにしてもよい。
【0087】
すなわち、例えば、レート制御部115は、バッファ制御部112から残りバッファサイズbrを取得し、取得した残りバッファサイズbrと、算出した送信レートRに基づいて、データ生成レートを算出し、符号化部111に通知するようにしてもよい。
【0088】
ところで、送信レートRnが送信レートRn+1に調整されたことに応じて、保存可能バッファサイズBnが、バッファ内データサイズbiよりも小さな保存可能バッファサイズBn+1に調整されることが生じ得る。
【0089】
この場合、送信バッファ112a内のバッファ内データサイズbiが、保存可能バッファサイズB n+1よりも大きくなってしまい、低遅延データ伝送を行うことができなくなってしまう。
【0090】
そこで、第1の実施の形態では、バッファ内データサイズbiが、保存可能バッファサイズBn+1よりも大きくなってしまった場合には、バッファ内データサイズbiが、保存可能バッファサイズBn+1以下となるまで、送信バッファ112a内のRTPパケットを破棄するようにして、低遅延データ伝送を保証するようにしている。
【0091】
なお、符号化部111が、送信レートRに拘らず、固定のデータ生成レートで符号化処理を行う場合や、調整後の送信レートRn+1に応じて、迅速にデータ生成レートを調整できなかった場合等には、符号化部111から送信バッファ112aに対して多くのRTPパケットが出力されることが生じ得る。
【0092】
この場合についても同様に、送信バッファ112a内のバッファ内データサイズbiが、保存可能バッファサイズB n+1よりも大きくなってしまう。しかしながら、第1の実施の形態では、上述のように、バッファ内データサイズbiが、保存可能バッファサイズBn+1以下となるまで、送信バッファ112a内のRTPパケットは破棄されるので、やはり、低遅延データ伝送は保証される。
【0093】
[送信バッファ112a内のデータを破棄するときの一例]
次に、図3は、保存可能バッファサイズBnが、バッファ内データサイズbiよりも小さな保存可能バッファサイズBn+1に変更される場合には、送信バッファ112a内のRTPパケットを一部分だけ破棄するときの一例を示している。
【0094】
バッファ制御部112は、例えば、レート制御部115から、送信レートRn+1(=Rn/2)が供給されたことに応じて、式(1)に基づいて、図3Aに示される現在の保存可能バッファサイズBnを、図3Bに示される保存可能バッファサイズBn+1(=Bn/2)に変更する。
【0095】
この場合、送信バッファ112aのバッファ内データサイズbiは、変更後の保存可能バッファサイズBn+1よりも大きなものとなる。したがって、バッファ制御部112は、図3Bに示されるように、送信バッファ112a内のRTPパケットを一部分(斜線で示す)だけ破棄して、バッファ内データサイズbiが、保存可能バッファサイズBn+1以下となるように調整する。
【0096】
なお、送信バッファ112a内のRTPパケットを破棄する場合、任意のRTPパケットを破棄するようにしてもよいし、破棄する際の優先度を付加するようにして、優先度の高い順にRTPパケットを破棄するようにしてもよい。
【0097】
すなわち、例えば、ウェーブレット変換により得られる周波数成分毎の係数データを含むRTPパケットにおいて、高域成分の係数データを含むRTPパケットほど、高い優先度を付加するようにして、RTPパケットの破棄を行うようにしてもよい。優先度に応じてRTPパケットを破棄する方法については、図7を参照して詳述する。
【0098】
[送信装置101の動作説明]
次に、図4のフローチャートを参照して、送信装置101が行う送信処理(以下、第1の送信処理という)について説明する。
【0099】
ステップS1において、符号化部111は、外部からの画像データに対して、レート制御部115からの送信レートRと、バッファ制御部112からの残りバッファサイズbrに基づき算出したデータ生成レートで符号化処理を行う。
【0100】
ステップS2において、符号化部111は、符号化処理により得られる符号化データを、複数のRTPパケットにパケット化(変換)する。そして、符号化部111は、パケット化により得られる複数のRTPパケットを、バッファ制御部112に出力する。
【0101】
ステップS3において、バッファ制御部112は、符号化部111からのRTPパケットを、内蔵する送信バッファ112aに供給して保存させる。そして、バッファ制御部112は、レート制御部115から通知される送信レートRと同一の出力レートで、送信バッファ112aからRTP送信部113に対してRTPパケットを出力する。
【0102】
ステップS4において、バッファ制御部112は、送信バッファ112aにおける保存可能バッファサイズBが、バッファ内データサイズbi以上であるか否かを判定する。
【0103】
そして、ステップS4において、バッファ制御部112は、図3Bに示されるように、保存可能バッファサイズBがバッファ内データサイズbi以上ではない、すなわち、バッファ内データサイズbiが保存可能バッファサイズBよりも大きいと判定した場合、処理を、ステップS5に進める。
【0104】
ステップS5では、バッファ制御部112は、バッファ内データサイズbiが、保存可能バッファサイズB以下となるまで、送信バッファ112a内のRTPパケットを破棄して、処理をステップS1に戻し、それ以降同様の処理が行なわれる。
【0105】
なお、ステップS5では、RTPパケットに対して、破棄する際の優先度を付加するようにし、その優先度に応じてRTPパケットを破棄するようにしてもよい。なお、優先度に応じてRTPパケットを破棄する処理の詳細は、図7を参照して後述する。
【0106】
また、ステップS4において、バッファ制御部112は、図3Aに示されるように、保存可能バッファサイズBがバッファ内データサイズbi以上であると判定した場合、処理をステップS6に進める。
【0107】
ステップS6において、RTP送信部113は、RTPパケットの送信状況等に基づいて、バッファ制御部112からのRTPパケットを送信可能であるか否かを判定し、送信可能であると判定するのを待って、処理をステップS7に進める。
【0108】
ステップS7において、RTP送信部113は、RTPに従って、バッファ制御部112からのRTPパケットを、レート制御部115からの送信レートRで、ネットワーク103を介して受信装置102に送信する。
【0109】
ステップS8において、RTCP部114は、RTCPに従って、ネットワーク103を介して受信装置102のRTCP部124と通信を行い、送信装置101と受信装置102との間のデータ伝送路における伝送品質情報を収集して、レート制御部115に供給する。
【0110】
ステップS9において、符号化部111がデータ生成レートを、バッファ制御部112が保存可能バッファサイズBを、レート制御部115が送信レートRを調整する第1のレート制御処理が行なわれる。この第1のレート制御処理の詳細は、図5のフローチャートを参照して後述する。
【0111】
ステップS10において、制御部116は、操作部117からの操作信号等に基づいて、第1の送信処理を終了するか否かを判定し、第1の送信処理を終了しないと判定した場合、処理をステップS1に戻し、それ以降同様の処理が行なわれる。
【0112】
また、ステップS10において、制御部116は、第1の送信処理を終了すると判定した場合、第1の送信処理は終了される。
【0113】
以上説明したように、第1の送信処理によれば、ネットワーク102の状況に応じて、送信レートRを調整するようにしたので、ネットワーク102の状況に拘らず、RTPパケットの伝送遅延やパケット損失を抑止することができる。よって、RTPパケットの伝送遅延やパケット損失に起因して、画像データの画質が劣化する事態を抑止することが可能となる。
【0114】
また、第1の送信処理によれば、送信レートRの調整に応じて、保存可能バッファサイズBを変更するようにして、送信バッファ112aの送信バッファ時間を一定時間Tに維持するようにした。このため、ネットワーク102の状況に拘らず、画像データを低遅延で伝送することが可能となる。
【0115】
[第1のパラメータ設定処理の詳細]
次に、図5のフローチャートを参照して、図4のステップS9における第1のレート制御処理の詳細を説明する。
【0116】
ステップS31において、レート制御部115は、RTCP部114からの伝送品質情報を取得する。ステップS32において、レート制御部115は、RTCP部114からの伝送品質情報に基づいて、送信レートRを調整し、符号化部111、バッファ制御部112及びRTP送信部113に供給する。
【0117】
ステップS33において、バッファ制御部112は、レート制御部115からの送信レートRと、予め決められた送信バッファ時間Tに基づいて、内蔵する送信バッファ112aの保存可能バッファサイズBを算出して変更する。
【0118】
また、バッファ制御部112は、算出した保存可能バッファイサイズBから、送信バッファ112a内のバッファ内データサイズbiを差し引いて得られる残りバッファサイズbrを、符号化部111に供給する。
【0119】
ステップS34において、符号化部111は、レート制御部115からの送信レートRと、バッファ制御部112からの残りバッファサイズbrに基づいて、図4のステップS1で行う符号化処理におけるデータ生成レートを算出する。
【0120】
以上で第1のレート制御処理は終了され、図4のステップS9にリターンされ、ステップS10に進められる。
【0121】
[受信装置102の動作説明]
次に、図6のフローチャートを参照して、受信装置102が行う受信処理(以下、第1の受信処理という)について説明する。
【0122】
ステップS51において、RTP受信部121は、RTP送信部113からネットワーク103を介して送信されてくるRTPパケットを受信し、受信バッファ122に供給して保存させる。
【0123】
ステップS52において、復号部123は、受信バッファ122からRTPパケットを読み出し、読み出したRTPパケットを組み立てることにより、復号対象とされる符号化データを生成する。
【0124】
そして、ステップS53において、復号部123は、生成した符号化データに対して、符号化部111で行なわれる符号化処理に対応する復号処理を行い、その結果得られる画像データを図示せぬモニタ等に出力する。
【0125】
ステップS54において、RTCP部124は、RTCPに従って、ネットワーク103を介して受信装置102のRTCP部114と通信を行う。これにより、RTCP部114は、送信装置101と受信装置102との間のデータ伝送路における伝送品質情報を収集する。
【0126】
ステップS55において、制御部125は、操作部126からの操作信号等に基づいて、第1の受信処理を終了するか否かを判定し、第1の受信処理を終了しないと判定した場合、処理をステップS51に戻し、それ以降同様の処理が行なわれる。
【0127】
また、ステップS55において、制御部125は、第1の受信処理を終了すると判定した場合、第1の受信処理は終了される。
【0128】
以上説明したように、第1の受信処理によれば、送信装置101において送信レートRを調整するために用いる伝送品質情報をRTCPに従って送信装置101に供給するようにした。
【0129】
このため、送信装置101では、受信装置102からの伝送品質情報に基づいて、送信レートRを調整できるようになるので、ネットワーク103等のデータ伝送路の状況に応じて生じる遅延を無視できる程度に小さくすることが可能となる。
【0130】
[優先度に応じたRTPパケットの破棄]
次に、図7は、RTPパケットに優先度を付加するようにし、付加された優先度に応じた順序でRTPパケットを破棄する場合の一例を示している。
【0131】
なお、図7において、RTPパケットL1は、画像データの高域成分(の係数データ)を符号化してパケット化したものを表す。また、RTPパケットL2は、画像データの低域成分を符号化してパケット化したものを表す。さらに、RTPパケットL3は、画像データの中域成分(高域成分と低域成分との間)を符号化してパケット化したものを表す。
【0132】
バッファ制御部112は、例えば、レート制御部115から、送信レートRn+1(=2/3×Rn)が供給されたことに応じて、式(1)に基づいて、図7Aに示される現在の保存可能バッファサイズBnを、図7Bに示される保存可能バッファサイズBn+1(=2/3×Bn)に調整する。
【0133】
この場合、図7Bに示されるように、送信バッファ112aのバッファ内データサイズbiは、調整後の保存可能バッファサイズBn+1よりも大きなものとなる。したがって、バッファ制御部112は、バッファ内データサイズbiが保存可能バッファサイズBn+1以下となるまで、送信バッファ112a内のデータのうち、例えば、高域成分のRTPパケットを優先的に破棄する。
【0134】
具体的には、例えば、バッファ制御部112は、図7Bに示されるように、高域成分のRTPパケットL1を破棄して、バッファ内データサイズbiが、保存可能バッファサイズBn+1以下となるように調整する。
【0135】
ここで、高域成分のRTPパケットから優先的に破棄するようにしたのは、画像データにおいて、低域成分ほど、画像データを、大まかな画像(例えば、画像内に表示された人物を、人物として大まかに認識できる程度の画像)として成立させるために重要な要素であることによる。
【0136】
なお、高域成分は、画像データを、大まかな画像から詳細な画像(例えば、画像内に表示された人物を詳細に認識できる程度の画像)に高画質化するために必要とされる。また、RTPパケットの優先度としては、その他、例えば、IETF RFC 2474"Definition of the Differentiated Services Field(DS Field) in the IPv4 and IPv6 Headers"に記載のIPヘッダ内の「Tos(Type of Service)」や「DSCP(DiffServ Code Point)」、IEEE 802.1Qタグ内の「Cos(Class of Service)」に記載された優先度を用いるようにしてもよい。
【0137】
ところで、第1の実施の形態では、低遅延でRTPパケットを送信する送信装置101について説明したが、例えば、送信装置101と受信装置102の機能をそれぞれ有する送受信装置に対して、本開示により開示した技術を適用することができる。
【0138】
また、符号化部111及び復号部123それぞれの機能をいずれも有さない送受信装置として、例えば、NIC(Network Interface Card)や、無線LAN(Local Area Network)アクセスポイント等の無線中継装置を、低遅延データ伝送が可能な送受信装置として採用することができる。
【0139】
次に、第2の実施の形態として、図8乃至図12を参照して、低遅延データ伝送が可能なNICについて説明する。また、第3の実施の形態として、図13を参照して、低遅延データ伝送が可能な無線中継装置について説明することとする。
【0140】
<2.第2の実施の形態>
次に、図8は、パーソナルコンピュータ141(以下、PC141という)のカードスロットに挿入されて接続されるNIC142の一例を示している。
【0141】
なお、PC141は、主に、符号化部151及び復号部152から構成されており、NIC142を介して、パケットの送受信を行う。
【0142】
符号化部151は、図1の符号化部111と同様の処理を行う。すなわち、符号化部151は、NIC142からの送信レートR及び残りバッファサイズbrに基づいて、データ生成レートを算出する。
【0143】
そして、符号化部151は、外部から入力される画像データ(ビデオIN)に対して、算出したデータ生成レートで符号化処理を行い、その結果得られる符号化データに対してパケット化を行う。符号化部151は、パケット化により得られるパケットを、NIC142に出力する。
【0144】
復号部152は、図1の復号部123と同様の処理を行う。すなわち、復号部152は、NIC142からのパケットを組み立てて、符号化データを生成し、生成した符号化データに対して復号処理を行い、その結果得られる画像データを、図示せぬモニタ等に出力する。
【0145】
NIC142は、受信部161、受信バッファ162、レート制御部163、送信バッファ164aを内蔵するバッファ制御部164、変調部165、及び送信部166から構成される。
【0146】
受信部161は、外部から送信されてくるパケットを受信し、受信バッファ162に供給して保存させる。また、受信部161は、パケットの受信状況等に基づいて、伝送品質情報を生成してレート制御部163に供給する。
【0147】
受信バッファ162は、受信部161からのパケットを一時的に保存して、パーソナルコンピュータ141の復号部152に出力する。
【0148】
レート制御部163は、受信部161及び送信部166からの伝送品質情報に基づいて、NIC142の送信レートR及び変調方式を調整する。そして、レート制御部163は、調整した送信レートRを、バッファ制御部164及び送信部166に供給する。また、レート制御部163は、調整した変調方式を、変調部165に供給する。
【0149】
バッファ制御部164は、図1のバッファ制御部112と同様の処理を行う。すなわち、バッファ制御部164は、図9に示されるように、レート制御部163からの送信レートRと、予め決められたバッファ送信時間Tに基づいて、次式(1)を用いて、保存可能バッファサイズBを変更する。
【0150】
また、バッファ制御部164は、送信バッファ164aにおいて、保存可能バッファサイズBからバッファ内データサイズbiを減算して得られる残りバッファサイズbrを生成する。そして、バッファ制御部164は、図9に示されるように、生成した残りバッファサイズbrと、レート制御部163からの送信レートRとを、符号化部151に供給する。
【0151】
さらに、バッファ制御部164は、図9に示されるように、符号化部151からのパケットを、内蔵する送信バッファ164aに供給して保存させる。
【0152】
バッファ制御部164は、レート制御部163からの送信レートRで、送信部166からパケットを、変調部165に送信(出力)させる平滑化送信を行う。
【0153】
送信バッファ164aは、図1の送信バッファ112aと同様の処理を行う。すなわち、例えば、送信バッファ164aは、バッファ制御部164からの制御に従って、平滑化送信を行う。すなわち、送信バッファ164aは、パケットを出力する際の出力レートを、レート制御部163からの送信レートRに合わせるように平滑化する平滑化バッファとして機能する。
【0154】
送信バッファ164aは、バッファ制御部164により調整される保存可能バッファサイズBで、符号化部151からのパケットを保存し、FIFOで出力する。なお、送信バッファ164aは、十分に大きな記憶容量を有しており、調整され得る最大の保存可能バッファサイズB以上の記憶容量とされる。
【0155】
変調部165は、バッファ制御部164からのパケットを、レート制御部163から通知された変調方式で変調し、変調後のパケットを送信部166に供給する。
【0156】
送信部166は、変調部165からのパケットを、レート制御部163から通知される送信レートRで送信する。また、送信部166は、パケットの送信状況等に基づいて、伝送品質情報を生成し、レート制御部163に供給する。
【0157】
[NIC142の動作説明]
次に、図10のフローチャートを参照して、NIC142が行う送信処理(以下、第2の送信処理という)について説明する。
【0158】
ステップS71において、バッファ制御部164は、符号化部151からのパケットを取得する。
【0159】
ステップS72において、バッファ制御部164は、符号化部151からのパケットを、内蔵する送信バッファ164aに供給して保存させる。そして、バッファ制御部164は、レート制御部163から通知される送信レートRと同一の出力レートで、送信バッファ164aから変調部165に対してパケットを出力する。
【0160】
ステップS73において、バッファ制御部164は、送信バッファ164a内の保存可能バッファサイズBが、送信バッファ164a内のバッファ内データサイズbi以上であるか否かを判定する。
【0161】
そして、ステップS73において、バッファ制御部164は、保存可能バッファサイズBが、バッファ内データサイズbi以上ではないと判定した場合、処理を、ステップS74に進める。
【0162】
ステップS74では、バッファ制御部164は、バッファ内データサイズbiが、保存可能バッファサイズB以下となるように、送信バッファ164a内のパケットを破棄し、処理をステップS71に戻し、それ以降同様の処理が行なわれる。
【0163】
なお、ステップS74では、図7に示したように、パケットに対して、破棄する際の優先度を付加するようにし、その優先度に応じてパケットを破棄する順序を決めるようにしてもよい。
【0164】
また、ステップS73において、保存可能バッファサイズBがバッファ内データサイズbi以上であると判定された場合、処理はステップS75に進められる。
【0165】
ステップS75において、変調部165は、バッファ制御部164からのパケットを、レート制御部163から通知される変調方式で変調し、変調後のパケットを送信部166に供給する。
【0166】
ステップS76において、送信部166は、変調部165からのパケットを、レート制御部163から通知される送信レートRで送信する。
【0167】
ステップS77において、レート制御部163が送信レートRを、バッファ制御部164が保存可能バッファサイズBを調整する第2のレート制御処理が行なわれる。この第2のレート制御処理の詳細は、図11のフローチャートを参照して後述する。
【0168】
ステップS78において、NIC142の図示せぬ制御部は、パーソナルコンピュータ141からの制御信号等に基づいて、第2の送信処理を終了するか否かを判定し、第2の送信処理を終了しないと判定した場合、処理をステップS71に戻し、それ以降同様の処理が行なわれる。
【0169】
また、ステップS79において、NIC142の図示せぬ制御部は、第2の送信処理を終了すると判定した場合、第2の送信処理は終了される。
【0170】
以上説明したように、第2の送信処理によれば、パケットを送受信するためのデータ伝送路の状況に応じて、送信レートRを調整するようにしたので、データ伝送路の状況に拘らず、パケットの伝送遅延やパケット損失を抑止することができる。よって、パケットの伝送遅延やパケット損失に起因して、画像データの画質が劣化する事態を抑止することが可能となる。
【0171】
また、第2の送信処理によれば、送信レートRの調整に応じて、保存可能バッファサイズBを変更するようにして、送信バッファ164aの送信バッファ時間を一定時間Tに維持するようにした。このため、データ伝送路の状況に拘らず、画像データを低遅延で伝送することが可能となる。
【0172】
次に、図11のフローチャートを参照して、図10のステップS77における第2のレート制御処理の詳細を説明する。
【0173】
ステップS91において、レート制御部163は、受信部161及び送信部166から伝送品質情報を取得する。なお、受信部161は、パケットの受信状況等に基づいて伝送品質情報を生成してレート制御部163に供給し、送信部166は、パケットの送信状況等に基づいて伝送品質情報を生成してレート制御部163に供給する。
【0174】
ステップS92において、レート制御部163は、受信部161及び送信部166からの伝送品質情報に基づいて、送信レートR及び変調方式を調整する。そして、レート制御部163は、調整後の送信レートRを、バッファ制御部164及び送信部166に供給し、調整後の変調方式を、変調部165に供給する。
【0175】
ステップS93において、バッファ制御部164は、レート制御部163からの送信レートRと、予め決められた送信バッファ時間Tに基づいて、式(1)を用いて、送信バッファ164aの保存可能バッファサイズBを算出して調整する。
【0176】
ステップS94において、バッファ制御部164は、算出した保存可能バッファイサイズBから、送信バッファ164a内のデータのバッファ内データサイズbiを差し引いて得られる残りバッファサイズbrを、符号化部151に通知する。また、バッファ制御部164は、レート制御部163からの送信レートRを、符号化部151に通知する。これにより、符号化部151は、バッファ制御部164から通知される送信レートR及び残りバッファサイズbrに基づいて、データ生成レートを算出し、算出したデータ生成レートで符号化処理を行う。
【0177】
以上で第2のレート制御処理は終了され、図10のステップS77にリターンされ、ステップS78に進められる。
【0178】
次に、図12のフローチャートを参照して、NIC142が行う受信処理(以下、第2の受信処理という)について説明する。
【0179】
ステップS111において、受信部161は、外部から送信されてくるパケットを受信する。ステップS112において、受信部161は、受信したパケットを、受信バッファ162に供給して保存させる。
【0180】
ステップS113において、受信バッファ162は、受信部161からのパケットを一時的に保存して、パーソナルコンピュータ141の復号部152に出力する。
【0181】
ステップS114において、NIC142の図示せぬ制御部は、パーソナルコンピュータ141からの制御信号等に基づいて、第2の受信処理を終了するか否かを判定し、第2の受信処理を終了しないと判定した場合、処理をステップS111に戻し、それ以降同様の処理が行なわれる。
【0182】
また、ステップS114において、NIC142の図示せぬ制御部は、第2の受信処理を終了すると判定した場合、第2の受信処理は終了される。
【0183】
<3.第3の実施の形態>
次に、図13は、低遅延データ伝送が可能な無線中継装置の一例を示している。
【0184】
この無線中継装置181は、例えば、ネットワークとパーソナルコンピュータとの間で送受信される画像データ等を中継する無線LANアクセスポイントである。
【0185】
無線中継装置181は、宛先解析部191、通常伝送デバイス1921乃至192N、及び低遅延伝送デバイス193から構成される。
【0186】
宛先解析部191は、通常伝送デバイス1921乃至192N、及び低遅延伝送デバイス193それぞれからのパケットに含まれるヘッダに記載された宛先アドレス(例えば、MACアドレス)の解析を行う。
【0187】
そして、宛先解析部191は、宛先アドレスの解析により得られるパケットの宛先(を表す情報)を、パケットの供給先(通常伝送デバイス1921乃至192N、又は低遅延伝送デバイス193のいずれか)に返送する。
【0188】
通常伝送デバイス1921は、パケットを受信し、宛先解析部181に供給する。また、通常伝送デバイス1921は、宛先解析部181からの宛先に対して、受信したパケットを送信する。なお、通常伝送デバイス1922乃至192Nは、通常伝送デバイス1921と同様に構成されるため、それらの説明は省略する。
【0189】
低遅延伝送デバイス193は、パケットを受信し、宛先解析部181に供給する。また、低遅延伝送デバイス193は、宛先解析部181からの宛先に対して、受信したパケットを送信する。なお、低遅延伝送デバイス193は、図8のNIC142と同様に構成されているため、宛先解析部181からの宛先に対して、低遅延でパケットを送信することができる。
【0190】
<4.第4の実施の形態>
[送受信システム200の構成例]
図14は、第4の実施の形態である送受信システム200の構成例を示している。
【0191】
なお、この送受信システム200は、第1の実施の形態である送受信システム100と同様に構成されている部分については、同一の符号を付すようにしたので、それらの部分についての説明は、適宜省略する。
【0192】
すなわち、この送受信システム200は、図1の送信装置101に代えて送信装置201が設けられている他は、第1の実施の形態である送受信システム100と同様に構成される。
【0193】
そして、送信装置201は、バッファ制御部112、及びレート制御部115に代えて、送信バッファ211aを内蔵するバッファ制御部211、及びレート制御部212が設けられている他は、図1の送信装置101と同様に構成される。
【0194】
ここで、この送受信システム200は、図15Aに示されるように、送信バッファ211aにおいて、保存可能バッファサイズBnよりも小さな追加可能バッファサイズBsn以下のデータサイズで、送信バッファ211aにデータ(RTPパケット)を保存させるようにするものである。
【0195】
そして、送信レートRnから送信レートRn+1に調整されたことに応じて、図15Bに示されるように、保存可能バッファサイズBnを、追加可能バッファサイズBsn以上の保存可能バッファサイズBn+1、すなわち、バッファ内データサイズbi以上の保存可能バッファサイズBn+1に変更するものである。
【0196】
第4の実施の形態では、このようにして、保存可能バッファサイズBn+1が、バッファ内データサイズbiよりも小さいサイズとなる事態を防止して、送信バッファ211a内のデータを破棄することなく、低遅延データ伝送を実現するものである。
【0197】
すなわち、第4の実施の形態では、送信バッファ211a内のデータが破棄されることを防止できる点が、第1の実施の形態とは大きく異なる。
【0198】
なお、第4の実施の形態では、保存可能バッファサイズBn+1を、追加可能バッファサイズBsn以上とするために、送信レートRを調整する際に、一定の制約が課せられることとなる。
【0199】
図14において、バッファ制御部211は、保存可能バッファサイズBではなく、追加可能バッファサイズBsを超えない範囲内で、符号化部111からのRTPパケットを送信バッファ211aに保存して、FIFOで出力させる。
【0200】
また、バッファ制御部211は、レート制御部212からの送信レートRに基づいて、保存可能バッファサイズB及び追加可能バッファサイズBsを変更する。なお、バッファ制御部211においては、送信バッファ211a内のRTPパケットを破棄することなく、送信バッファ211a内にRTPパケットを保存したときから送信バッファ時間T以内に出力できるように、保存可能バッファサイズB及び追加可能バッファサイズBsが変更される。
【0201】
送信バッファ211aは、保存可能バッファサイズBよりも小さな追加可能バッファサイズBsの範囲内で、符号化部111から出力されるRTPパケットを保存し、FIFOでRTP送信部113に出力する。
【0202】
レート制御部212は、RTCP部114からの伝送品質情報に基づき、一定の制約下で、送信レートRを調整し、符号化部111、RTP送信部113及びバッファ制御部211に通知する。
【0203】
ここで、例えば、レート制御部212において、送信レートRを変更する際の制約として、送信レートRnを送信レートRn+1に変更したときのレート変更比率L(=Rn+1/Rn)が、予め決められたレート変更比率下限値Lmin以上であるという制約が課される。
【0204】
また、例えば、レート制御部212において、送信レートRを調整(変更)する際の制約として、送信レートRを低くするように変更したときからレート変更最小間隔Ti(sec)だけ、送信レートRの変更が制限(禁止)される。
【0205】
[バッファ制御部211及びレート制御部212の詳細]
次に、図16は、バッファ制御部211及びレート制御部212が行う処理の詳細の一例を示している。
【0206】
バッファ制御部211は、レート制御部212からの送信レートRと、予め決められた送信バッファ時間Tに基づいて、上述の式(1)を用いて保存可能バッファサイズBを変更する。
【0207】
また、バッファ制御部211は、送信バッファ閾値時間を、予め決められた一定時間Ts(以下、送信バッファ閾値時間Tsともいう)に維持するように、送信バッファ閾値時間Tsと、レート制御部212からの送信レートRに応じて、次式(2)を用いて、追加可能バッファサイズBsを変更する。
Bs(bit) = R(bps) × Ts(sec) ・・・(2)
【0208】
ここで、送信バッファ閾値時間Tsとは、追加可能バッファサイズBs以下のバッファ容量を満たす範囲内で、データが送信バッファ211aに保存されたときから出力されるまでに要する最大時間を表す。なお、送信バッファ閾値時間Tsは、送信バッファ時間Tよりも小さな値とされる。
【0209】
レート制御部212は、RTCP部114からの伝送品質情報に基づいて、一定の制約下で、送信レートRを調整する。
【0210】
すなわち、例えば、レート制御部212は、送信レートRnを送信レートRn+1に変更(調整)したときのレート変更比率L(=Rn+1/Rn)が、レート変更比率下限値Lmin以上となるという変更条件を満たす範囲内で、送信レートRn+1を決定する。ここで、レート変更比率下限値Lminは、送信バッファ時間T及び送信バッファ閾値時間Tsに基づいて、次式(3)により決定される。
Ts ≦ T×Lmin ・・・(3)
【0211】
具体的には、例えば、レート制御部212は、図1のレート制御部115と同様にして、RTCP部114からの伝送品質情報に基づいて、送信レートRcを算出する。そして、レート制御部212は、送信レートRcが、上述の変更条件を満たす場合には、次式(4)に示されるように、送信レートRcをそのまま、変更後の送信レートRn+1に決定する。
Rc/Rn ≧ Lminの場合Rn+1 = Rc ・・・(4)
【0212】
この場合、レート変更比率Lはレート変更比率下限値Lmin以上となり、変更条件を満たす。
【0213】
また、レート制御部212は、上述の変更条件を満たさない場合には、次式(5)に示されるように、送信レートRcを、変更条件を満たすように修正した上で、変更後の送信レートRn+1に決定する。
Rc/Rn < Lminの場合Rn+1 = Lmin×Rn ・・・(5)
【0214】
この場合、レート変更比率Lはレート変更比率下限値Lminとなり、変更条件を満たす。
【0215】
なお、送信レートRが低くなるように調整された場合、図15Bに示されるように、バッファ内データサイズbiが追加可能バッファサイズBsn+1よりも大きくなってしまうことが生じ得る。したがって、この場合、レート制御部212において、バッファ内データサイズbiが追加可能バッファサイズBsn+1以下となるまで、送信レートRの調整が制限される。
【0216】
具体的には、例えば、レート制御部212は、送信レートRを低くするように調整した場合、送信レートRを調整したときから、次式(6)に示されるレート変更最小間隔Ti(sec)を経過するまでの間、送信レートRの調整を制限(禁止)する。
Ti = T - Ts ・・・(6)
【0217】
ここで、レート変更最小間隔Tiは、送信レートRnが送信レートRn+1に変更されたときから、バッファ内データサイズbiが追加可能バッファサイズBsn+1以下となるまでに要する最大時間を表す。
【0218】
なお、送信レートRが高くなるように調整された場合、バッファ内データサイズbiが追加可能バッファサイズBsn+1よりも大きくなることはないので、レート制御部212において、送信レートRの調整を制限する必要はない。
【0219】
なお、第1の実施の形態では、符号化部111は、バッファ内データサイズbiが保存可能バッファサイズBよりも大きくなることを防止するように符号化パラメータを調整するようにした。この点について、第4の実施の形態では、符号化部111は、バッファ内データサイズbiが追加可能バッファサイズBsよりも大きくなることを防止するように符号化パラメータを調整する点が異なる。また、符号化部111は、上述の図15Bにも示されるように、バッファ制御部211からの残りバッファサイズbr等に基づいて、バッファ内データサイズbiが追加可能バッファサイズBs以下となるまでは、RTPパケットをバッファ制御部211(送信バッファ211a)に出力しないものとする。
【0220】
[送信装置201の動作説明]
次に、図17のフローチャートを参照して、送信装置201が行う送信処理(以下、第3の送信処理という)について説明する。
【0221】
ステップS131において、レート制御部212は、ユーザの設定操作等に応じて、送信バッファ時間T及び送信バッファ閾値時間Tsを設定する。また、レート制御部212は、設定された送信バッファ時間T及び送信バッファ閾値時間Tsに基づいて、式(3)を用いて、レート変更比率下限値Lminを設定する。
【0222】
さらに、レート制御部212は、設定された送信バッファ時間T及び送信バッファ閾値時間Tsに基づいて、式(6)を用いて、レート変更最小間隔Tiを設定する。
【0223】
ステップS132において、符号化部111は、外部からの画像データに対して、レート制御部212からの送信レートRに応じて算出したデータ生成レートで符号化処理を行う。
【0224】
ステップS133において、符号化部111は、例えば、符号化処理により得られる符号化データを、複数のRTPパケットにパケット化(変換)するパケット化を行い、その結果得られる複数のRTPパケットを、バッファ制御部211に出力する。
【0225】
ステップS134において、バッファ制御部211は、符号化部111からのRTPパケットを、内蔵する送信バッファ211aに供給して保存させる。そして、バッファ制御部211は、レート制御部212から通知される送信レートRと同一の出力レートで、送信バッファ211aからRTP送信部113に対してRTPパケットをFIFOで出力する。
【0226】
ステップS135において、RTP送信部113は、RTPパケットの送信状況等に基づいて、バッファ制御部112からのRTPパケットを送信可能であるか否かを判定し、送信可能であると判定するのを待って、処理をステップS136に進める。
【0227】
ステップS136において、RTP送信部113は、RTPに従って、バッファ制御部112からのRTPパケットを、レート制御部212により通知される送信レートRで、ネットワーク103を介して受信装置102に送信する。
【0228】
ステップS137において、RTCP部114は、RTCPに従って、ネットワーク103を介して受信装置102のRTCP部124と通信を行い、送信装置101と受信装置102との間のデータ伝送路における伝送品質情報を収集して、レート制御部212に供給する。
【0229】
ステップS138において、レート制御部212は、前回の送信レートRの変更からレート変更最小間隔Ti以上経過したか否かを判定し、レート変更最小間隔Ti以上経過していないと判定した場合、処理をステップS135に戻し、それ以降同様の処理を繰り返す。
【0230】
また、ステップS138において、レート制御部212は、前回の送信レートRの変更からレート変更最小間隔Ti以上経過したと判定した場合、処理をステップS139に進める。
【0231】
なお、前回の送信レートRの変更により、送信レートが高く設定された場合には、レート変更最小間隔Ti以上経過するのを待つ必要がないので、ステップS138の処理をスキップするようにしてもよい。
【0232】
ステップS139において、符号化部111がデータ生成レートを、バッファ制御部211が保存可能バッファサイズB及び追加可能バッファサイズBsを、レート制御部212が送信レートRを調整する第3のレート制御処理が行なわれる。この第3のレート制御処理の詳細は、図18のフローチャートを参照して詳述する。
【0233】
ステップS140において、制御部116は、操作部117からの操作信号等に基づいて、第3の送信処理を終了するか否かを判定し、第3の送信処理を終了しないと判定した場合、処理をステップS132に戻し、それ以降同様の処理が行なわれる。
【0234】
また、ステップS140において、制御部116は、操作部117からの操作信号等に基づいて、第3の送信処理を終了すると判定した場合、第3の送信処理は終了される。
【0235】
以上説明したように、第3の送信処理によれば、送信装置201において、送信レートRが低くなるように変更された場合でも、送信バッファ211a内のデータを破棄することなく、低遅延データ伝送を行えるようにした。
【0236】
このため、送信装置201により送信される画像データにおいて、送信バッファ211a内のデータが破棄されることにより、破棄されたデータ分だけ画質が劣化する事態を防止することが可能となる。
【0237】
したがって、受信装置102においては、例えば、送信装置201からのRTPパケットを低遅延で受信できるとともに、受信したRTPパケットを組み立てて復号することにより得られる、比較的、高画質な画像データを再生できるようになる。
【0238】
[第3のレート制御処理の詳細]
次に、図18のフローチャートを参照して、図17のステップS139における第3のレート制御処理の詳細について説明する。
【0239】
ステップS161において、レート制御部212は、RTCP部114からの伝送品質情報を取得する。なお、RTCP部114は、RTCPに従ってネットワーク103を介して、受信装置102のRTCP部124と通信を行い、送信装置101と受信装置102との間のデータ伝送路における伝送品質情報を収集して、レート制御部212に供給する。
【0240】
ステップS162において、レート制御部212は、RTCP部114からの伝送品質情報に基づいて、送信レートRcを算出する。
【0241】
ステップS163において、レート制御部212は、変更前の送信レートRnと、算出した送信レートRcに基づいて、レート変更比率L(=Rc/Rn)がレート変更比率下限値Lmin以上であるという条件を満たしているか否かを判定する。
【0242】
ステップS163において、レート制御部212は、レート変更比率Lがレート変更比率下限値Lmin以上であると判定した場合、処理をステップS164に進め、変更後の送信レートRn+1を送信レートRcとし、符号化部111、RTP送信部113、及びバッファ制御部211に供給する。
【0243】
また、ステップS163において、レート制御部212は、レート変更比率Lがレート変更比率下限値Lmin以上ではない場合、処理をステップS165に進め、送信レートRn+1を送信レートLmin×Rnとし、符号化部111、RTP送信部113、及びバッファ制御部211に供給する。
【0244】
ステップS166において、バッファ制御部211は、レート制御部212からの送信レートRと、送信バッファ時間Tに基づいて、式(1)を用いて、送信バッファ211aの保存可能バッファサイズBを算出して変更する。また、バッファ制御部211は、レート制御部212からの送信レートRと、送信バッファ閾値時間Tsに基づいて、式(2)を用いて、追加可能バッファサイズBsを算出して変更する。
【0245】
さらに、バッファ制御部211は、算出した保存可能バッファイサイズBから、送信バッファ211a内のデータのバッファ内データサイズbiを差し引いて得られる残りバッファサイズbrを、符号化部111に供給する。
【0246】
ステップS167において、符号化部111は、レート制御部212からの送信レートRと、バッファ制御部211からの残りバッファサイズbrに基づいて、データ生成レートを算出する。
【0247】
以上で第3のレート制御処理は終了され、図17のステップS139にリターンされ、ステップS140に進められる。
【0248】
ところで、上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、又は、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のコンピュータなどに、プログラム記録媒体からインストールされる。
【0249】
[コンピュータの構成例]
図19は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【0250】
CPU(Central Processing Unit)301は、ROM(Read Only Memory)302、又は記憶部308に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)303には、CPU301が実行するプログラムやデータ等が適宜記憶される。これらのCPU301、ROM302、及びRAM303は、バス304により相互に接続されている。
【0251】
CPU301にはまた、バス304を介して入出力インタフェース305が接続されている。入出力インタフェース305には、キーボード、マウス、マイクロホン等よりなる入力部306、ディスプレイ、スピーカ等よりなる出力部307が接続されている。CPU301は、入力部306から入力される指令に対応して各種の処理を実行する。そして、CPU301は、処理の結果を出力部307に出力する。
【0252】
入出力インタフェース305に接続されている記憶部308は、例えばハードディスクからなり、CPU301が実行するプログラムや各種のデータを記憶する。通信部309は、インターネットやローカルエリアネットワーク等のネットワークを介して外部の装置と通信する。
【0253】
また、通信部309を介してプログラムを取得し、記憶部308に記憶してもよい。
【0254】
入出力インタフェース305に接続されているドライブ310は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等のリムーバブルメディア311が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータ等を取得する。取得されたプログラムやデータは、必要に応じて記憶部308に転送され、記憶される。
【0255】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを記録(記憶)する記録媒体は、図19に示すように、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini-Disc)を含む)、もしくは半導体メモリ等よりなるパッケージメディアであるリムーバブルメディア311、又は、プログラムが一時的もしくは永続的に格納されるROM302や、記憶部308を構成するハードディスク等により構成される。記録媒体へのプログラムの記録は、必要に応じてルータ、モデム等のインタフェースである通信部309を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線又は無線の通信媒体を利用して行われる。
【0256】
なお、本明細書において、上述した一連の処理を記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0257】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【0258】
なお、本開示の実施の形態は、上述した第1乃至第4の実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【0259】
100 送受信システム, 101 送信装置, 102 受信装置, 103 ネットワーク, 111 符号化部, 112 バッファ制御部, 112a 送信バッファ, 113 RTP送信部, 114 RTCP部, 115 レート制御部, 116 制御部, 117 操作部, 121 RTP受信部, 122 受信バッファ, 123 復号部, 124 RTCP部, 125 制御部, 126 操作部, 141 PC, 142 NIC, 151 符号化部, 152 復号部, 161 受信部, 162 受信バッファ, 163 レート制御部, 164 バッファ制御部, 164a 送信バッファ, 165 変調部, 166 送信部, 181 無線中継装置, 191 宛先解析部, 1921乃至192N 通常伝送デバイス, 193 低遅延伝送デバイス, 200 送受信システム, 201 送信装置, 211 バッファ制御部, 211a 送信バッファ, 212 レート制御部

【特許請求の範囲】
【請求項1】
データを送信する際の送信レートを調整するレート調整部と、
前記送信レートに基づいて、前記データを一時的に保存するためのバッファのサイズを変更する変更部と、
前記バッファに、前記バッファのサイズよりも小さい追加可能サイズ以下の前記データを一時的に保存させ、送信部に出力させるバッファ制御部と、
前記バッファから出力される前記データを送信する前記送信部と
を含む送信装置。
【請求項2】
前記変更部は、予め決められた送信バッファ時間にも基づいて、前記バッファのサイズを変更し、
前記バッファ制御部は、前記バッファに保存したときから前記送信バッファ時間以内に、前記データを前記送信部に出力させる
請求項1に記載の送信装置。
【請求項3】
前記レート調整部は、調整前の送信レートと、調整後の送信レートとの比を表すレート調整比率が、予め決められたレート調整比率下限値以上となるように、前記送信レートを調整する
請求項1又は2に記載の送信装置。
【請求項4】
前記レート調整部は、前記送信レートを調整したときから、予め決められた制限時間が経過するまで、新たな前記送信レートの調整を制限する
請求項1乃至3に記載の送信装置。
【請求項5】
前記レート調整部は、前記送信レートを調整したときから、前記バッファに保存済みの前記データのデータサイズが、前記追加可能サイズ以下となるまでに要する最大時間である前記制限時間が経過するまで、新たな前記送信レートの調整を制限する
請求項4に記載の送信装置。
【請求項6】
前記送信レートに基づいて、前記データを符号化して得られる符号化データを生成する際に用いる符号化パラメータを調整するパラメータ調整部と、
前記データに対して、前記符号化パラメータに基づく符号化処理を行う符号化部と
をさらに含み、
前記バッファ制御部は、前記バッファに、前記追加可能サイズ以下の前記符号化データを一時的に保存させ、前記送信部に出力させる
請求項1乃至5に記載の送信装置。
【請求項7】
前記パラメータ調整部は、前記送信レートに基づいて、前記符号化パラメータとして、所定の時間における前記符号化データの生成量を表すデータ生成レートを調整する
請求項6に記載の送信装置。
【請求項8】
前記レート調整部は、前記データを送信する際に用いるデータ伝送路の状況を表す伝送品質情報に基づいて、前記送信レートを調整する
請求項1乃至7に記載の送信装置。
【請求項9】
前記レート調整部は、前記データの損失率、往復伝送遅延、ジッタ、S/N比(signal to noise ratio)、又はBER(Bit Error Rate)の少なくとも1つを含む前記伝送品質情報に基づいて、前記送信レートを調整する
請求項8に記載の送信装置。
【請求項10】
データを送信する送信装置の送信方法において、
データを送信する際の送信レートを調整するレート調整ステップと、
前記送信レートに基づいて、前記データを一時的に保存するためのバッファのサイズを変更する変更ステップと、
前記バッファに、前記バッファのサイズよりも小さい追加可能サイズ以下の前記データを一時的に保存させて出力させるバッファ制御ステップと、
前記バッファから出力される前記データを送信する送信ステップと
を含む送信方法。
【請求項11】
コンピュータを、
データを送信する際の送信レートを調整するレート調整部と、
前記送信レートに基づいて、前記データを一時的に保存するためのバッファのサイズを変更する変更部と、
前記バッファに、前記バッファのサイズよりも小さい追加可能サイズ以下の前記データを一時的に保存させ、送信部に出力させるバッファ制御部と、
前記バッファから出力される前記データを送信する前記送信部と
して機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2012−142701(P2012−142701A)
【公開日】平成24年7月26日(2012.7.26)
【国際特許分類】
【出願番号】特願2010−292618(P2010−292618)
【出願日】平成22年12月28日(2010.12.28)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】