JP2007005894A - Data transmission apparatus and control method thereof, and control program - Google Patents
Data transmission apparatus and control method thereof, and control program Download PDFInfo
- Publication number
- JP2007005894A JP2007005894A JP2005180628A JP2005180628A JP2007005894A JP 2007005894 A JP2007005894 A JP 2007005894A JP 2005180628 A JP2005180628 A JP 2005180628A JP 2005180628 A JP2005180628 A JP 2005180628A JP 2007005894 A JP2007005894 A JP 2007005894A
- Authority
- JP
- Japan
- Prior art keywords
- data
- message
- transmission
- request message
- transfer 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
Description
本発明は、インターネット等のネットワークを介して音声などの連続データを伝送するデータ伝送装置及びその制御方法、並びに前記制御方法を実現するための制御プログラムに関する。 The present invention relates to a data transmission apparatus that transmits continuous data such as voice over a network such as the Internet, a control method thereof, and a control program for realizing the control method.
近年、IP(Internet Protocol)ネットワークを利用したライブ配信システムやビデオ会議システム等、リアルタイム性が要求されるデータの配信システムが提案されている(例えば、特許文献1参照)。 In recent years, data distribution systems that require real-time performance, such as live distribution systems and video conference systems using an IP (Internet Protocol) network, have been proposed (see, for example, Patent Document 1).
一般に、リアルタイム(実時間)の音声通信を行う場合に、送信側は、音声通信による遅延量を小さくするため音声データを小さく区切って送信する。さらに、小さく区切った音声データを一定間隔で送信する必要がある。これは、受信側で後述するようなアンダーフローを起こさないようにするためである。受信側でアンダーフローが発生すると、再生時に音途切れやエコーなどが発生し、ユーザに不快感を与えることになる。 In general, when performing real-time (real-time) voice communication, the transmission side transmits voice data by dividing it into small pieces in order to reduce the delay amount due to voice communication. Furthermore, it is necessary to transmit the audio data divided into small parts at regular intervals. This is to prevent underflow as will be described later on the receiving side. When an underflow occurs on the receiving side, sound interruption or echo occurs during reproduction, which makes the user uncomfortable.
HTTP(HyperText Transfer Protocol)を用いて、クライアント装置からサーバ装置へリアルタイム性の高い音声通信を実施することを考える。まず、クライアント装置は、HTTPリクエストに音声データを含めたHTTPメッセージをサーバ装置へ送信し、サーバ装置からレスポンスを受信する。このHTTPメッセージの送受信を繰り返すことにより、クライアント装置からサーバ装置へ連続した音声通信が可能になる。但し、上述したように、リアルタイム性の高い音声通信を行うためには、クライアント装置は、上記HTTPメッセージの送受信処理をなるべく小さい単位で、且つ一定間隔で実施する必要がある。
しかしながら、上記HTTPメッセージの送受信処理において、実際のネットワーク環境では、装置もしくはネットワーク上の様々な遅延要因により、HTTPメッセージの送受信単位を小さい単位で、且つ一定間隔で実施することは困難である。 However, in the HTTP message transmission / reception process, in an actual network environment, it is difficult to implement the HTTP message transmission / reception unit in small units and at regular intervals due to various delay factors on the apparatus or the network.
具体的には、クライアント装置とサーバ装置間のネットワーク経路において、プロキシサーバ装置を経由する場合には、HTTPメッセージを一時蓄積することで転送処理が数百ミリ秒程度遅れたり、HTTPヘッダを書き換えてHTTPレスポンスの転送後にHTTPセッションを切断させたりすることがある。また、クライアント装置上でアンチウイルスソフトウェアが動作していると、プロキシサーバ装置使用時と同様の現象を引き起こす場合がある。その他、ネットワーク上でのパケット落ちなど、様々な原因により、HTTPメッセージの送受信処理が滞る場合がある。 Specifically, in the network path between the client device and the server device, when passing through the proxy server device, the transfer process is delayed by about several hundred milliseconds by temporarily storing the HTTP message, or the HTTP header is rewritten. The HTTP session may be disconnected after transferring the HTTP response. Also, if anti-virus software is running on the client device, it may cause the same phenomenon as when using a proxy server device. In addition, transmission / reception processing of HTTP messages may be delayed due to various causes such as packet drop on the network.
このような要因から、HTTPメッセージの送受信処理が滞り、音声を再生する側のサーバ装置ではアンダーフローが起こって再生時の音途切れやエコーが発生し、ユーザに不快感を与えるという問題があった。 Due to these factors, HTTP message transmission / reception processing is delayed, and the server device on the audio playback side underflows, causing sound interruptions and echoes during playback, causing discomfort to the user. .
本発明は上記従来の問題点に鑑み、ネットワーク上でのメッセージ転送に遅延が生じても、アンダーフローを防止してリアルタイム性に優れたデータ伝送を行うことができるデータ伝送装置及びその制御方法、並びに制御プログラムを提供することを目的とする。 In view of the above-described conventional problems, the present invention provides a data transmission apparatus capable of preventing underflow and performing data transmission with excellent real-time performance even when a delay occurs in message transfer on the network, and a control method thereof, An object of the present invention is to provide a control program.
本発明は上記目的を達成するため、ネットワークを介して外部装置にデータをリアルタイムに伝送するデータ伝送装置において、入力装置から入力されたデータを一時的に記憶するバッファリング手段と、前記バッファリング手段に記憶したデータを含むリクエストメッセージを作成するリクエストメッセージ作成手段と、前記作成されたリクエストメッセージを前記外部装置へ送信し、該外部装置から前記リクエストメッセージに対するレスポンスメッセージを受信するメッセージ送受信手段と、前記リクエストメッセージの送信から前記レスポンスメッセージを受信するまでのメッセージ転送時間を計測する転送時間計測手段と、前記転送時間計測手段で計測した前記メッセージ転送時間に基づいて、前記リクエストメッセージに含まれるデータのデータ量を決定するデータ量決定手段とを備えたことを特徴とする。 In order to achieve the above object, the present invention provides a data transmission apparatus for transmitting data to an external apparatus in real time via a network, a buffering means for temporarily storing data input from the input apparatus, and the buffering means Request message creating means for creating a request message including the data stored in the message, message transmitting / receiving means for transmitting the created request message to the external device, and receiving a response message for the request message from the external device, and Included in the request message based on the message transfer time measured by the transfer time measuring means, the transfer time measuring means for measuring the message transfer time from the transmission of the request message until the response message is received Characterized by comprising a data amount determination means for determining the amount of data.
また、本発明は、ネットワークを介して外部装置にデータをリアルタイムに伝送するデータ伝送装置の制御方法において、入力された連続データを一時的にバッファリング手段に記憶する工程と、前記バッファリング手段に記憶したデータを含むリクエストメッセージを作成するリクエストメッセージ作成工程と、前記リクエストメッセージを前記外部装置へ送信し、該外部装置から前記リクエストメッセージに対するレスポンスメッセージを受信するメッセージ送受信工程と、前記リクエストメッセージの送信から前記レスポンスメッセージを受信するまでのメッセージ転送時間を計測する転送時間計測工程と、前記転送時間計測工程で計測した前記メッセージ転送時間に基づいて、前記リクエストメッセージに含まれるデータのデータ量を決定するデータ量決定工程とを実行することを特徴とする。 According to another aspect of the present invention, there is provided a data transmission apparatus control method for transmitting data to an external device in real time via a network, a step of temporarily storing input continuous data in the buffering means, and the buffering means A request message creating step for creating a request message including the stored data, a message transmitting / receiving step for sending the request message to the external device, and receiving a response message to the request message from the external device, and sending the request message A transfer time measuring step for measuring a message transfer time from when the response message is received to the response message, and a data amount of data included in the request message based on the message transfer time measured in the transfer time measuring step Decision and executes the data amount determining step for.
また、本発明は、ネットワークを介して外部装置にデータをリアルタイムに伝送するデータ伝送装置の制御方法を実行するための、コンピュータで読み取り可能な制御プログラムであって、入力された連続データを一時的にバッファリング手段に記憶するステップと、前記バッファリング手段に記憶した連続データを含むリクエストメッセージを作成するリクエストメッセージ作成ステップと、前記リクエストメッセージを前記外部装置へ送信し、該外部装置から前記リクエストメッセージに対するレスポンスメッセージを受信するメッセージ送受信ステップと、前記リクエストメッセージの送信から前記レスポンスメッセージを受信するまでのメッセージ転送時間を計測する転送時間計測ステップと、前記転送時間計測ステップで計測した前記メッセージ転送時間に基づいて、前記リクエストメッセージに含まれるデータのデータ量を決定するデータ量決定ステップとを有することを特徴とする。 The present invention also provides a computer-readable control program for executing a control method of a data transmission device that transmits data to an external device in real time via a network, and temporarily inputs input continuous data. Storing in the buffering means, a request message creating step for creating a request message including the continuous data stored in the buffering means, and transmitting the request message to the external device, from the external device to the request message A message transmission / reception step for receiving a response message, a transfer time measurement step for measuring a message transfer time from transmission of the request message to reception of the response message, and a transfer time measurement step. Based on the serial message transfer time, and having a data amount determining step of determining the amount of data included in the request message.
本発明によれば、ネットワーク上でのメッセージ転送に遅延が生じても、リクエストメッセージおよびレスポンスメッセージの送受信時間を利用することにより、アンダーフローを防止することができ、リアルタイム性に優れた品質の良いデータ伝送を行うことが可能になる。 According to the present invention, underflow can be prevented by using the transmission / reception time of a request message and a response message even if a delay occurs in message transfer on the network, and the quality is excellent in real time. Data transmission can be performed.
本発明のデータ伝送装置及びその制御方法、並びに制御プログラムの実施の形態について、図面を参照しながら説明する。 Embodiments of a data transmission apparatus, a control method thereof, and a control program according to the present invention will be described with reference to the drawings.
<装置の構成>
図1は、本発明のデータ伝送装置である音声通信装置を備えた音声伝送システムの要部機能を示すブロック図である。
<Device configuration>
FIG. 1 is a block diagram showing the main functions of an audio transmission system provided with an audio communication apparatus which is a data transmission apparatus of the present invention.
この音声伝送システムは、音声入力装置100から入力された音声データをクライアント装置101からネットワーク108を介してサーバ装置200へリアルタイムに伝送するシステムである。クライアント装置101は、音声データ処理部102、送信バッファ103、メッセージ処理部104、転送時間計測部105、送信データ量決定部106、及びネットワーク処理部107等から構成されている。なお、図1に示す音声伝送システムは、通信端末装置として、クライアント装置101およびサーバ装置200からなるが、クライアント装置どうしの構成でもサーバ装置どうしの構成でもよい。
This audio transmission system is a system for transmitting audio data input from the
音声データ処理部102は、音声入力装置100から音声信号を受けてA/D変換処理と音声圧縮処理を行い、送信バッファ103は、圧縮された音声データを一時的格納する。メッセージ処理部104は、送信バッファ103に蓄積された音声データを含んだHTTPリクエストメッセージを作成する。
The audio
転送時間計測部105は、作成したHTTPリクエストを送信したときから、サーバ装置200より返信されるHTTPレスポンスを受信するまでの時間(メッセージ転送時間)を計測し、送信データ量決定部106は、前記メッセージ転送時間の統計を取って、HTTPリクエストに含める音声データ量を決定する。ネットワーク処理部107は、HTTPリクエストやHTTPレスポンスを送受信する。
The transfer time measuring unit 105 measures the time (message transfer time) from when the created HTTP request is transmitted to when the HTTP response returned from the
なお、音声入力装置100はクライアント装置101内に存在する場合もあるが、音声伝送システムを構成する機能ブロックとして大きな違いはないため、本実施の形態では別装置として説明する。
Although the
一方、サーバ装置200は、ネットワーク処理部201、受信バッファ202、メッセージ処理部203、及び音声データ処理部204を有している。ネットワーク処理部201は、HTTPレスポンスやHTTPリクエストを送受信する。受信バッファ202は、
受信した音声データを蓄積し、メッセージ処理部203は、HTTPレスポンスを作成する。音声データ処理部204は、音声データを順次伸長しつつD/A変換する。
On the other hand, the
The received voice data is accumulated, and the
図2は、図1に示したクライアント装置101のハード構成の一例を示すブロック図である。
FIG. 2 is a block diagram illustrating an example of a hardware configuration of the
このクライアント装置101は、図1に示した音声データ処理部102及び送信バッファ103と、CPU901と、ROM902と、RAM903と、入力装置コントローラ(KBC)905と、CRTコントローラ(CRTC)906と、ディスクコントローラ(DKC)907と、ネットワークインターフェースコントローラ908とが、システムバス904を介して互いに通信可能に接続された構成となっている。
The
CPU901は、ROM902或いはHD911に記憶されたソフトウェアを実行することで、システムバス904に接続された各構成部を総括的に制御する。即ち、CPU901は、所定の処理シーケンスに従った処理プログラムを、ROM902或いはHD911から読み出して実行することで、図1に示したメッセージ処理部104、転送時間計測部105、及び送信データ量決定部106に相当する各機能を実現すると共に、本実施の形態に係る動作(図3参照)を実現するための制御を行う。RAM903は、CPU901の主メモリ或いはワークエリア等として機能する。
The
入力装置コントローラ(KBC)905は、入力装置であるマウス909a及びキーボード909bからの指示入力を制御し、CRTコントローラ(CRTC)906は、CRTディスプレイ(CRT)910の表示を制御する。ディスクコントローラ(DKC)907は、ハードディスク(HD)911に対するアクセス動作を制御し、ネットワークインターフェースコントローラ(NIC、図1中のネットワーク処理部107に相当)908は、ネットワーク108との接続処理を行う。
An input device controller (KBC) 905 controls instruction inputs from a
<本実施の形態に係る動作>
次に、本実施の形態に係る動作について図3を参照して説明する。図3は、本実施の形態のクライアント装置101の動作を示すフローチャートである。
<Operation according to the present embodiment>
Next, the operation according to the present embodiment will be described with reference to FIG. FIG. 3 is a flowchart showing the operation of the
クライアント装置101よりサーバ装置200への音声通信を開始する場合、まず、音声データ処理部102では、音声入力装置100からリアルタイムに入力された音声信号をA/D変換し、さらに音声圧縮を施してから送信バッファ103に蓄積する(ステップS11)。音声信号は連続して入力されてくるので、数ミリから数十ミリ秒程度の短期間で送信バッファ103に次々と蓄積される。
When voice communication from the
メッセージ処理部104は、送信バッファ103を常に監視し、送信バッファ103に所定の閾値(後述する)まで音声データが蓄積されると(ステップS12)、その音声データを送信バッファ103から取得し(ステップS13)、HTTPリクエストの中に埋め込む(ステップS14)。そして、メッセージ処理部104は、転送時間計測部105を通して、ネットワーク処理部107に対して、前記音声データが埋め込まれたHTTPリクエストの送信を指示する。このとき、転送時間計測部105は、タイマーによる時間計測を開始する(ステップS15)。ネットワーク処理部107は、メッセージ処理部104から指示されたHTTPリクエストをネットワーク108を介して、サーバ装置200へ送信する。
The
サーバ装置200側では、HTTPリクエストを受信すると、音声データを受信バッファ202に蓄積し、HTTPレスポンスを作成する。そして、ネットワーク108を介して、クライアント装置101に返信する。その後、受信バッファ202に蓄積された音声データは、順次伸長がなされ、さらにD/A変換が行われて音声出力装置205へ出力され、音声が再生される。
On the
クライアント装置101では、ネットワーク処理部107がHTTPレスポンスを受信し、転送時間計測部105を通して、メッセージ処理部104に届ける。転送時間計測部105は、HTTPレスポンスを確認すると、動作中のタイマーを停止し(ステップS16)、HTTPリクエストの送信からHTTPレスポンスの受信までにかかった時間(メッセージ転送時間)を算出して送信データ量決定部106に通知する(ステップS17)。
In the
送信データ量決定部106は、過去から現在までに計測されたメッセージ転送時間の統計処理を実施する。そして、今回計測したメッセージ転送時間と過去の計測時間を比較することによりHTTPリクエストの1つに含まれる送信データ量を決定する(ステップS18)。具体的には、今回計測したメッセージ転送時間が過去の計測時間より長くなっていると判断すると、メッセージ処理部104に対して、監視している送信バッファ103に蓄積する送信データの容量の閾値を大きくし、一度に転送する送信データ量を増加させる指示を出す。また、今回計測したメッセージの転送時間が過去の計測時間より短くなっていると判断すると、メッセージ処理部104に対して監視している送信バッファ103に蓄積する送信データの容量の閾値を小さくし、一度に転送する送信データ容量を減少させる指示を出す。(ステップS20)。
The transmission data amount
送信データ量決定部106が、メッセージ転送時間が過去の計測時間より長くなっている、または短くなっていると判断する方法としては、例えば、直近の10秒間の平均計測時間がその前の10秒間の平均計測時間の2倍になっている、或いは半分になっているといったように、恒常的な変動傾向を観察する方法がある。この場合、ネットワークの一時的な遅延検出によって、短時間の間に何度も閾値を変更しないようにする。短時間に何度も閾値を変更すると、サーバ装置200で再生時の平均通信時間が揺らぎ、音途切れが発生しやすくなる。
For example, the transmission data amount
また、送信データ量決定部106によって決定される送信バッファ103の最初の閾値(初期値)は、実際のネットワーク構成上の遅延要因を考慮して決定することが好ましい。例えば、HTTPリクエストはプロキシサーバ装置を経由してサーバ装置200へ送るのか、またはクライアント装置101上でアンチウイルスソフトを使用しているか、などのネットワーク構成上の遅延要因を調べ、これらを使用している場合は送信バッファ103の閾値を大きく、使用していない場合は送信バッファ103の閾値を小さく設定する。この時、実際の環境により、複数の閾値を使い分けると効果的である。
In addition, the first threshold value (initial value) of the
このようにして、通信するネットワーク構成に最適な初期値を送信バッファ103の閾値として使用することができる。さらに、過去からの計測時間の統計を取ることで動的に一度に音声データを送信データとして転送するデータ量を変更できるので、メッセージの送受信間隔が想定以上に時間がかかるネットワーク環境でも、最適な閾値でネットワーク通信することができる。また、音声通信を一旦終了しても、送信バッファ103の閾値を、通信対象のサーバ装置毎に保持しておき、次回の音声通信時の初期値として再利用することで、次回以降、最初から安定した音声通信が可能となる。
In this way, an initial value optimum for the network configuration for communication can be used as the threshold value of the
クライアント装置101側でHTTPレスポンスを受信した後、メッセージ処理部104は、送信バッファ103に蓄積されている音声データが再度閾値を超えたときに、次のHTTPリクエストのために送信バッファ103から音声データを取得し、この音声データを埋め込んだHTTPデータを作成して前記した手順でサーバ装置200へ送信する。このとき、音声データが閾値を超えてもHTTPレスポンスを受信できていない場合、次のHTTPリクエストの送信処理は、HTTPレスポンスの受信まで待ち合わせることになる。
After receiving the HTTP response on the
<受信バッファのバッファ蓄積量の推移>
次に、図4(a),(b),(c)を参照して、サーバ装置200における受信バッファ202のバッファ蓄積量の推移について説明する。図4(a),(b),(c)は、サーバ装置200における受信バッファのバッファ蓄積量の推移を説明するための波形図である。
<Changes in the amount of buffer storage in the receive buffer>
Next, transition of the buffer accumulation amount of the
(A)理想的な状態でのバッファ蓄積量の推移
HTTPリクエストを送信してからHTTPレスポンスを受信するまでの時間であるメッセージ転送時間が、音声データが送信バッファ103の閾値を越えるまでに必要な時間より短い場合は、サーバ装置200内における受信バッファ202のバッファ蓄積量は図4(a)に示すように推移していく。
(A) Transition of buffer accumulation amount in an ideal state The message transfer time, which is the time from when an HTTP request is transmitted to when an HTTP response is received, is necessary until the voice data exceeds the threshold of the
図4(a)の例では、音声データを含んだHTTPリクエストを受信した時刻t200において、残存しているバッファ蓄積量b200がHTTPリクエストに含まれる音声データを取得することによりバッファ蓄積量b201まで一時的に増加する。その後、次のHTTPリクエストを受信する時刻t201まで音声再生していくことで徐々にバッファ蓄積量が減少していくことを表している。なお、本実施の形態では、前提として、HTTPリクエストの受信の完了に応じてHTTPレスポンスをクライアント装置101に返信する処理が行われるものとする。そして、また次のHTTPリクエストを時刻t202で受信し、受信バッファ202に蓄積し再生する、という処理を繰り返す。
In the example of FIG. 4A, at time t200 when an HTTP request including audio data is received, the remaining buffer accumulation amount b200 is temporarily acquired up to the buffer accumulation amount b201 by acquiring the audio data included in the HTTP request. Increase. After that, it is shown that the buffer accumulation amount is gradually reduced by reproducing the sound until time t201 when the next HTTP request is received. In the present embodiment, it is assumed that processing for returning an HTTP response to the
図4(a)の例では、理想的な状態で通信していると仮定している。具体的には、サーバ装置200が、HTTPリクエストの受信の完了に応じてHTTPレスポンスをクライアント装置101に返信するため、クライアント装置101は遅滞なくHTTPレスポンスを受信することができる。このため、バッファ蓄積量の平均も一定であり、受信バッファ202に音声データがなくなるというアンダーフローを起こすことはない。
In the example of FIG. 4A, it is assumed that communication is performed in an ideal state. Specifically, since the
(B)本実施の形態を適用しない場合おけるバッファ蓄積量の推移
次に、本実施の形態を適用しない場合の、サーバ装置200における受信バッファ202のバッファ蓄積量の推移について説明する。
(B) Transition of buffer accumulation amount when this embodiment is not applied Next, a transition of the buffer accumulation amount of the
ネットワーク経路上にプロキシサーバ装置を使用している、或いは特定のアンチウイルスソフトを使用している場合など、ネットワーク上の遅延要因により、クライアント装置101がHTTPリクエストを一定間隔で送信できない場合における、サーバ装置200の受信バッファ202のバッファ蓄積量の推移を図4(b)に示す。
Server when
サーバ装置200は、時刻t300の時点でHTTPレスポンスを返している。しかしながら、クライアント装置101は、ネットワーク上の遅延により時刻t301になってもHTTPレスポンスを受信することができない。このため、クライアント装置101は、当然次のHTTPリクエストを送信することはできない。
The
クライアント装置101は、理想的なHTTPリクエスト受信タイミングである時刻t301においてHTTPリクエストを受信できていないため、サーバ装置200の受信バッファ202の蓄積されていた音声データ量は時刻t302の時点でゼロとなる。つまりアンダーフローが起きて、音声出力装置205では音途切れが発生してしまう。
Since the
その後、クライアント装置101はHTTPレスポンスの受信に応じて次のHTTPリクエストを送信するが、サーバ装置200では時刻t303にHTTPリクエストを受信することになる。この時、一時的にバッファ蓄積量が回復し音声再生が開始されるが、結局次のHTTPリクエストの到着にも時間がかかってしまうので、再度バッファアンダーフローが発生し、音声出力装置205からは連続した音として聞こえない状態となる。
Thereafter, the
(C)本実施の形態を適用した場合におけるバッファ蓄積量の推移
次に、図4(b)の例と同じ条件の下で、本実施の形態を適用した場合のサーバ装置200におけるバッファ蓄積量の推移を図4(c)に示す。
(C) Transition of buffer accumulation amount when this embodiment is applied Next, the buffer accumulation amount in
遅延要因として、ネットワーク経路上にプロキシサーバ装置を使用している、或いは特定のアンチウイルスソフトを使用している場合で、且つクライアント装置101側において接続時の情報として前記遅延要因を知っている場合に、クライアント装置101は1つのHTTPリクエストに含める音声データ量を例えば図4(b)の2倍に設定する。
When a proxy server device is used on the network path or specific anti-virus software is used as a delay factor, and when the
その結果、サーバ装置200の受信バッファ202は、時刻t400において2倍の音声データが増えてバッファ蓄積量b401まで増加する。そのため、その後2倍のメッセージ間隔で次のHTTPリクエストを受信したとしても、バッファ蓄積量b400までしか減らないので、バッファアンダーフローの発生を防止することができる。
As a result, in the
本実施の形態では、このように予め分かっているネットワーク構成への対応だけでなく、例えばHTTPメッセージが通過するネットワーク経路が途中で変更されたり、ネットワーク負荷が急に高くなったりする場合など、恒常的なネットワーク遅延が発生する場合でも、的確に対応することができる。即ち、前述したようにメッセージ転送時間を計測し統計を取ることで、そのネットワーク遅延を検出し、HTTPメッセージと一緒に送信される音声データを大きくすることで、サーバ装置200におけるバッファアンダーフローを防止することができる。
In the present embodiment, not only the correspondence to the network configuration known in advance as described above, but also, for example, when the network route through which the HTTP message passes is changed in the middle or the network load suddenly increases, etc. Even when a typical network delay occurs, it can be dealt with accurately. That is, as described above, by measuring the message transfer time and taking statistics, the network delay is detected, and the voice data transmitted together with the HTTP message is increased to prevent buffer underflow in the
<本実施の形態の利点>
リアルタイム性が高い音声通信を行うために理想的には、クライアント装置101は、HTTPメッセージの送受信処理をなるべく小さい単位で、且つ一定間隔で実施することが重要である。しかしながら、クライアント装置101とサーバ装置200間のネットワーク経路において、HTTPメッセージの送受信処理が滞ることがある。その要因としては、例えばプロキシサーバ装置を経由したり、クライアント装置101上でアンチウイルスソフトが動作していたりするなど、ネットワーク構成上の遅延によるものが、まず挙げられる。その他にも、HTTPメッセージが通過するネットワーク経路が途中で変更された場合や、ネットワーク上でのパケット落ちやネットワーク負荷が急に高くなるなど、一時的なネットワーク環境による遅延が複雑に絡まりあってクライアント装置からは恒常的にネットワーク遅延が発生しているように見える場合もある。
<Advantages of this embodiment>
Ideally, in order to perform voice communication with high real-time characteristics, it is important for the
このような場合では、クライアント装置101とサーバ装置200間におけるHTTPメッセージの送受信(HTTPリクエストに音声データを含めたHTTPメッセージをサーバ装置へ送信しサーバ装置からレスポンスを受信する)に悪影響が生ずる。即ち、前記HTTPメッセージの送信からレスポンスを受信するまでの時間が送信データの間隔(1リクエストに含まれる音声データ量)よりも大きくなってくる。
In such a case, transmission / reception of an HTTP message between the
このような傾向においては、本実施の形態では、一度に送るデータ量を増やして送信間隔を長くするように調整する。即ち、HTTPリクエストに含める音声データ量を、その時点でのネットワーク構成/環境における恒常的なメッセージ送受信時間分以上のデータ量にする。具体的には、メッセージ処理部104が送信バッファ103を常に監視し、所定の閾値まで音声データが蓄積されたタイミングで、音声データを送信バッファ103から取得し、HTTPリクエストの中に埋め込んでサーバ装置へ送信する。このとき、転送時間計測部105により時間計測を開始し、サーバ装置からレスポンスを受信するまでの時間を計測する。送信データ量決定部106は、この計測時間の統計処理を実施し、HTTPメッセージの送受信にかかる時間の恒常的な変動傾向(一時的でない)を判断して、送信バッファ103の前記閾値を変更する。
In such a tendency, in the present embodiment, adjustment is made to increase the amount of data to be transmitted at a time to increase the transmission interval. That is, the amount of voice data included in the HTTP request is set to a data amount equal to or more than the constant message transmission / reception time in the network configuration / environment at that time. Specifically, the
このような本実施の形態の構成において、例えば、HTTPリクエストをプロキシサーバ装置経由して送る、またはクライアント装置101上でアンチウイルスソフトを使用するなど、実際のネットワーク構成の遅延要因が予め分かっている場合には、前記送信バッファ103の閾値を、これらの遅延要因を考慮して決定する。これによって、通信するネットワーク構成に最適な初期値を閾値として使用することができる。さらに、予め分かっているネットワーク構成への対応だけでなく、上述したような恒常的なネットワーク遅延が発生しているようなネットワーク環境でも、過去からの計測時間の統計を取ることで動的に最適な閾値に変更することができる。
In such a configuration of the present embodiment, for example, the delay factor of the actual network configuration is known in advance such as sending an HTTP request via the proxy server device or using anti-virus software on the
これにより、HTTPリクエストに含める音声データ量を、使用するネットワーク環境に最適な単位に設定し、且つHTTPリクエストの送信間隔を一定にすることができるので、サーバ装置200側でバッファアンダーフローが発生することを防ぐことができ、音途切れや不快なエコーを回避することが可能になる。
As a result, the amount of audio data included in the HTTP request can be set to an optimum unit for the network environment to be used, and the HTTP request transmission interval can be made constant, so that a buffer underflow occurs on the
なお、本発明の目的は、実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成される。 Note that an object of the present invention is to supply a storage medium recording a program code of software that implements the functions of the embodiment to a system or apparatus, and a computer (or CPU, MPU, etc.) of the system or apparatus as the storage medium. This can also be achieved by reading and executing the stored program code.
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。 In this case, the program code itself read from the storage medium realizes the functions of the above-described embodiments, and the program code and the storage medium storing the program code constitute the present invention.
また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。または、プログラムコードをネットワークを介してダウンロードしてもよい。 Examples of the storage medium for supplying the program code include a floppy (registered trademark) disk, a hard disk, a magneto-optical disk, a CD-ROM, a CD-R, a CD-RW, a DVD-ROM, a DVD-RAM, and a DVD. -RW, DVD + RW, magnetic tape, nonvolatile memory card, ROM, etc. can be used. Alternatively, the program code may be downloaded via a network.
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。 Further, by executing the program code read by the computer, not only the functions of the above-described embodiments are realized, but also an OS (operating system) running on the computer based on the instruction of the program code. A case where part or all of the actual processing is performed and the functions of the above-described embodiments are realized by the processing is also included.
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。 Further, after the program code read from the storage medium is written in a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer, the function expansion is performed based on the instruction of the program code. This includes the case where the CPU or the like provided in the board or the function expansion unit performs part or all of the actual processing, and the functions of the above-described embodiments are realized by the processing.
この場合、上記プログラムは、該プログラムを記憶した記憶媒体から直接、またはインターネット、商用ネットワーク、もしくはローカルエリアネットワーク等に接続された不図示の他のコンピュータやデータベース等からダウンロードすることにより供給される。 In this case, the program is supplied by downloading directly from a storage medium storing the program or from another computer or database (not shown) connected to the Internet, a commercial network, a local area network, or the like.
100 音声入力装置
101 クライアント装置
102 音声データ処理部
103 送信バッファ
104 メッセージ処理部
105 転送時間計測部
106 送信データ量決定部
107 ネットワーク処理部
108 ネットワーク
201 サーバ装置
202 受信バッファ
205 音声出力装置
901 CPU
902 ROM
100
902 ROM
Claims (6)
入力装置から入力されたデータを一時的に記憶するバッファリング手段と、
前記バッファリング手段に記憶したデータを含むリクエストメッセージを作成するリクエストメッセージ作成手段と、
前記作成されたリクエストメッセージを前記外部装置へ送信し、該外部装置から前記リクエストメッセージに対するレスポンスメッセージを受信するメッセージ送受信手段と、
前記リクエストメッセージの送信から前記レスポンスメッセージを受信するまでのメッセージ転送時間を計測する転送時間計測手段と、
前記転送時間計測手段で計測した前記メッセージ転送時間に基づいて、前記リクエストメッセージに含まれるデータのデータ量を決定するデータ量決定手段とを備えたことを特徴とするデータ伝送装置。 In a data transmission device that transmits data to an external device in real time via a network,
Buffering means for temporarily storing data input from the input device;
Request message creating means for creating a request message including data stored in the buffering means;
A message transmitting / receiving means for transmitting the created request message to the external device and receiving a response message to the request message from the external device;
A transfer time measuring means for measuring a message transfer time from transmission of the request message to reception of the response message;
A data transmission apparatus comprising: a data amount determining unit that determines a data amount of data included in the request message based on the message transfer time measured by the transfer time measuring unit.
前記転送時間計測手段によって該メッセージ転送時間が増加していると判断された場合は前記リクエストメッセージの1つに含まれるデータ量を増加し、該メッセージ転送時間が減少傾向にあると判断された場合には前記データ量を減少させることを特徴とする請求項1に記載のデータ伝送装置。 The data amount determining means includes
When it is determined by the transfer time measuring means that the message transfer time is increasing, the amount of data included in one of the request messages is increased, and when it is determined that the message transfer time is decreasing The data transmission apparatus according to claim 1, wherein the data amount is reduced.
入力された連続データを一時的にバッファリング手段に記憶する工程と、
前記バッファリング手段に記憶したデータを含むリクエストメッセージを作成するリクエストメッセージ作成工程と、
前記リクエストメッセージを前記外部装置へ送信し、該外部装置から前記リクエストメッセージに対するレスポンスメッセージを受信するメッセージ送受信工程と、
前記リクエストメッセージの送信から前記レスポンスメッセージを受信するまでのメッセージ転送時間を計測する転送時間計測工程と、
前記転送時間計測工程で計測した前記メッセージ転送時間に基づいて、前記リクエストメッセージに含まれるデータのデータ量を決定するデータ量決定工程とを実行することを特徴とするデータ伝送装置の制御方法。 In a control method of a data transmission device that transmits data to an external device in real time via a network,
Temporarily storing the input continuous data in the buffering means;
A request message creating step for creating a request message including data stored in the buffering means;
A message transmission / reception step of transmitting the request message to the external device and receiving a response message to the request message from the external device;
A transfer time measuring step of measuring a message transfer time from transmission of the request message to reception of the response message;
A method for controlling a data transmission device, comprising: performing a data amount determination step of determining a data amount of data included in the request message based on the message transfer time measured in the transfer time measurement step.
入力された連続データを一時的にバッファリング手段に記憶するステップと、
前記バッファリング手段に記憶した連続データを含むリクエストメッセージを作成するリクエストメッセージ作成ステップと、
前記リクエストメッセージを前記外部装置へ送信し、該外部装置から前記リクエストメッセージに対するレスポンスメッセージを受信するメッセージ送受信ステップと、
前記リクエストメッセージの送信から前記レスポンスメッセージを受信するまでのメッセージ転送時間を計測する転送時間計測ステップと、
前記転送時間計測ステップで計測した前記メッセージ転送時間に基づいて、前記リクエストメッセージに含まれるデータのデータ量を決定するデータ量決定ステップとを有することを特徴とする制御プログラム。 A computer-readable control program for executing a data transmission device control method for transmitting data to an external device in real time via a network,
Temporarily storing the input continuous data in the buffering means;
A request message creating step for creating a request message including continuous data stored in the buffering means;
A message transmission / reception step of transmitting the request message to the external device and receiving a response message to the request message from the external device;
A transfer time measuring step for measuring a message transfer time from transmission of the request message to reception of the response message;
A control program comprising: a data amount determining step for determining a data amount of data included in the request message based on the message transfer time measured in the transfer time measuring step.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005180628A JP2007005894A (en) | 2005-06-21 | 2005-06-21 | Data transmission apparatus and control method thereof, and control program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005180628A JP2007005894A (en) | 2005-06-21 | 2005-06-21 | Data transmission apparatus and control method thereof, and control program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007005894A true JP2007005894A (en) | 2007-01-11 |
Family
ID=37691108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005180628A Pending JP2007005894A (en) | 2005-06-21 | 2005-06-21 | Data transmission apparatus and control method thereof, and control program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007005894A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009077108A (en) * | 2007-09-20 | 2009-04-09 | Sony Corp | Receiver, receiving method and computer program |
JP2010122933A (en) * | 2008-11-20 | 2010-06-03 | Fujitsu Ltd | Method and device for transferring content |
WO2019244966A1 (en) * | 2018-06-22 | 2019-12-26 | 日本電気株式会社 | Communication device, communication method, and program |
-
2005
- 2005-06-21 JP JP2005180628A patent/JP2007005894A/en active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009077108A (en) * | 2007-09-20 | 2009-04-09 | Sony Corp | Receiver, receiving method and computer program |
JP2010122933A (en) * | 2008-11-20 | 2010-06-03 | Fujitsu Ltd | Method and device for transferring content |
WO2019244966A1 (en) * | 2018-06-22 | 2019-12-26 | 日本電気株式会社 | Communication device, communication method, and program |
JPWO2019244966A1 (en) * | 2018-06-22 | 2021-06-24 | 日本電気株式会社 | Communication equipment, communication methods and programs |
US11588736B2 (en) | 2018-06-22 | 2023-02-21 | Nec Corporation | Communication apparatus, communication method, and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101153153B1 (en) | Media transrating over a bandwidth-limited network | |
JP4333655B2 (en) | Content receiving apparatus and content receiving method | |
JP4491257B2 (en) | Controlling the admission of data streams to the network based on end-to-end measurements | |
EP2775673A1 (en) | Content reproduction information estimating device, method and program | |
JP2011517165A (en) | Data transfer method and system for loudspeakers in a digital sound reproduction system | |
JP2008048182A (en) | Communication processing apparatus, communication control method, and computer program | |
JP2005244605A (en) | Streaming content distribution control system, program and recording medium storing the same | |
CN104022845A (en) | Method, apparatus and system for adjusting bit rate of data block | |
WO2013128623A1 (en) | Image-transmission method, program, and device | |
JP5335354B2 (en) | Information transmitting apparatus, information transmitting apparatus control method, and computer program | |
KR20140105297A (en) | Method and Apparatus of Dynamic Buffering for Providing Streaming Service | |
KR20080012920A (en) | Method and apparatus for adaptive polling in a wireless communication device | |
JP2007005894A (en) | Data transmission apparatus and control method thereof, and control program | |
JP2023515003A (en) | How to play network-streamed content in a client device player | |
JP2019092133A (en) | Transmission apparatus, reception apparatus, communication system, and program | |
JP2015104075A (en) | Medium reproduction control device, medium reproduction control method and program | |
JP2004147030A (en) | Receiver, data communication system and data communication method | |
JP6378631B2 (en) | Video distribution system and video distribution method | |
US8095228B2 (en) | Data distribution apparatus, its control method, program, and storage medium | |
KR20200018493A (en) | Methods and apparatuses for streaming data | |
JP5257373B2 (en) | Packet transmission device, packet transmission method, and packet transmission program | |
JP4170251B2 (en) | COMMUNICATION CONTROL DEVICE, PROGRAM THEREOF, AND RECORDING MEDIUM | |
KR100931344B1 (en) | Method for providing video streaming service and system, server and user terminal for same | |
JP2007336182A (en) | Content distribution system, and network server | |
JP6194890B2 (en) | Multimedia data communication apparatus, method, program, and effective data increase rate calculation apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD05 | Notification of revocation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7425 Effective date: 20070626 |