説明

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

【課題】 複数の異なるフレームレートで動画データを送信している場合のフレームレートの変更方法によっては、フレームレートが低くなりすぎてしまう恐れがあった。
【解決手段】 送信装置100の負荷取得部105は、送信装置100の負荷を取得し(S201)、フレームレート制御部103は、第1のフレームレートと、第1のフレームレートよりも低い第2のフレームレートとで動画データを送信中に、第1及び第2のフレームレートを下げる場合、第1のフレームレートと第1のフレームレートを下げた後の第1の変更フレームレートとの差が、第2のフレームレートと第2のフレームレートを下げた後の第2の変更フレームレートとの差よりも大きくなるように、負荷状態に応じて第1及び第2のフレームレートを下げる(S206)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動画データの送信方法に関する。
【背景技術】
【0002】
近年、ネットワークカメラやビデオ会議システムなど、ネットワークを介して動画データをリアルタイムに送受信するストリーミング技術が実用化されている。
特許文献1には、動画データを送信する際に、ネットワークの伝送速度に応じてフレーム間引きをすることが記載されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−309847号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、複数の異なるフレームレートで動画データを送信している場合のフレームレートの変更方法によっては、特定の動画データの品質が低くなりすぎてしまう恐れがあった。
【0005】
例えば、動画データを、第1のクライアントへ1秒間に60フレームのフレームレート(60fps)で送信し、第2のクライアントへ10fpsで送信しているときに、送信装置の処理負荷が閾値を超えた場合について説明する。この場合、各クライアントへ送信する動画データのフレームレートをそれぞれ半分にすると、第2のクライアントへ送信される動画データのフレームレートが5fpsとなってしまい、動画の内容がわからなくなってしまう恐れがあった。
【0006】
また、例えば、あるクライアントへ第1の動画データを60fps、第2の動画データを10fpsで送信しているときに、送信装置の処理負荷に応じて、フレームレートをそれぞれ半分にすると、第2の動画データのフレームレートが低くなりすぎてしまった。
【0007】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、複数の異なるフレームレートで動画データを送信している場合のフレームレートの変更によって、特定の動画データの品質が低くなりすぎる可能性を低減することである。
【課題を解決するための手段】
【0008】
上記の問題点を解決するために、本発明の送信装置は、例えば以下の構成を有する。すなわち、複数の異なるフレームレートで動画データを送信する送信装置であって、前記送信装置の状態情報を取得する取得手段と、第1のフレームレートと、前記第1のフレームレートよりも低い第2のフレームレートとで動画データを送信中に、前記第1及び第2のフレームレートを下げる場合、前記第1のフレームレートと第1のフレームレートを下げた後の第1の変更フレームレートとの割合が、前記第2のフレームレートと第2のフレームレートを下げた後の第2の変更フレームレートとの割合よりも大きくなるように、前記状態情報に応じて前記第1及び第2のフレームレートを下げる変更手段とを有する。
【発明の効果】
【0009】
本発明によれば、複数の異なるフレームレートで動画データを送信している場合のフレームレートの変更によって、特定の動画データの品質が低くなりすぎてしまう可能性を低減できる。
【図面の簡単な説明】
【0010】
【図1】送信装置100の機能構成例を示すブロック図
【図2】送信装置100の処理を説明するためのフローチャート
【図3】実施形態のシステム構成例を示す図
【図4】CPU負荷とフレームレートの関係を説明するための図
【図5】送信装置500の機能構成例を示すブロック図
【図6】送信装置500の処理を説明するためのフローチャート
【発明を実施するための形態】
【0011】
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。尚、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【0012】
<第1の実施形態>
図1は、本発明の実施形態に係る送信装置100の機能構成例を示すブロック図である。なお、本形態の送信装置100は、複数の異なるフレームレートで動画データを送信する送信装置である。
図1に示すように、本実施形態の送信装置100は、動画符号化部102、フレームレート制御部103、パケット生成部104、負荷取得部105、バッファ106、通信インタフェース107を備える。また、送信装置100は、映像を入力する映像入力装置101、及び伝送路108に接続される。
映像入力装置101は、受信装置へ送信すべき動画データを入力する装置である。映像入力装置101は、例えば、ビデオカメラやWebカメラなどである。ただし、映像入力装置101が送信装置100と一体となっていても良い。
つまり、送信装置100は、パーソナルコンピュータ、ワークステーション、ノートブックPC、コンピュータを内蔵した各種家電装置、ゲーム機、携帯電話、デジタルビデオカメラ、デジタルカメラなどの機器、或いはこれらの組み合わせにより実現可能である。
【0013】
伝送路108は、各種ネットワークに代表される伝送路であり、本実施形態においては、動画データを始めとする各種パケットを送受信するためのネットワークである。送受信されるデータはバッファ106において一時的に記憶される。
【0014】
動画符号化部102は、上述の映像入力装置101から入力された動画データをMotion−JPEG方式により圧縮符号化する。動画データは、そのまま送信するにはデータ量が多いため、送信前に圧縮符号化される。なお、動画符号化部の符号化方式は、Motion−JPEG方式に限らない。動画符号化部102は、圧縮符号化した動画データをフレーム単位でパケット生成部104へ入力する。
パケット生成部104は、動画符号化部102から入力された動画データをパケット化し、バッファ106へ記憶させる。本実施形態では、動画データの符号化方式としてMotion−JPEGを用い、符号化動画データの転送プロトコルとしてRTP(Real−time Transport Protocol)を用いる。従ってパケット生成部104は、Motion−JPEGで符号化された動画データのRTPペイロードフォーマットを規定しているIETF RFC2435に従って符号化動画データをパケット化する。
【0015】
フレームレート制御部103は、動画データのフレームレートを制御すると共に、制御後のフレームレートに基づいてバッファ106内の動画パケットを読み出して受信装置へ送信する。フレームレート制御部103によるフレームレートの制御方法については後述する。
【0016】
次に、本実施形態の送信装置100によるフレームレート制御処理の詳細について、図2を用いて説明する。図2は、本実施形態に係る送信装置100におけるフレームレート制御処理を説明するためのフローチャートである。なお、本形態の送信装置100は、複数の異なるフレームレートで動画データを送信する送信装置である。また、本形態の送信装置100は、図2の処理を実行するためのプログラムをCPUが読み出して実行することにより、図2の処理を実現する。ただし、図2の処理の少なくとも一部を専用のハードウェアで行うようにすることも可能である。また、本形態の送信装置100は、受信装置に対して動画データの送信を開始するタイミングで図2の処理を開始する。
【0017】
本形態の送信装置100は、図3に示すように、複数の受信装置(301〜303)へ動画データを送信する。図3に示すように、送信装置100は、受信装置301に対して30fps(frame per sec)、受信装置302に対して15fps、受信装置303に対して10fpsで動画データを送信する。本形態の送信装置100は、異なる動画データを異なるフレームレートで複数の受信装置へ送信する。ただし、各受信装置へ送信される動画データは、映像入力装置101からの同一の入力内容に基づく動画データであっても良い。
【0018】
負荷取得部105は、送信装置100の現在の処理負荷を取得する(S201)。負荷取得部105は、例えば、複数の動画データの送信処理を含む複数の処理を行う処理部(CPU)の処理負荷を状態情報として取得する。
【0019】
ただし、この例に限らず、負荷取得部105は、映像入力装置101からの動画データの入力時刻と当該動画データのパケットの送信時刻との時間差や、動画データの入力時刻と動画パケットの生成時刻との時間差を現在の処理負荷として取得することも可能である。また、負荷取得部105は、動画パケットの生成時刻と送信時刻の時間差を現在の処理負荷として取得することも可能である。これらの時間差は、送信装置100による処理時間に対応する。本形態では、取得された時間差が大きいほど、現在の処理負荷が大きいと判定される。
【0020】
なお、送信装置100は、CPUの負荷や時間差の情報を組み合わせて、現在の処理負荷を判定することも可能である。また、送信装置100のCPUの負荷は、OS(Operating System)などから取得することができる。また、送信装置100の処理負荷に限らず、バッファ106に記憶された送信待ちの動画データのデータ量や、フレーム数などを取得するようにしても良い。すなわち、S201(取得手順)において、送信装置100の負荷取得部105は、送信装置100の状態情報(処理負荷の情報や、バッファ106の状況など)を取得する。なお、以下の説明では、状態情報として処理負荷を取得する例を中心に説明する。
【0021】
本形態の負荷取得部105は、現在の処理負荷を定期的に取得する。ただし、処理負荷を、例えば、エラーパケットの増加や、新規の動画データの送信開始や、既存の動画データの送信終了に応じて取得するようにしても良い。
【0022】
フレームレート制御部103は、各受信装置に送信している動画データのフレームレートの値を取得する(S202)。第1及び第2及び第3の受信装置へ動画データを送信している場合、フレームレート制御部103は、まず、第1の受信装置へ送信している動画データの初期フレームレートと現在のフレームレートを取得する。初期フレームレートは、RTPパケット(動画パケット)送信前に、送信装置と受信装置との間で、RTSP、SDP、SIP、SOAP等の制御用プロトコルを利用して通信することにより、予め決定されたフレームレートの値である。なお、RTSPはReal Time Streaming Protocol、SDPはSession Description Protocolである。また、SIPはSession Initiation Protocol、SOAPはSimple Object Access Protocolである。
【0023】
また、現在のフレームレートは、後述するフレームレートの制御が行われていなければ、初期フレームレートと同値である。第1の受信装置へ送信されている動画データのフレームレートと初期フレームレートがS202で取得されると、S203へ進む。
フレームレート制御部103は、S201において負荷取得部105が取得した処理負荷が、閾値以上か否かを判定する(S203)。閾値は任意の値を設定することが可能であるが、本実施形態の送信装置100は、例えばCPU負荷80%を閾値とする。
【0024】
ただし、80%に限らない。また、例えば、動画データの入力時刻と当該動画データのパケットの送信時刻の差(100ミリ秒)を閾値として設定することも可能である。また、例えば、動画データのパケットの生成時刻と送信時刻との時間差(30ミリ秒)を閾値として設定することも可能である。さらに、現在の処理負荷が閾値以上であるか否かを、上記の複数の閾値の組み合わせに基づいて判定するようにしても良い。
【0025】
S203で処理負荷が閾値以上であると判定された場合、フレームレート制御部103は、S202で取得された現在のフレームレートが閾値以上か否かを判定する(S204)。閾値は任意の値にすることが可能であるが、本実施形態の送信装置100は、11fpsを閾値とする。
【0026】
S204で現在のフレームレートが閾値未満であると判定された場合、S208に進み、閾値以上であると判定された場合、S206へ進む。
S206において、フレームレート制御部103は、フレームレートを下げる処理を行う。すなわち、フレームレート制御部103は、S202で取得された現在のフレームレートが11fps以上であり、S203で処理負荷が所定の負荷に達したと判定されると、フレームレートを下げる処理を行う。
【0027】
また、上述のように、処理負荷は、CPUの負荷に限らず、例えば、映像入力装置101からの動画データの入力時刻から当該動画データのパケットの送信時刻までの時間差などであっても良い。すなわち、フレームレート制御部103は、動画データの入力時刻と送信時刻との時間差が所定値に達すると、S206の処理を実行するようにすることも可能である。
【0028】
また、S201で取得される状態情報は、処理負荷に限らず、例えば、バッファ106に記憶される送信待ちの動画データのフレーム数やデータ量であっても良い。すなわち、フレームレート制御部103は、バッファ106に記憶される送信待ちの動画データのフレーム数やデータ量の少なくとも一方が所定値に達すると、S206の処理を実行するようにすることも可能である。
【0029】
本形態のフレームレート制御部103は、現在のフレームレートが高いほど、より大きい割合でフレームレートが下がるように、変更後のフレームレートを決定する。例えば、フレームレート制御部103は、現在のフレームレートが30fpsの場合、変更後のフレームレートが15fpsになり、現在のフレームレートが15fpsの場合、変更後のフレームレートが10fpsとなるようにフレームレートを制御する。
【0030】
すなわち、フレームレート制御部103は、30fpsと15fpsとで動画データを送信中に、これらのフレームレートを送信装置100の処理負荷に応じて下げる場合、S206(変更手順)において、以下のようにフレームレートを変更する。すなわち、フレームレート制御部103は、変更前(30fps)と、変更後の変更フレームレート(15fps)との割合(−1/2)が、変更前(15fps)と、変更後の変更フレームレート(10fps)との割合(−1/3)よりも大きくなるようにフレームレートを変更する。
【0031】
なお、本形態の動画符号化部102は、S206でフレームレートが下げられても、フレームレートを下げる前と同じフレームレートで動画データの符号化を行い、パケット生成部104は、下げられたフレームレートで動画パケットを生成する。本形態の動画符号化部102は、専用のハードウェアで動画の符号化処理を行う。
【0032】
一方、フレームレート制御部103は、S202で取得された現在のフレームレートが11fpsよりも低い場合、S203で処理負荷が閾値以上であると判定されても、フレームレートの変更を行わない。
【0033】
S206でフレームレートを下げる処理を行った後、又は、S204でフレームレートが閾値(11fps)未満であると判定された場合、フレームレート制御部103は、すべての動画データについて、S202からS207の処理を完了したか判定する(S208)。S208で完了していないと判定された場合はS202へ戻り、完了したと判定された場合は図2の処理を終了する。S202へ戻った場合、第2の受信装置302に関する初期フレームレートと現在のフレームレートが取得され、S203以下の処理が行われる。
【0034】
本形態では、図2の処理を終了後、所定時間が経過すると、再び図2の処理が開始される。ただし、所定時間経過後に限らず、例えば、エラーパケットの増加や、新規の動画データの送信開始や、既存の動画データの送信終了に応じて、図2の処理を開始するようにしても良い。
S203において、送信装置100の処理負荷が閾値未満であると判定された場合、フレームレート制御部103は、S202で取得された現在のフレームレートが、初期フレームレートよりも低いか否かを判定する(S205)。
S205で現在のフレームレートが初期フレームレートよりも低いと判定された場合、初期フレームレートを上限として、現在のフレームレートを上げる処理を行う(S207)。例えば、初期フレームレートが30fpsであったにもかかわらず、送信装置100の処理負荷に応じて15fpsに下げられ、その後、処理負荷が閾値よりも低くなった場合、現在のフレームレートを、30fpsを上限として回復させる。
【0035】
すなわち、フレームレート制御部103は、状態情報(処理負荷やバッファ106の状況)に応じて、複数の変更フレームレートのそれぞれを初期フレームレートに変更する。
【0036】
なお、上記の例において、15fpsのフレームレートをどこまで上げるかは、現在の処理負荷に基づいて決定することができる。また、フレームレートを下げるか否かを判定するための閾値と、フレームレートを回復させるか否かを判定するための閾値は、別の値にすることが可能である。すなわち、フレームレートを下げるか否かの判定のための処理負荷の閾値(CPU負荷80%)を、フレームレートを回復するか否かの判定のための処理負荷の閾値(CPU負荷60%)よりも高くすることで、フレームレートの変更頻度を少なくすることができる。なお、本形態の動画符号化部102は、S207でフレームレートが上がっても、フレームレートが上がる前と同じフレームレートで動画データの符号化を行う。このようにすることで、動画符号化部102でのフレームレートの変更頻度を少なくすることができる。
【0037】
S205でフレームレートが下げられていない(初期フレームレートと現在のフレームレートが同値)と判定された場合、S208へ進む。
【0038】
次に、本実施形態のシステム全体の処理について、図3及び図4を用いて説明する。
【0039】
図3は、本実施形態の送信装置100と、複数の受信装置(301〜303)の接続形態の一例を示す図である。送信装置100と第1の受信装置301及び第2の受信装置302、第3の受信装置303は、ネットワーク304(図1では伝送路108に相当)を介して相互に接続されている。
【0040】
また、各受信装置へ送信する動画像の解像度は、全てVGA(640x480ピクセル)であるとする。初期フレームレートはそれぞれ、第1の受信装置301が30fps(frame per sec)、第2の受信装置302が15fps、第3の受信装置303が10fpsであるとする。また、本実施形態では、フレームレートの閾値として11fpsが設定されているものとする。
【0041】
図4は、送信装置100において、負荷取得部105により取得されるCPU負荷と、第1〜第3の受信装置(301〜303)へ送信される動画データのフレームレートとの関係を時間経過と共に示す図である。
図4の401は、送信装置100の負荷取得部105により取得されるCPU負荷を時間経過と共に示す図である。本実施形態では、CPU負荷の閾値として80%が設定されているものとする。また、時刻0から時刻t1までの期間のCPU負荷はc1、時刻t1から時刻t2までの期間のCPU負荷はc3、時刻t2から時刻t3までの期間のCPU負荷はc4、時刻t3以降のCPU負荷はc2であり、c1<c2<c3<80(%)<c4とする。
【0042】
また、図4の402〜404は、第1の受信装置301〜第3の受信装置のそれぞれへ送信される動画データのフレームレートの変化を時間経過と共に示している。
まず時刻0に、第1の受信装置301への動画データの送信が開始される。ここでCPU負荷はc1であり、閾値の80%未満である。従って、フレームレートは初期値の30fpsのままで第1の受信装置301へ動画データが送信される。
続いて時刻t1に、第2の受信装置302への動画データの送信が開始される。これによりCPU負荷がc1からc3となるが、依然として閾値の80%未満である。従って、第1の受信装置301のフレームレートは初期値の30fpsのまま、第2の受信装置302のフレームレートも初期値の15fpsのままで動画データが送信される。
【0043】
さらに時刻t2に、第3の受信装置303への動画データの送信が開始される。これによりCPU負荷がc3からc4となり、閾値の80%以上となる。
その後時刻t3に、フレームレートを下げるためのフレームレート制御が行われる。時刻t2から時刻t3までの期間は、負荷取得部105がCPU負荷を取得してからフレームレート制御部103がフレームレートを下げるまでに要する時間である。フレームレートの制御の結果、第1の受信装置301のフレームレートは30fpsから半分の15fpsへ減少し、第2の受信装置302のフレームレートは15fpsから2/3の10fpsへ減少する。このように、本形態のフレームレート制御部103は、送信装置100の処理負荷が閾値以上となった時点において高いフレームレートであるほど、大きい割合でフレームレートが下がるように、変更後のフレームレートを決定する。
【0044】
なお、第3の受信装置303のフレームレートは10fpsであり、閾値(11fps)未満であるため変更されない。すなわち、フレームレート制御部103は、第1の受信装置301と第2の受信装置302へ送信する動画データのフレームレートを下げる場合において、第3の受信装置303へ送信する動画データのフレームレートを下げない。上記のようなフレームレートの制御により、送信装置100のCPU負荷は、c4からc2へと減少し、閾値の80%未満となる。
【0045】
以上のように、送信装置100のフレームレート制御部103は、送信中の動画データのフレームレートを下げる場合、下げる前のフレームレートが高いほど、より大きい割合でフレームレートが下がるように、変更後のフレームレートを決定する。このようにすることで、複数の異なるフレームレートで動画データを送信している場合において、フレームレートの制御により、特定の動画データのフレームレートが過度に下がりすぎてしまう可能性を低減できる。
【0046】
なお、実施形態では、複数の受信装置に異なるフレームレートで動画データを送信する例を中心に説明したが、1つの受信装置に異なるフレームレートで動画データを送信する場合にも、本発明は適用可能である。
【0047】
また、上記の説明では、図2のS202で、現在のフレームレートと、対応する初期フレームレートの組を1つ、取得する例について説明したが、送信中の現在のフレームレートと初期フレームレートの組をすべてS202で取得するようにしても良い。この場合、S203で処理負荷が閾値以上と判定され、S202で取得された複数の現在のフレームレートのうち、1つ以上のフレームレートが閾値以上の場合、フレームレート制御部103は、S206でフレームレートを下げるためのフレームレート制御を行う。
【0048】
また、フレームレート制御部103は、第1の初期フレームレートの変更後の第1の変更フレームレートと、第2の初期フレームレートの変更後の第2の変更フレームレートが同じ場合に、さらにフレームレートを下げる場合、以下のように制御する。すなわち、フレームレート制御部103は、第1の変更フレームレートの変更後の第3の変更フレームレートよりも、第2の変更フレームレートの変更後の第4の変更フレームレートが低くなるように、フレームレートを制御する。ただし、第1の初期フレームレートは第2の初期フレームレートより高い。このようにすることで、現在のフレームレートが、複数の受信装置間で同じ場合は、よりユーザの要求に近いフレームレートに制御することができる。
【0049】
また、送信中の動画データの解像度に基づいて、フレームレートを制御するようにしても良い。例えば、図3に示したような例において、第1の受信装置301へ送信している動画データの解像度がQuad−VGA(1280x960ピクセル)の場合は、15fpsよりもさらにフレームレートが下がるようにしても良い。そして、第2の受信装置302へ送信される動画データ(VGAサイズ)のフレームレートは、15fpsよりも高くすることができる。このようにすることで、特定の動画データの品質が低くなりすぎてしまう可能性を低減できる。解像度を用いたフレームレートの制御の詳細は、第2の実施形態で述べる。
【0050】
<第2の実施形態>
次に第2の実施形態について、第1の実施形態との差異を中心に説明する。
本実施形態では、送信する動画データの解像度が異なる場合の実施形態について説明する。
【0051】
図5は、第2の実施形態の送信装置500の機能構成例を示すブロック図である。図5に示すように、本実施形態の送信装置500は、第1の動画符号化部501、第2の動画符号化部502、第1のパケット生成部503、第2のパケット生成部504を備える。同図において、図1と同じ部分には同じ番号を付与している。
【0052】
第1の動画符号化部501は、映像入力装置101から入力された動画データを、Quad−VGA(1280x960ピクセル)のMotion−JPEG方式により圧縮符号化する。第1の動画符号化部501は、圧縮符号化した動画データをフレーム単位で第1のパケット生成部503へ入力する。
【0053】
また第2の動画符号化部502は、映像入力装置101から入力された動画データを、VGA(640x480ピクセル)のMotion−JPEG方式により圧縮符号化する。第2の動画符号化部502は、圧縮符号化した動画データをフレーム単位で第2のパケット生成部504へ入力する。
【0054】
第1のパケット生成部503と第2のパケット生成部504は、第1の動画符号化部501及び第2の動画符号化部502から各々入力された動画データをパケット化し、バッファ106へ記憶させる。本実施形態の第1のパケット生成部503と第2のパケット生成部504は、第1の実施形態のパケット生成部104と同様に、RTPペイロードフォーマットを規定しているIETF RFC2435に従って符号化動画データをパケット化するものとする。
【0055】
次に、本実施形態の送信装置100によるフレームレート制御処理の詳細について、図6を用いて説明する。図6は、本実施形態の送信装置500におけるフレームレート制御処理を説明するためのフローチャートである。なお、本形態の送信装置500は、複数の異なるフレームレートで動画データを送信する送信装置である。また、本形態の送信装置500は、図6の処理を実行するためのプログラムをCPUが読み出して実行することにより、図6の処理を実現する。
【0056】
ただし、図6の処理の少なくとも一部を専用のハードウェアで行うようにすることも可能である。また、本形態の送信装置500は、受信装置に対して動画データの送信を開始するタイミングで図6の処理を開始する。なお、本形態では、第1の受信装置に対してQuad−VGAの動画データを送信し、第2の受信装置に対してVGAの動画データを送信しているものとする。
【0057】
まず負荷取得部105は、送信装置500の現在の状態情報を取得する(S601)。状態情報は、第1の実施形態と同様に、送信装置100の処理負荷や、バッファ106に記憶されている送信待ちの動画データのデータ量やフレーム数に関する情報である。なお、以下では、状態情報として、送信装置100の処理負荷を用いる例を中心に説明する。
【0058】
フレームレート制御部103は、各受信装置に送信する動画データの解像度とフレームレートの値を取得する(S602)。本実施形態では、第1の受信装置へQuad−VGAの動画データを送信し、第2の受信装置へVGAの動画データを送信している。また、フレームレートの取得方法については第1の実施形態と同様である。
【0059】
S603〜S605、S607の処理は、第1の実施形態のS203〜ステップS205、S207の処理に対応する。
S602で取得された現在のフレームレートが閾値以上であるとS604で判定された場合、フレームレート制御部103は、当該フレームレートで送信している動画データの解像度がQuad−VGAであるか否かを判定する(S606)。解像度がQuad−VGAであると判定された場合、S608へ進み、解像度がQuad−VGAでない(VGAである)と判定された場合、S609へ進む。
S606で解像度がQuad−VGAと判定された場合、フレームレート制御部103は、Quad−VGAの動画データのフレームレートを下げる(S608)。すなわち、本形態のフレームレート制御部103は、送信装置500の処理負荷が閾値以上となった場合、所定解像度(Quad−VGA)以上の動画データのフレームレートを下げる。一方、フレームレート制御部103は、処理負荷が閾値以上となっても、所定解像度未満(VGA)の動画データのフレームレートを下げない。所定解像度の例は、Quad−VGAに限らない。
【0060】
なお、本形態の第1の動画符号化部501は、S608でフレームレートを下げても、フレームレートを下げる前と同じフレームレートで動画データの符号化を行い、第1のパケット生成部503は、下げられたフレームレートで動画パケットの生成を行う。本形態の第1の動画符号化部501と第2の動画符号化部502は、専用のハードウェアで動画の符号化処理を行う。
【0061】
フレームレート制御部103は、送信中のすべての動画データについて、S602からS608の処理を完了したか判定し(S609)、完了していないと判定された場合はS602に戻る。
【0062】
一方、S609ですべての動画データについての処理が完了したと判定された場合、図6の処理を終了する。本形態では、図6の処理を終了後、所定時間が経過すると、再び図6の処理が開始される。ただし、所定時間経過後に限らず、例えば、エラーパケットの増加や、新規の動画データの送信開始や、既存の動画データの送信終了に応じて、図6の処理を開始するようにしても良い。
【0063】
以上のように、送信装置500のフレームレート制御部103は、送信装置500の処理負荷に応じて、所定解像度以上の動画データのフレームレートを下げる。このようにすることで、フレームレートの制御により、特定の動画データの品質が過度に下がりすぎてしまう可能性を低減できる。
【0064】
なお、本形態では、送信装置500の処理負荷が所定値以上になると、所定解像度以上の動画データのフレームレートを下げ、所定解像度以下の動画データのフレームレートを下げない例について説明したが、この形態に限らない。例えば、送信中の動画データの解像度に応じて、フレームレートの低減量を決定するようにしても良い。
【0065】
例えば、第1の受信装置にQuad−VGAの動画データを30fpsで送信し、第2の受信装置にVGAの動画データを30fpsで送信しているときに、送信装置500の処理負荷が閾値以上になった場合、以下のようにフレームレートを制御できる。すなわち送信装置500は、第1の受信装置へ送信する動画データのフレームレートを15fpsに下げ、その後の処理負荷に応じて、第2の受信装置へ送信する動画データのフレームレートを20fpsに下げることができる。なお、処理負荷の代わりに、ほかの状態情報(例えばバッファ106に記憶されている送信待ち動画データのフレーム数やデータ量)を用いても良い。
【0066】
このように、解像度が高い動画データほど、より大きい割合でフレームレートが下がるように、フレームレートを制御することで、特定の動画データの品質が下がりすぎてしまう可能性を低減できる。
【0067】
上記の実施形態では、送信装置100が動画データの符号化処理を行う機能を有していたが、動画符号化部102と送信装置100が別々の装置であっても良い。
【0068】
また、前述の実施形態では、データ転送プロトコルとしてRTPを用いたが、データ転送プロトコルとしてはRTPに限らずOSI参照モデルの同一レイヤーの他のプロトコルまたは別レイヤーの他のプロトコルを用いる事が可能である。
【0069】
以上、実施形態例を詳述したが、本発明は例えば、システム、装置、方法、プログラム若しくは記録媒体(記憶媒体)等としての実施態様をとることが可能である。
【0070】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
複数の異なるフレームレートで動画データを送信する送信装置であって、
前記送信装置の状態情報を取得する取得手段と、
第1のフレームレートと、前記第1のフレームレートよりも低い第2のフレームレートとで動画データを送信中に、前記第1及び第2のフレームレートを下げる場合、
前記第1のフレームレートと第1のフレームレートを下げた後の第1の変更フレームレートとの割合が、前記第2のフレームレートと第2のフレームレートを下げた後の第2の変更フレームレートとの割合よりも大きくなるように、前記状態情報に応じて前記第1及び第2のフレームレートを下げる変更手段とを有することを特徴とする送信装置。
【請求項2】
前記取得手段は、前記第1及び第2の動画データの送信処理を含む複数の処理を行う処理部の処理負荷を状態情報として取得し、
前記変更手段は、前記処理部の処理負荷が所定の負荷に達すると前記第1及び第2のフレームレートを下げることを特徴とする請求項1に記載の送信装置。
【請求項3】
送信すべき動画データを入力する入力手段を有し、
前記取得手段は、前記入力手段が前記動画データを入力してから前記動画データを送信するまでの時間に関する処理時間を状態情報として取得し、
前記変更手段は、前記処理時間が所定の時間に達すると前記第1及び第2のフレームレートを下げることを特徴とする請求項1又は2に記載の送信装置。
【請求項4】
送信待ちの動画データを記憶する記憶手段を有し、
前記取得手段は、前記送信待ちの動画データのフレーム数、及び、前記送信待ちの動画データのデータ量のうち、少なくとも一方を状態情報として取得し、
前記変更手段は、前記取得されたフレーム数、及び、前記取得されたデータ量のうち、少なくとも一方が所定値に達すると、前記第1及び第2のフレームレートを下げることを特徴とする請求項1乃至3のうち、いずれか1項に記載の送信装置。
【請求項5】
前記変更手段は、前記第1のフレームレートと、前記第2のフレームレートと、更に、前記第2のフレームレートよりも低い第3のフレームレートで動画データを送信している場合、前記第1及び第2のフレームレートを変更する際に、前記第3のフレームレートが所定のフレームレートよりも低い場合、前記第3のフレームレートを下げないことを特徴とする請求項1乃至4のうち、いずれか1項に記載の送信装置。
【請求項6】
前記第1の変更フレームレートと前記第2の変更フレームレートが同じフレームレートで、前記変更の後に取得された状態情報に応じて前記第1及び第2の変更フレームレートを更に下げる場合、前記第1の変更フレームレートの変更後の第3の変更フレームレートよりも、前記第2の変更フレームレートの変更後の第4の変更フレームレートのほうが低くなるように、前記第1の変更フレームレートと前記第2の変更フレームレートを下げることを特徴とする請求項1乃至5のうち、いずれか1項に記載の送信装置。
【請求項7】
前記変更手段は、前記状態情報に応じて、前記第1の変更フレームレートを前記変更前の前記第1のフレームレートに変更し、前記第2の変更フレームレートを前記変更前の前記第2のフレームレートに変更することを特徴とする請求項1乃至6のうち、いずれか1項に記載の送信装置。
【請求項8】
前記変更手段は、第1の解像度の動画データを第1のフレームレートで、前記第1の解像度よりも低い第2の解像度の動画データを前記第2のフレームレートで送信中に、前記第1及び第2のフレームレートを下げる場合、前記第1の解像度に対応する前記第1のフレームレートを前記状態情報に応じて前記第1の変更フレームレートに下げ、下げた後に取得された状態情報に応じて前記第2のフレームレートを前記第2の変更フレームレートに下げることを特徴とする請求項1乃至7のうち、いずれか1項に記載の送信装置。
【請求項9】
複数の異なるフレームレートで動画データを送信する送信装置が行う送信方法であって、
前記送信装置の状態情報を取得する取得工程と、
第1のフレームレートと、前記第1のフレームレートよりも低い第2のフレームレートとで動画データを送信中に、前記第1及び第2のフレームレートを下げる場合、
前記第1のフレームレートと第1のフレームレートを下げた後の第1の変更フレームレートとの割合が、前記第2のフレームレートと第2のフレームレートを下げた後の第2の変更フレームレートとの割合よりも大きくなるように、前記状態情報に応じて前記第1及び第2のフレームレートを下げる変更工程とを有することを特徴とする送信方法。
【請求項10】
複数の異なるフレームレートで動画データを送信するコンピュータに、
前記送信装置の状態情報を取得する取得手順と、
第1のフレームレートと、前記第1のフレームレートよりも低い第2のフレームレートとで動画データを送信中に、前記第1及び第2のフレームレートを下げる場合、
前記第1のフレームレートと第1のフレームレートを下げた後の第1の変更フレームレートとの割合が、前記第2のフレームレートと第2のフレームレートを下げた後の第2の変更フレームレートとの割合よりも大きくなるように、前記状態情報に応じて前記第1及び第2のフレームレートを下げる変更手順とを実行させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−195831(P2012−195831A)
【公開日】平成24年10月11日(2012.10.11)
【国際特許分類】
【出願番号】特願2011−59248(P2011−59248)
【出願日】平成23年3月17日(2011.3.17)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】