JP2005045741A - Device, method and system for voice communication - Google Patents
Device, method and system for voice communication Download PDFInfo
- Publication number
- JP2005045741A JP2005045741A JP2003280434A JP2003280434A JP2005045741A JP 2005045741 A JP2005045741 A JP 2005045741A JP 2003280434 A JP2003280434 A JP 2003280434A JP 2003280434 A JP2003280434 A JP 2003280434A JP 2005045741 A JP2005045741 A JP 2005045741A
- Authority
- JP
- Japan
- Prior art keywords
- data
- packet
- buffer
- control
- capacity
- 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.)
- Granted
Links
Images
Abstract
Description
本発明は、例えばVoIP(Voice over Internet Protocol)を使用したいわゆるインターネット電話等を行う通話装置、通話方法及び通話システムに関し、特に高音質の音声及び音響からなる実時間音響データをやり取りするために好適な通話装置、通話方法及び通話システムに関する。 The present invention relates to a call device, a call method, and a call system that perform a so-called Internet telephone using, for example, VoIP (Voice over Internet Protocol), and is particularly suitable for exchanging real-time acoustic data composed of high-quality voice and sound. TECHNICAL FIELD The present invention relates to a simple call device, a call method, and a call system.
音声をIPパケットにしてカプセル化することでIP網を介した音声通話を可能とする技術として、VoIPがある。VoIPによる通話を行うためには、通話したい相手の情報の取得、通話したい相手の呼び出し、応答といった一連の情報交換をする必要があり、これらの目的のために、SIP(Session Initiation Protocol)等の呼制御プロトコルが使用される。 VoIP is a technology that enables voice communication via an IP network by encapsulating voice in IP packets. In order to make a call by VoIP, it is necessary to exchange a series of information such as acquisition of information on the other party to be called, calling of the other party to be called, and response. For these purposes, SIP (Session Initiation Protocol) etc. A call control protocol is used.
このようなVoIPを含め、インターネット等の通信回線網を利用し、実時間動画像データや音声データ等の実時間音響データ等の実時間データを送信するシステムが増えている。インターネット等の公衆回線網においては、複数の利用者がネットワークの帯域を供給しているため、輻輳制御手法、すなわち輻輳の回避及び輻輳発生時の鎮静化手法は大きな課題となっている。従って、実時間性を重要とする通信形態が増えるという変化に伴い、実時間データの通信における輻輳制御手法が重要になってきている(下記特許文献1参照)。
There are an increasing number of systems that transmit real-time data such as real-time audio data such as real-time moving image data and audio data using a communication network such as the Internet including such VoIP. In public line networks such as the Internet, since a plurality of users supply network bandwidth, a congestion control method, that is, a congestion avoidance method and a sedation method at the time of occurrence of congestion is a major issue. Therefore, with a change in the number of communication modes in which real-time property is important, congestion control techniques in real-time data communication have become important (see
ところで、従来、VoIPを使用した実時間音声コミュニケーションにおいては、人の音声の主たる情報が含まれているのは、4〜5KHz付近の周波数帯域であったため、チャンネル数は1、標本化周波数を8KHz〜16KHzに設定するのが常道であったが、このような狭い帯域では背景雑音や雰囲気等を伝達するのは困難である。 By the way, conventionally, in real-time voice communication using VoIP, the main information of human voice is included in the frequency band near 4 to 5 KHz, so the number of channels is 1 and the sampling frequency is 8 KHz. Although it is usual to set the frequency to ˜16 KHz, it is difficult to transmit background noise and atmosphere in such a narrow band.
チャンネル数を2以上に設定し、標本化周波数をCDDA(Compact Disk Digital Audio)並の44.1KHzまで引き上げると背景雑音や雰囲気等も伝送でき、また加えて、音声コミュニケーションに、既存の楽曲コンテンツを流用した高音質なBGM機能等を付加することなども可能になる。 If the number of channels is set to 2 or more and the sampling frequency is raised to 44.1 KHz, which is the same level as CDDA (Compact Disk Digital Audio), background noise and atmosphere can be transmitted. In addition, existing music content can be used for voice communication. It is also possible to add a diverted high-quality BGM function or the like.
ここで、チャンネル数を2以上に設定し、標本化周波数をCDDA並の44.1KHzまで引き上げて、無圧縮の16bits LinearPCM(Phase Code Modulation:パルス符号変調)のデータを伝送する場合、ネットワーク上の伝送ビットレートは1411.2Kbps以上になってしまい、実インターネット環境で利用するのは難しい。したがって、現状では高能率符号化方式を用いる必要があるが、近時のCPUの性能の向上により、実時間音声コミュニケーションにおいても高能率符号化方式を採用することが可能になってきている。 Here, when the number of channels is set to 2 or more, the sampling frequency is raised to 44.1 KHz, which is the same level as CDDA, and uncompressed 16-bit Linear PCM (Phase Code Modulation) data is transmitted, The transmission bit rate becomes 1411.2 Kbps or more, and it is difficult to use it in an actual Internet environment. Therefore, it is necessary to use a high-efficiency encoding method at present, but with the recent improvement in CPU performance, it has become possible to adopt a high-efficiency encoding method even in real-time voice communication.
なお、高能率符号化方式にはいくつかの方式があるが、先ず周波数分解を行い、信号を複数のサブバンドに分割したうえ、それぞれのブロックを、聴覚心理特性を利用して符号化精度を適応的に変化させて、必要最低限のビット数で所定の周波数成分をエントロピー符号するものが殆どである。この高能率符号化により、符号化する周波数成分に応じてビットレートは可変になる。 There are several high-efficiency encoding methods. First, frequency decomposition is performed, the signal is divided into a plurality of subbands, and each block is encoded using the psychoacoustic characteristics. Most of them adaptively change and entropy code a predetermined frequency component with a minimum number of bits. With this high-efficiency encoding, the bit rate becomes variable according to the frequency component to be encoded.
このような高品質な実時間音響データの送受信をインターネットを介して行う場合、受信するデータパケットに、エラー又はロストパケット等の欠落パケットがあると、品質を維持できない。したがって、このような欠落したパケットは、通常受信側から送信側へパケットの再送要求を送り、再び送信してもらう処理をする。その際、往復伝播遅延RTT(Round Trip Time)を計測しておき、このRTTに基づき、受信側が再送要求したパケットが、受信側において再生処理される予定時刻までに受信できるか否かが判断される(下記特許文献2)。
When such high-quality real-time acoustic data is transmitted / received via the Internet, the quality cannot be maintained if there are missing packets such as errors or lost packets in the received data packets. Therefore, such a lost packet is normally processed by sending a packet retransmission request from the receiving side to the transmitting side and having it transmitted again. At that time, a round trip propagation delay RTT (Round Trip Time) is measured, and based on this RTT, it is determined whether or not a packet requested for retransmission by the receiving side can be received by a scheduled time for reproduction processing on the receiving side. (
ところで、通常、実時間音声コミュニケーションにおいては、ネットワーク揺らぎは、RFC(Request for Comments:インターネット技術標準文書)1889に記述された下記計算式から、2つのパケットP(i)、P(j)の送信時及び受信時における到着間隔の差Dを求め、これによりジッタJを算出することができる。
D(i,j)=(Rj−Ri)−(Sj−Si)=(Rj−Sj)−(Ri−Si)
J=J+(|D(i−1,i)|−J)/16
これにより、ミリ秒・マイクロ秒単位で算出し、揺らぎ吸収バッファの容量を自動調整することで、伝送の揺らぎが多少変化しても吸収できるようになされている。
By the way, normally, in real-time voice communication, network fluctuation is caused by transmission of two packets P (i) and P (j) from the following formula described in RFC (Request for Comments) 1889. The difference D between arrival times at the time and at the time of reception is obtained, and thereby the jitter J can be calculated.
D (i, j) = (Rj−Ri) − (Sj−Si) = (Rj−Sj) − (Ri−Si)
J = J + (| D (i-1, i) | -J) / 16
As a result, calculation is performed in units of milliseconds and microseconds, and the capacity of the fluctuation absorbing buffer is automatically adjusted so that transmission fluctuation can be absorbed even if it slightly changes.
しかしながら、このような方式で自動調整されるバッファの容量では、特定の周期で大幅にパケットが欠落したり、到着間隔が唐突に大きく揺らぐ場合など、音が寸断されてしまう可能性が否めない。特に、音声データとBGM等の付加データとを合成した高音質な実時間音響データをやり取りする実時間音声コミュニケーションを行う場合は、上述したように、欠落パケットがあると音質が低下してしまうが、再送要求できる時間に限りがあり、品質を維持できない場合がある。 However, with such a buffer capacity that is automatically adjusted by this method, there is a possibility that the sound may be cut off when a packet is largely dropped at a specific period or when the arrival interval fluctuates suddenly. In particular, when performing real-time voice communication for exchanging high-quality real-time acoustic data obtained by synthesizing voice data and additional data such as BGM, as described above, the sound quality deteriorates if there are missing packets. There is a limit to the time for which retransmission can be requested, and quality may not be maintained.
これに対し、例えば音声のみの実時間音響データをやりとりするような場合には、情報量が小さく、必ずしも再送要求する必要がないので、揺らぎ吸収バッファの容量は比較的小さくしてもよい。このように、従来は、低遅延を望むユーザと高音質を臨むユーザとを同時に満足させることが困難であった。 On the other hand, for example, when exchanging real-time acoustic data of only voice, the amount of information is small and it is not always necessary to request retransmission, so the capacity of the fluctuation absorbing buffer may be relatively small. Thus, conventionally, it has been difficult to satisfy a user who desires low delay and a user who faces high sound quality at the same time.
本発明は、このような従来の実情に鑑みて提案されたものであり、インターネットを介して通話をする際、必要に応じて応答性又は音質のいずれにも対応することができる通話装置、通話方法及び通話システムを提供することを目的とする。 The present invention has been proposed in view of such a conventional situation, and when making a call via the Internet, the call device and the call that can cope with either responsiveness or sound quality as necessary. It is an object to provide a method and a call system.
上述した目的を達成するために、本発明に係る通話装置は、インターネットを介して実時間音響データの送受信を行う通話装置において、音声を含む実時間音響データを圧縮符号化する圧縮符号化手段と、上記圧縮符号化手段により圧縮符号化されたデータを格納したデータパケットを生成するデータパケット生成手段と、少なくとも上記データパケットの送受信を管理する管理情報を格納した制御パケットを生成する制御パケット生成手段と、上記データパケット及び上記制御パケットを上記インターネットを介して1以上の他の通話装置に送信する送信手段と、上記1以上の他の通話装置からのデータパケット及び制御パケットを受信する受信手段と、上記受信したデータパケットに格納された圧縮符号化データを復号伸張する復号伸張手段と、上記復号伸張したデータをバッファリングするバッファと、上記バッファの容量をユーザの指示に基づき制御する制御手段とを有することを特徴とする。 In order to achieve the above-described object, a communication device according to the present invention includes a compression encoding unit that compresses and encodes real-time acoustic data including voice in a communication device that transmits and receives real-time acoustic data via the Internet. A data packet generating means for generating a data packet storing data compressed and encoded by the compression encoding means, and a control packet generating means for generating a control packet storing at least management information for managing transmission / reception of the data packet Transmitting means for transmitting the data packet and the control packet to one or more other call devices via the Internet; and receiving means for receiving the data packet and control packet from the one or more other call devices Decoding / decompressing the compressed / encoded data stored in the received data packet And having a stage, a buffer for buffering the data the decoded stretching, and control means for controlling on the basis of the capacity of the buffer to the user's instructions.
本発明においては、復号伸張したデータをバッファリングするバッファの容量をユーザが決定することができ、伝送情報量が多く高音質なデータの送受信の際には音質を維持するためにバッファ容量を大きくし、音声のみの通話を行うような通常の通話においては、低遅延を目的としてバッファを小さくする等、ユーザのニーズに合わせたデータ受信を行うことができる。 In the present invention, the user can determine the capacity of the buffer for buffering the decoded and decompressed data, and the buffer capacity is increased in order to maintain the sound quality when transmitting and receiving high sound quality data with a large amount of transmission information. However, in a normal call such as a voice-only call, it is possible to receive data that meets the user's needs, such as reducing the buffer for the purpose of low delay.
また、上記制御手段は、少なくとも上記バッファの容量を示すバッファ情報を上記制御パケットに格納させることができ、通話相手となる他の通話装置に対し、通話装置を使用しているユーザが決定したバッファのサイズを通知することができる。 In addition, the control means can store at least buffer information indicating the capacity of the buffer in the control packet, and is determined by a user using the call device with respect to another call device as a call partner. The size of can be notified.
更に、上記制御手段は、上記他の通話装置からの制御パケットに格納されたバッファ情報に基づき上記データパケットの伝送レートを制御することができ、通話相手となる他の通話装置のバッファ容量に合わせて伝送する実時間音響データの圧縮符号化率等を変更し、伝送レートを可変とすることができる。 Furthermore, the control means can control the transmission rate of the data packet based on the buffer information stored in the control packet from the other call device, and can match the buffer capacity of the other call device as the call partner. The transmission rate can be made variable by changing the compression coding rate of the real-time acoustic data to be transmitted.
更にまた、上記受信したデータパケットをバッファリングする揺らぎ吸収バッファを有し、該揺らぎ吸収バッファの容量は、受信するデータパケットの伝送レートに基づき自動調整されるものとすることができ、ユーザ操作で容量が可変なバッファに対し、伝送レートに応じて最低限度の容量のバッファを確保することができ、例えば応答性を重視するような通話の場合にはユーザ操作が可能なバッファの容量をゼロにしてもよい。 Furthermore, it has a fluctuation absorbing buffer for buffering the received data packet, and the capacity of the fluctuation absorbing buffer can be automatically adjusted based on the transmission rate of the received data packet. A buffer with a minimum capacity can be secured according to the transmission rate for a buffer with a variable capacity. May be.
また、上記制御手段は、上記他の通話装置からのデータパケットの伝送レートを計測し、上記ユーザに通知してもよく、ユーザは、音質を上げるためにバッファ容量を大きくするか否か等をこの伝送レートに基づき決定してもよい。 Further, the control means may measure the transmission rate of the data packet from the other call device and notify the user, and the user determines whether or not to increase the buffer capacity in order to improve sound quality. You may determine based on this transmission rate.
更に、上記制御手段は、上記バッファの容量に応じて生成された欠落データパケットの再送要求を指示する再送要求指示情報を生成し、上記制御パケットに格納させることができ、例えばユーザ操作により容量が可変な上記バッファを大きくしておけば、再送要求する時間を長くとることができ、高品質なデータを維持することができる。 Further, the control means can generate retransmission request instruction information for instructing a retransmission request for a missing data packet generated according to the capacity of the buffer and store the retransmission request instruction information in the control packet. If the variable buffer is made larger, the time required for retransmission can be increased, and high-quality data can be maintained.
本発明に係る通話方法は、2以上の通話装置の間でインターネットを介して実時間音響データの送受信を行う通話方法において、音声を含む実時間音響データを圧縮符号化する圧縮符号化工程と、上記圧縮符号化工程にて圧縮符号化されたデータを格納したデータパケットを生成するデータパケット生成工程と、少なくとも上記データパケットの送受信を管理する管理情報を格納した制御パケットを生成する制御パケット生成工程と、上記データパケット及び上記制御パケットを上記インターネットを介して1以上の他の通話装置に送信する送信工程と、上記1以上の他の通話装置からのデータパケット及び制御パケットを受信する受信工程と、上記受信したデータパケットに格納された圧縮符号化データを復号伸張する復号伸張工程と、上記復号伸張したデータをバッファリングするバッファの容量をユーザの指示に基づき制御する制御工程とを有することを特徴とする。 The call method according to the present invention is a call method for transmitting and receiving real-time acoustic data between two or more call devices via the Internet, and a compression encoding step for compressing and encoding real-time acoustic data including speech; A data packet generating step for generating a data packet storing the data encoded by the compression encoding step, and a control packet generating step for generating a control packet storing at least management information for managing transmission / reception of the data packet A transmission step of transmitting the data packet and the control packet to one or more other communication devices via the Internet, and a reception step of receiving a data packet and a control packet from the one or more other communication devices. A decoding / decompressing step for decoding / decompressing the compressed and encoded data stored in the received data packet; Characterized by a control step of controlling, based the capacity of the buffer for buffering the decoded decompressed data to the user's instructions.
本発明に係る通話システムは、2以上の通話装置がインターネットを介して実時間音響データの送受信を行う通話システムにおいて、各上記通話装置は、音声を含む実時間音響データを圧縮符号化する圧縮符号化手段と、上記圧縮符号化手段により圧縮符号化されたデータを格納したデータパケットを生成するデータパケット生成手段と、少なくとも上記データパケットの送受信を管理する管理情報を格納した制御パケットを生成する制御パケット生成手段と、上記データパケット及び上記制御パケットを上記インターネットを介して1以上の他の通話装置に送信する送信手段と、上記1以上の他の通話装置からのデータパケット及び制御パケットを受信する受信手段と、上記受信したデータパケットに格納された圧縮符号化データを復号伸張する復号伸張手段と、上記復号伸張したデータをバッファリングするバッファと、上記バッファの容量をユーザの指示に基づき制御する制御手段とを有し、2つの通話装置のうち一方の上記通信装置の上記制御手段は、少なくとも上記バッファの容量を示すバッファ情報を上記制御パケットに格納させ、他方の通話装置の上記制御手段は、上記一方の通話装置からの制御パケットに格納されたバッファ情報に基づき当該一方の通話装置に送信するデータパケットの伝送レートを制御することを特徴とする。 The call system according to the present invention is a call system in which two or more call devices transmit and receive real-time acoustic data via the Internet, and each of the call devices compresses and encodes real-time acoustic data including voice. Generating means, data packet generating means for generating data packets storing data encoded by the compression encoding means, and control for generating control packets storing at least management information for managing transmission / reception of the data packets A packet generating means; a transmitting means for transmitting the data packet and the control packet to one or more other communication devices via the Internet; and a data packet and a control packet from the one or more other communication devices are received. Receiving means, and decoding and decompressing the compressed encoded data stored in the received data packet. Decoding / decompressing means, a buffer for buffering the decoded / decompressed data, and control means for controlling the capacity of the buffer based on a user's instruction. The control means stores at least buffer information indicating the capacity of the buffer in the control packet, and the control means of the other call device is based on the buffer information stored in the control packet from the one call device. The transmission rate of the data packet transmitted to the telephone apparatus is controlled.
本発明においては、復号伸張した無圧縮のデータをバッファリングするバッファの容量をユーザ操作に応じて決定することができ、更に、ユーザが決定したバッファ容量は、制御パケットにて通信相手となる通話装置へ伝えられ、これを受けた通話装置は、通話相手のバッファに応じた処理、例えば圧縮符号化方式を変更して伝送レートを可変に設定する等の処理を実行することができる。 In the present invention, the capacity of a buffer for buffering uncompressed data that has been decoded and expanded can be determined in accordance with a user operation, and the buffer capacity determined by the user can be determined by a call that is a communication partner in a control packet. Upon receiving the notification, the call device can execute processing according to the buffer of the call partner, for example, processing such as changing the compression encoding method and variably setting the transmission rate.
本発明に係る通話装置によれば、インターネットを介して実時間音響データの送受信を行う通話装置において、音声を含む実時間音響データを圧縮符号化する圧縮符号化手段と、上記圧縮符号化手段により圧縮符号化されたデータを格納したデータパケットを生成するデータパケット生成手段と、少なくとも上記データパケットの送受信を管理する管理情報を格納した制御パケットを生成する制御パケット生成手段と、上記データパケット及び上記制御パケットを上記インターネットを介して1以上の他の通話装置に送信する送信手段と、上記1以上の他の通話装置からのデータパケット及び制御パケットを受信する受信手段と、上記受信したデータパケットに格納された圧縮符号化データを復号伸張する復号伸張手段と、上記復号伸張したデータをバッファリングするバッファと、上記バッファの容量をユーザの指示に基づき制御する制御手段とを有するので、例えばバッファを大きくすると欠落パケットの再送要求可能な時間を長くして伝送情報量が多いような高音質なデータの品質を維持することができ、一方、音声のみで低遅延で応答性を重視するような通話を行うような通常の通話においては、バッファを小さくする等、ユーザのニーズに合わせたデータ受信を行うことができる。 According to the communication device according to the present invention, in the communication device that transmits and receives real-time acoustic data via the Internet, the compression encoding means that compresses and encodes real-time acoustic data including voice, and the compression encoding means Data packet generating means for generating a data packet storing compression-encoded data, control packet generating means for generating a control packet storing at least management information for managing transmission / reception of the data packet, the data packet and the data packet Transmitting means for transmitting a control packet to one or more other communication devices via the Internet; receiving means for receiving data packets and control packets from the one or more other communication devices; and receiving data packets Decoding / decompressing means for decoding / decompressing the stored compressed encoded data, and the decoding / decompressing unit A buffer for buffering data and a control means for controlling the capacity of the buffer based on a user's instruction. For example, if the buffer is enlarged, the amount of time required for retransmission of missing packets is lengthened and the amount of transmission information is large. The quality of such high sound quality data can be maintained. On the other hand, the user needs such as reducing the buffer size in normal calls where only voice is used and low delay and responsiveness is important. It is possible to receive data in accordance with.
また、本発明に係る通信システムにおいては、各通話装置のユーザがバッファの容量を所望の容量として、ユーザニーズにあわせたデータ受信を行うことができると共に、データの送信側においては、通話相手のバッファ容量を制御パケットにより知ることができ、通話相手のニーズに合わせたデータ送信を行うことができる。 In the communication system according to the present invention, the user of each communication device can receive data according to user needs by setting the buffer capacity to a desired capacity. The buffer capacity can be known from the control packet, and data transmission according to the needs of the other party can be performed.
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。本発明を、2以上の通話装置がインターネットを介してVoIPにより通話を行う通話装置としてのVoIPクライアント及びこれを備えた通話システムとしてのVoIPシステムに適用したものである。本実施の形態におけるVoIPクライアントは、BGMが付加されるような高音質な音声データであって音質を重視する場合と、通常の通話のように低遅延を重視する場合とをユーザ自身が選択することができるものである。 Hereinafter, specific embodiments to which the present invention is applied will be described in detail with reference to the drawings. The present invention is applied to a VoIP client as a call device in which two or more call devices make a call by VoIP over the Internet and a VoIP system as a call system including the VoIP client. The VoIP client according to the present embodiment allows the user to select a case where high sound quality audio data to which BGM is added and importance is attached to sound quality, and a case where importance is attached to low delay as in a normal call. It is something that can be done.
先ず、本実施の形態におけるVoIPを使用したネットワークコミュニケーションをオ行うVoIPシステムの概略について説明する。図1は、本実施の形態におけるVoIPシステムの一例を示す模式図である。本実施の形態におけるVoIPシステムでは、例えば2チャンネル以上で、且つユーザ間で、通話のみではなく様々な効果音及びBGM等も共有することができる高音質の音声コミュニケーションを実現するものである。なお、本実施の形態におけるVoIPシステムは、2つの通話装置(以下、VoIPクライアントという。)間で行なわれるものとするが、VoIPシステムを構成するVoIPクライアントは2つに限らず、従ってVoIPクライアントを介してネットワークコミュニケーションに参加可能な参加者は2以上であることは勿論である。 First, an outline of a VoIP system that performs network communication using VoIP in the present embodiment will be described. FIG. 1 is a schematic diagram showing an example of a VoIP system in the present embodiment. The VoIP system according to the present embodiment realizes high-quality voice communication that can share not only a call but also various sound effects and BGM, for example, between two or more channels and between users. Note that the VoIP system in the present embodiment is performed between two call devices (hereinafter referred to as VoIP clients). However, the number of VoIP clients constituting the VoIP system is not limited to two. Of course, there are two or more participants who can participate in network communication.
図1に示すように、VoIPシステム100は、例えばPC(Personal Computer)等のVoIPクライアント111と、これとインターネット130を介して接続されたVoIPクライアント121とを有する。
As shown in FIG. 1, the
このVoIPシステム100においては、VoIPクライアント111のユーザ110と、VoIPクライアント121のユーザ120とは、自身のVoIPクライアント111、121に搭載される後述するVoIP用のアプリケーション(ソフト・フォン)等と、例えばマイクロフォンとヘッドフォンとからなるヘッドセット又はマイクロフォンと受話器とからなるハンドセットとを使用し、インターネット130を介して通信相手とコミュニケーションを行う。
In the
インターネット130は、一般公衆回線等の通信回線や、情報通信ネットワークを複数接続することによって世界中に拡がったネットワーク環境である。現在、広帯域、高速な通信回線の普及によってブロードバンド伝送(Broadband Transmission)を可能としている。光ファイバー、非対称ディジタル加入者線、無線等を用い、500kbps以上の通信回線でネットワークを構成している。
The
このインターネット130には、VoIP通信を制御するVoIPサーバ131、及び音源データ132及びダウンロードユーザインフォメーション133等のデータを管理するウェブサーバ134等が接続されている。また、各VoIPクライアント111、121には、各VoIPクライアント111、121が有するウェブブラウザ112、122等によりウェブサーバ134からダウンロードするか、又は自身で購入若しくは編集した音源データ113、123が記憶されている。
Connected to the
ウェブサーバ134のデータベースに格納されている音源データ132、及びユーザがダウンロード等して所持している音源データ113、123は、例えばBGM(Back Ground Music)等に使用される音楽や、波の音・拍手の音・雷鳴・ベルの音等の各種効果音であり、これらの音源データは、ユーザ間のネットワークコミュニケーションにて使用することができる。
The
次に、このVoIPクライアントについて説明する。図2は、VoIPシステムを構成するVoIPクライアントの機能を示すブロック図である。図2に示すように、このようなインターネットコミュニケーションを行うためのVoIPクライアント20は、コミュニケーションに参加している参加者、即ち通話相手へデータを送信する送信手段21と、通話相手からのデータを受け取る受信手段41とを有する。
Next, the VoIP client will be described. FIG. 2 is a block diagram showing the functions of the VoIP client constituting the VoIP system. As shown in FIG. 2, the
送信手段21は、マイクが接続され、外部(ユーザ)の音声をキャッチするマイクキャプチャ(MIC capture)22と、例えばMP3(MPEG(Moving Picture Experts Group)1オーディオLayer3)、又はMPEG4等に圧縮された各種効果音(Sound Effect:SE)の音源ファイルが記憶された効果音ファイル記憶部23と、同じく圧縮された各種BGMの音源ファイルが記憶されたBGMファイル記憶部24と、効果音ファイル及びBGMファイルを読み出しデコードする夫々デコーダ25及び26と、マイクによりキャプチャした音、効果音、及びBGMのゲインを制御して音量調整するゲイン調整部27〜29と、これらの3つの音を合成する合成部30と、合成した音を圧縮符号化するエンコーダ31と、圧縮符号化されたデータをデータパケットとしてのRTP(Real-Time Transport Protocol)パケットに格納するデータパケット生成手段としてのパケット化部(packetize)32aと、後述するデコーダ46にてデコードされたデータをバッファリングするPCMバッファ(図示せず)の容量を制御すると共に、RTCP(Real-Time Control Protocol)パケットに格納する各種制御情報及びRTPパケットをコントロールする管理情報等を管理する制御部34と、制御情報及び管理情報等をRTCPパケットに格納する制御パケット生成手段としてのRTCPパケット化部32bと、RTPパケット及びRTCPパケット等を送信する送信部33とを有する。送信部33から送られたRTPパケットがインターネット130を介して通信対象となる他のVoIPクライアントに送信される。
The transmission means 21 is connected to a microphone, and is compressed into a microphone capture (MIC capture) 22 that catches the external (user) voice and, for example, MP3 (MPEG (Moving Picture Experts Group) 1 audio Layer 3) or MPEG4 Sound effect
一方、インターネット130を介して通信相手の送信手段21から送られるデータを受信する受信手段41は、RTPパケット及びRTCPパケット等を受信する受信部42と、受信したRTPパケットをデパケッタイズするRTPデパケット化部(depacketize)43aと、RTCPパケットをデパケッタイズするRTCPデパケット化部(depacketize)43bと、RTPパケットの到着時間を補正するデジッタ部(de-jitter)44と、送られたRTPパケットのエラーが生じた部分又は伝送中に損失した部分等の欠落部分を補償するパケット補償部(packet loss compensator)45と、パケット補償部45からのデータを復号伸張するデコーダ46と、例えばMP3、MPEG4等に圧縮された着信音の音源ファイルが記憶された着信音ファイル(Ring Tone File)記憶部47と、着信音ファイルを読み出しデコードするデコーダ48と、デコーダ46及び48のゲイン調整をする夫々ゲイン調整部49及び50と、上述した送信手段21における合成部30にて合成された送信用のPCMデータ、即ち送信者側自身の音源のゲイン調整するゲイン調整部52と、ゲイン調整された送信用のデータ、通信相手から送信されてきたデータ、及び着信音データを合成する合成部53と、合成部53にて合成されたデータをヘッドフォン(HP)へ出力する出力部54と、合成部53へ出力される着信音とは別に着信音のゲインを調整するゲイン調整部51と、ゲイン調整された着信音を外部へ出力するスピーカ(SP)55とを有する。
On the other hand, the receiving means 41 for receiving data sent from the transmitting means 21 of the communication partner via the
次に、このVoIPクライアントのデータの送受信方法について説明する。先ず、送信側において、マイクキャプチャ22は、マイクにより入力されたユーザの音声をキャッチしてゲイン調整部27へ送る。ゲイン調整部27は、音声データに対し、ユーザの指示によるか又は自動的に、ゲイン係数k1を乗算し、所望の大きさにゲイン調整する。
Next, a data transmission / reception method of the VoIP client will be described. First, on the transmission side, the
効果音ファイル記憶部23及びBGMファイル記憶部24は、例えばMP3、MPEG4等の圧縮技術により予め圧縮された音源ファイルが記憶された、例えばハードディスクドライブ(HDD)、ROM(read only memory)又は光磁気ディスクからなり、デコーダ25及び26は、これらの圧縮符号化データを読み出し、読み出した圧縮符号化データをPCMデータに変換する。更に、デコーダ25、26は、変換したPCMデータを夫々ゲイン調整部28、29へ送り、ゲイン調整部28、29は、送られてきたデータに対し、ユーザの指示によるか又は自動的に、夫々ゲイン係数k2及びk3を乗算して、所望の大きさにゲイン調整する。
The sound effect
ゲイン調整部27〜29にてゲイン調整された音声、BGM及び効果音は、合成部30に供給され、合成部30はゲイン調整部27〜29の出力を飽和処理しつつ加算し、この加算結果をエンコーダ31に出力する。エンコーダ31は、この加算結果をネットワークにて送信するために、例えばMPEG4等にエンコードする。エンコードされたデータは、リアルタイム・トランスポート・プロトコル(Real-time Transport Protocol:RTP)に従ってデータをパケット化するRTPパケット化(packetize)部32に供給される。
The sound, BGM, and sound effect that have been gain-adjusted by the
RTPパケット化部32aは、エンコードデータをRTPパケットにパケット化し、パケット化データは、送信部33からインターネット130を介して通信相手のVoIPクライアントへ送信される。
The
また、制御部34は、ユーザ操作に基づきデコーダ46の後段に設けられたPCMバッファの容量を制御するものである。そして、ユーザ操作によって変更されたPCMバッファの容量に応じて、伝送途中でエラーが生じたり又は失われたような欠落パケットの再送要求等の制御情報を生成する。また、このバッファ容量をRTCPパケットの拡張部分に格納させる。更に、本実施の形態におけるVoIPクライアントが送受信するRTCPパケットの拡張部分には、RTCP受信部42にて受信したパケットのジッタを相殺するための揺らぎ吸収バッファの容量等も記述することができる。なお、制御部34は、RTCPパケットのレポートブロック等に格納される各種管理情報を管理すると共に、RTCPパケットの拡張部分に格納される他の制御情報も生成することができる。他の制御情報としては、再生する前の無圧縮のPCMデータを格納しておくPCMバッファの容量通信相手となる他のVoIPクライアントが送信してくるRTPパケットに格納される実時間音響データの圧縮率を指定する例えばエンコード帯域及びサブバンド分割数等の情報等がある。
The
そして、RTCPパケット化部32bは、この制御情報及び管理情報をRTCPパケットにパケット化し、このパケット化データも送信部33からインターネット130を介して通信相手のVoIPクライアントへ送信される。
The
また、VoIPによる通話では、RTPパケットを送信する前に、制御部34がSIP等の呼制御プロトコルにより、送信部33を介して、通信対象となる他のVoIPクライアントに対し呼シグナリングを行う。そして、他のVoIPクライアントの間でRTP/RTCPセッションが確立された後、送信部33がRTPパケット及びRTCPパケットを送信することができる。RTP/RTCPパケットの詳細は後述する。
In a VoIP call, before transmitting an RTP packet, the
一方、受信側においては、受信部42がインターネット130を介して送られてくるRTPパケット及びRTCPパケット等を受信する。そして、RTCPデパケット化部43bは、受信したRTCPパケットを分解し、制御部34は、RTCPパケットの拡張部分に格納された上述のPCMバッファ情報を取り出し、これに応じて伝送レートを変更指せる等の処理をする。
On the other hand, on the receiving side, the receiving
また、受信部42が受信したRTPパケットをデパケット化部43が逆パケット化した後、デジッタ部44が例えばネットワークの状態等により受信が遅れる等して到着時刻が不均等になっているデータを補正し、等間隔化する。この補正は、逆パケット化されIP、UDP(User Datagram Protocol)から分解されたRTPのタイムスタンプ、シーケンシャルナンバーを基に行なわれる。その後、パケット補償部45がネットワークの送受信において欠落又は受信不能等となったパケットを保障する処理、具体的には、欠落したパケットの代わりにその前又は後のパケットと同じパケットを使用するようにしたり、欠落したパケットの再送要求をして改めて欠落パケットを受信するようにする等したりしてパケットの損失を補償する。こうして得られたMPEG4等の圧縮データはデコーダ46にてデコードされ、これをゲイン調整部49がユーザ指示又は自動的に、ゲイン係数k5を乗算してゲイン調整する。
Also, after the RTP packet received by the receiving
デコーダ48は、他のVoIPクライアントから呼シグナリングされたとき、即ち電話がかかってきたときにユーザに通知するための呼び出し用の呼び出し音又は呼び出し用に使用する音楽等からなる着信音の音源ファイルを着信音ファイル記憶部47から読み出す。ファイル記憶部47からの着信音データは、ユーザの所望によって予め選択されており、着信のタイミングに従って図示しないRAMに読み出されながらデコーダ48にてデコードされる。着信音の音源ファイルも、BGM等の音源ファイル等と同様にMP3、MPEG4等に圧縮されたものとなっており、ファイル単位の着信音データとしてファイル記憶部47に複数ファイル分記憶されている。そして、デコーダ48は、読み出した音源ファイルをデコードし、デコードされた音源データをゲイン調整部50、51がユーザ指示又は自動的に、夫々ゲイン係数k6、k7を乗算することでゲイン調整する。
The
合成部53は、着信音及び通信相手から送信されゲイン調整部49にてゲイン調整された、通話相手から受け取った受信データと、ゲイン調整部52から出力される自身の送信データとを加算処理する。ゲイン調整部52は、送信される送信データを通話相手と共有するため、送信データにユーザが設定するループバック音量レベルであるゲイン係数k4を乗算するものである。
The
そして、合成部53にて合成されたデータは、ヘッドフォン54を介して出力されユーザに伝えられる。また、着信音ファイル記憶部47から読み出された着信音データは、ヘッドフォン54とは別にスピーカ55からも出力されるよう構成されている。
Then, the data synthesized by the synthesizing
このようなVoIPクライアントにおいては、ユーザ操作に応じてPCMバッファの容量を可変に設定することができるので、ユーザニーズに応じて、BGM等を付加した高音質な実時間音響データをやり取りする際には、PCMバッファの容量を大きくして欠落パケット再送要求可能な時間を長く高音質を維持するようにし、音声のみの実時間音響データをやり取りする際には、例えばPCMバッファの容量をゼロにして応答性を重視するようにすることができる。 In such a VoIP client, the capacity of the PCM buffer can be variably set according to user operation. Therefore, when exchanging high-quality real-time acoustic data with BGM or the like according to user needs, Increases the capacity of the PCM buffer so as to maintain the high sound quality for a long period of time that can be requested for retransmission of missing packets. When exchanging real-time acoustic data only for voice, for example, the capacity of the PCM buffer is set to zero. Emphasis can be given to responsiveness.
更に、一般の電話に比してダイナミックレンジを広くすることで、ステレオ等の高音質の音声とBGM及び効果音等からなる音響とが合成された合成音を送受信することができ、従ってBGM等を付加しても会話(音声)をマスキングすることがない。また、効果音及びBGM等の音源ファイルから読み出した音と、通信者自身が話した音声、即ちマイク音とを別々にゲイン調整することができるため、効果音及びBGMの音量を所望のレベルに調整することができ、ユーザは、通信相手へ例えば自身の気分を伝えたりすることができる。 Furthermore, by widening the dynamic range as compared with a general telephone, it is possible to transmit and receive a synthesized sound in which a high-quality sound such as stereo and sound composed of BGM and sound effects are synthesized. Even if is added, conversation (voice) is not masked. In addition, since the sound read from the sound source file such as the sound effect and BGM and the sound spoken by the communication person, that is, the microphone sound can be adjusted separately, the sound effect and the volume of the BGM can be set to desired levels. The user can adjust the user's feelings, for example, to the communication partner.
また、着信音をヘッドフォン54とスピーカ55とで別々に出力することにより、例えばユーザがヘッドフォン54を使用してVoIPによる通信中に一時的にVoIPクライアント20から離れたり、通話が終了した後もヘッドフォン54をセットしたままにしておいたりした場合であっても、着信音がスピーカ55から外部に出力されるようにすることができる。
In addition, by outputting the ringtone separately from the
次に、このVoIPクライアントに使用されるソフトウェアについて説明する。図3は、一般的なPC向けVoIPクライアントアプリケーションを含むソフトウェアモジュールを示す図である。VoIPクライアントは、この図3に示す開放型システム間相互接続(Open System Interconnection:OSI)のアーキテクチャに基づく各階層のプロトコルに応じたソフトウェアモジュール1を実行することにより上述の図2に示した機能を達成する。
Next, software used for the VoIP client will be described. FIG. 3 is a diagram illustrating a software module including a general VoIP client application for a PC. The VoIP client performs the function shown in FIG. 2 by executing the
図3において下位層から上位層に向かって各階層を説明する。先ず、物理層2としての機能にはユニバーサル・シリアル・バス(Universal Serial Bus:USB)カメラドライバ2a、USBオーディオドライバ2b及び各種ドライバ2cがある。カメラドライバ2aからのビデオデータやオーディオドライバ2bからのオーディオデータの伝送条件の物理的条件を合わせるレイヤである。
In FIG. 3, each layer will be described from the lower layer to the upper layer. First, the functions as the
次に、データリンク層としての機能には、オペレーティングシステム(Operating System:OS)3がある。隣接ノード間の誤りのないデータ伝送を実行するためのものである。 Next, the function as the data link layer includes an operating system (OS) 3. This is for executing data transmission without error between adjacent nodes.
そして、ネットワーク層としての機能には、インターネットプロトコル(Internet Protocol:IP)制御部4がある。ネットワーク層は、データ送受信に使用する通信経路を選択し、フロー制御・品質制御などの通信制御を行うところである。信頼性を追求しないコネクションレス(Conectionless)パケット伝送プロトコルであるIPは、信頼性保証機能、フロー制御機能、エラー回復機能を上位階層(トランスポート層とアプリケーション層)に任せている。
The network layer function includes an Internet Protocol (IP)
トランスポート層としての機能には、トランスポート・コントロール・プロトコル(Transport Control Protocol:TCP)/ユーザ・データグラム・プロトコル(User Datagram Protocol:UDP)制御部5がある。
The function as the transport layer includes a transport control protocol (TCP) / user datagram protocol (UDP)
トランスポート層では、IPアドレスを使用してエンド・ツー・エンドの伝送を行う。ネットワークの種類に依存せず、要求される品質クラスに従ってフロー制御や順序制御を行う。TCPは信頼性保証機能を持ち、伝送したデータの各バイトにシーケンス番号を付け、受信側から受け取り通知(Acknowledgment:ACK(確認応答))が送られてこなければデータを再送する。UDPは、アプリケーション間のデータグラムの送信機能を提供する。IPネットワークを用いて、音声・動画像をストリーミング再生する場合、一般にエラー時に再送を行うTCPのようなトランスポート・プロトコルは使用できない。また、TCPは、1対1通信用のプロトコルであり、複数の相手に情報を送信することができない。そこで、このような用途には、UDPが用いられる。即ち、例えば再送制御を必要とする等、信頼性が高い通信を行う際にはTCP通信としてTCPパケットを生成し、音声及び映像データ、並びに後述するSIPを伝送する等、リアルタイム性が高い通信を行う際にはUDP通信としUDパケットを生成する。 In the transport layer, end-to-end transmission is performed using an IP address. Regardless of the type of network, flow control and sequence control are performed according to the required quality class. TCP has a reliability guarantee function, attaches a sequence number to each byte of transmitted data, and retransmits the data if no acknowledgment (Acknowledgment: ACK) is sent from the receiving side. UDP provides a function for transmitting datagrams between applications. When streaming an audio / video using an IP network, generally, a transport protocol such as TCP that retransmits when an error occurs cannot be used. TCP is a protocol for one-to-one communication, and information cannot be transmitted to a plurality of partners. Therefore, UDP is used for such applications. In other words, when performing highly reliable communication such as requiring retransmission control, TCP packets are generated as TCP communication, and communication with high real-time properties such as transmission of audio and video data and SIP described later is performed. When performing, UDP communication is generated as UDP communication.
UDPは、アプリケーションのプロセスがリモートマシン上の他のアプリケーションのプロセスへデータを伝送することを、最小のオーバーヘッドで行えるように設計されている。そのため、UDPのヘッダに入る情報は、送信元ポート番号、宛先ポート番号、データ長、チェックサムのみであり、TCPにあるパケットの順序を表す番号を入れるフィールドがないので、ネットワーク上で異なる経路を介して伝送されるなどによりパケットの順序が入れ替わってしまった場合に、その順序を正しい状態に戻す処理を行うことができない。また、送信時のタイムスタンプ等の時間情報を入れるフィールドは、TCPにもUDPにもない。 UDP is designed to allow application processes to transmit data to other application processes on a remote machine with minimal overhead. Therefore, the information entered in the UDP header is only the source port number, destination port number, data length, and checksum, and there is no field for entering the number indicating the order of packets in TCP. When the order of the packets is changed due to transmission through the network, processing for returning the order to the correct state cannot be performed. Also, there is no field for inputting time information such as a time stamp at the time of transmission in TCP or UDP.
セッション層6としての機能には、セッション・イニシエーション・プロトコル(Session Initiation Protocol:SIP)制御部11、RTP/RTCP制御部12、コーデック(codec)13、通話音とBGM及び/又は効果音の合成処理ソフトウェアを構成する保留音制御部14、BGM合成部15、及び着信音制御部16がある。セッション層6は、情報の伝送制御を行う。アプリケーション間における対話モードを管理して会話単位の制御を行う。
The function as the
SIP制御部11は、IPネットワーク上でマルチメディアセッションを確立・変更・終了するための、アプリケーション層6のシグナリングプロトコル(RFC3261で標準化)により呼制御を行う。
The
また、RTP/RTCP制御部12のうち、RTPは、音声データにBGM及び効果音等が合成され圧縮符号化された送信データを送信するためのプロトコルであり、送信データに時間情報及び順序情報を付与してネットワークを通じて音声データ送受信する機能を有する。また、RTCPは、RTPを制御する制御プロトコルであり、RTPのフロー制御、クロック同期及びデータの再生時刻の認識、情報源の認識等を行う機能を有する。
Of the RTP /
コーデック13は、送信音(伝送データ)を後述する高能率音響圧縮及び復号する機能を有する。
The
TCP/UDP制御部10は、例えば再送制御を必要とする等、信頼性が高い通信を行う際にはTCP通信としてTCPパケットを生成し、音声及び映像データ、並びに後述するSIPを伝送する等、リアルタイム性が高い通信を行う際にはUDP通信としUDパケットを生成し、IP制御部11は、TCPパケット又はUDPパケットをIPパケット化する機能を有する。
The TCP /
また、プレゼンテーション層としての機能には、VoIP通話制御7がある。プレゼンテーション層では、アプリケーションで送受信する情報の表現形式を管理して、データの変換や暗号化を行う。VoIP通話制御部7は、VoIP通話機能の全体をコントロールする制御部である。
The function as the presentation layer includes
最上層のアプリケーション層としての機能には、コンピュータを視覚的に操作するためのグラフィカルユーザインターフェース(Graphical User Interface:GUI)8がある。アプリケーション層は、ユーザプログラムで使用する通信機能の外部仕様を管理して、それに基づく情報のやり取りを行う層であり、GUI8は、ユーザ操作用のインターフェイスを提供し、ユーザの手入力情報をハンドリングする。
As a function of the uppermost application layer, there is a graphical user interface (GUI) 8 for visually operating a computer. The application layer is a layer for managing external specifications of communication functions used in the user program and exchanging information based on the external specifications. The
図4は、GUIの一例を示す模式図である。GUI8は、図4に示すように、VoIPクライアントアプリケーション1の終了処理を行うアプリケーション制御部61と、情報表示部62と、ダイヤル部63と、ヘッドセットボリューム部64aと、スピーカボリューム部64bと、サウンドエフェクト選択表示部65と、サウンドエフェクト制御部66と、BGM選択表示部67と、BGM制御部68、PCMバッファ調整部69とを有する。
FIG. 4 is a schematic diagram illustrating an example of a GUI. As shown in FIG. 4, the
情報表示部62は、ユーザが通信対象となる相手先の番号をダイヤルした場合のダイヤル番号や、通信相手が話し中か否か等の相手状態等を表示する。ダイヤル部63は、VoIP相手先をダイヤルするため等のテンキーからなる。また、ヘッドセットボリューム64aは、ヘッドセットから出力される音量を調節し、スピーカボリューム部64bは、スピーカから出力される音量を調節する。サウンドエフェクト選択部65は、ユーザが使用可能なサウンドエフェクト音源データファイルの表示するものであり、例えば銃声音、雷音、拍手の音、歓声音等を選択でき、サウンドエフェクト制御部66により、効果音の再生及び停止、並びに音量調節を行う。これにより、効果音の各種効果音でユーザが通話相手への気持ち等を表現することができる。
The
また、BGM選択表示部67は、ユーザが使用可能な例えばタヒチの波の音等のBGM音源データファイルを表示するものであり、更にBGM制御部68により、BGMの再生及び停止、並びにBGMの音量調節を行うことで、サウンドエフェクトと同様、ユーザ自身が選択し、調節した音量により、ユーザの気分やその場の雰囲気を通信相手へ伝えること等ができる。
Further, the BGM
PCMバッファ調整部69は、上述したように、デコード処理後であって、再生出力前のPCMデータをバッファリングするPCMバッファの容量をユーザが調節可能とするために設けられた操作部であって、例えば高音質実時間音響データをやり取りする際には、バッファ容量を大きくし、低遅延を目的とする実時間音響データをやり取りする場合には、バッファ容量は小さくする等の調整がなされる。 As described above, the PCM buffer adjustment unit 69 is an operation unit provided to allow the user to adjust the capacity of the PCM buffer that buffers PCM data after decoding processing and before reproduction output. For example, when exchanging high-quality real-time acoustic data, the buffer capacity is increased, and when exchanging real-time acoustic data for the purpose of low delay, adjustment is made such as reducing the buffer capacity.
次に、ソフトウェアモジュール1を実行するVoIPクライアントのハードウェア構成について説明する。図5は、VoIPクライアントのハードウェア構成を示すブロック図である。図5に示すように、VoIPクライアント20において、CPU(Central Processing Unit)221は、ROM(Read Only Memory)222に記憶されている上記ソフトウェアモジュールを構成する各種プログラム、又は記憶部228からRAM(Random Access Memory)223にロードされた上述のソフトウェアモジュール1を構成する各種プログラムに従って各種の処理を実行する。また図示せぬタイマが計時動作を行い、時刻情報をCPU221に供給する。RAM223にはまた、CPU221が各種の処理を実行する上において必要なデータ等も適宜記憶される。
Next, the hardware configuration of the VoIP client that executes the
CPU221、ROM222及びRAM223は、バス224を介して相互に接続されている。このバス224にはまた、入出力インターフェイス225も接続されている。
The
入出力インターフェイス225には、キーボード、マウス等よりなる入力部226、CRT、LCD等よりなるディスプレイ、並びに、ヘッドフォンやスピーカ等よりなる出力部227、ハードディスク等より構成される記憶部228、モデム、ターミナルアダプタなどより構成される通信部229が接続されている。
The input /
通信部229は、図示せぬインターネットを介しての通信処理を行う。CPU221から提供されたデータを送信する。また通信部229は通信相手から受信したデータをCPU221、RAM223、記憶部228に出力する。記憶部228はCPU221との間でやり取りし、情報の保存・消去を行う。通信部229はまた、他のクライアントとの間で、アナログ信号またはディジタル信号の通信処理を行う。
The
入出力インターフェイス225にはまた、必要に応じてドライブ230が接続され、磁気ディスク241、光ディスク242、光磁気ディスク243、或いは半導体メモリ244等が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部228にインストールされる。
A
次に、このようなハードウェア構成のVoIPクライアントが上述の図2に示すソフトウェアモジュール1を構成する各種プログラムを実行することによりVoIP通話を実行する方法について説明する。
Next, a method of executing a VoIP call by executing various programs constituting the
図6は、図3に示す一般的なPC向けソフトウェアモジュールのうち、VoIP通話制御部7が制御するRTP/RTCPパケットの送受信機能を説明する図である。図6に示すように、VoIP通話制御部7の制御は、スレッド1〜スレッド5に分けることができる。スレッド1は、送信者がRTPパケットを送信するまでの処理、即ち送信者が発話した音声を含むデータを格納したデータパケットを送信する処理であり、スレッド2、3は、送信されたRTPパケットを受信して再生するまでの処理、即ち上記送信者が通信対象となっている相手の音声を含むデータを聞くまでの処理である。
FIG. 6 is a diagram for explaining the RTP / RTCP packet transmission / reception function controlled by the VoIP
また、スレッド4は、オペレーティングシステム(OS)3に付随するスレッドライブラリにより自動生成される。スレッドライブラリは、プライオリティに応じてスレッド1、スレッド2及びスレッド3のメインプロセッサ(図5に示すCPU221)上での計算資源配分、即ちスケジューリングを行う。
The
また、スレッド5は、アプリケーションであるGUI8のメインスレッドであり、スレッド1、スレッド2及びスレッド3を生成したり破棄したりすると共に、プログラミングされたアルゴリズム或いはユーザ操作に応じてスレッド1、スレッド2及びスレッド3の制御を行う。
The
RTP/RTCPパケットの送信処理であるスレッド1においては、マイクからユーザの音声をキャプチャしてPCMデータを受け取り(Capture)、必要に応じて、BGM合成部5等により、キャプチャサンプル・フレーム毎に、効果音及びBGMと音声とを合成し(Effect or Mixing)、コーデック13は、そのデータを圧縮符号化する(encode)。そして、RTP/RTCP制御部12が圧縮符号化したデータをRTPパケット化し(packet)、送信する(send)。
In the
また、RTPパケットの送信処理とは別に、通信対象の通話装置におけるコーデックの圧縮符号化方式を制御するための制御情報を格納したRTCPパケットの送信処理が行われる。 In addition to the RTP packet transmission process, an RTCP packet transmission process that stores control information for controlling the codec compression encoding method in the communication target communication device is performed.
一方、RTPパケットの受信処理においては、VoIPクライアントの受信側に設けられたデコード処理前後の揺らぎ吸収バッファ、即ち、エンコードされたバイトストリームPCMを格納する揺らぎ吸収バッファ(Forward Jitter buffer)BF1と、デコード処理後に設けられ、デコードされ無圧縮のlinearPCMとされたデータを格納する揺らぎ吸収バッファ(Backward Jitter buffer)(以下、PCMバッファという。)BF2とを使用する。 On the other hand, in the RTP packet receiving process, a fluctuation absorbing buffer provided before and after the decoding process provided on the receiving side of the VoIP client, that is, a fluctuation absorbing buffer (Forward Jitter buffer) BF1 for storing the encoded byte stream PCM, and a decoding A fluctuation absorbing buffer (Backward Jitter buffer) (hereinafter referred to as a PCM buffer) BF2 that stores data that is provided after processing and is decoded and converted into uncompressed linear PCM is used.
ここで、揺らぎ吸収バッファBF1は、後述するように、通話相手との間のRTPパケットの受信状態に応じて、伝送の揺らぎを吸収するために必要な容量に自動調整されるものであり、無圧縮のデータを格納するためのPCMバッファBF2の容量は、ユーザが手入力できるようになされており、BGM等が付加されるような高音質なデータのやり取りの際には、ユーザがこれを操作し、PCMバッファBF2の容量を大きく設定しておくことができる。一方、通常の音声のみの通話を行う際等、低遅延で応答性を重視するような場合には、このPCMバッファBF2の容量を例えばゼロに設定することも可能である。 Here, as will be described later, the fluctuation absorbing buffer BF1 is automatically adjusted to a capacity required to absorb transmission fluctuation according to the reception state of the RTP packet with the other party. The capacity of the PCM buffer BF2 for storing the compressed data can be manually input by the user, and the user operates this when exchanging high-quality sound data to which BGM or the like is added. In addition, the capacity of the PCM buffer BF2 can be set large. On the other hand, the capacity of the PCM buffer BF2 can be set to zero, for example, when importance is placed on responsiveness with low delay, such as when making a call with only normal voice.
先ず、そして、RTP/RTCPパケットの受信機能のうち、スレッド2では、RTP/RTCP制御部12がRTPパケットを受信し(Receive)、ネットワーク上で発生したデータ損失及び転送パケットのデータエラー等の欠落パケットを補う処理、例えばパケットの再送要求等を行い(parse)、デコード処理前に設けられた揺らぎ吸収バッファBF1に格納する(push&pop)する。これをコーデック13が復号伸張し(decode)、デコード処理後に設けられるPCMバッファBF2に、無圧縮のデータとして格納する(push)。
First, in the RTP / RTCP packet reception function, in the
そして、スレッド3においては、USBカメラドライバ2a、USBオーディオドライバ2b及び各種ドライバ2cが、PCMバッファBF2から無圧縮のデータを読み出し(pop)、この読み出したデータを再生する(sound device)。ここで、このPCMバッファBF2が大きければ、PCMバッファBF2にデータがバッファリングされてから読み出されるまでの時間が長くなる。即ち、受信したパケットの再生予定時刻にゆとりができ、欠落パケットの再送要求をし、これを再生予定時刻までに受信することができる時間的な幅が広がる。
In the
また、スレッド1にて行うエフェクト効果及びBGMと音声との合成(Effect or Mixing)は、スレッド3において、PCMバッファBF2からデータを読み出した後であって、再生する前に行ってもよい。
Further, the effect effect and effect or mixing of BGM and sound performed in the
ここで、デコード処理前に設けられた揺らぎ吸収バッファBF1の容量(バッファサイズ)は、以下のようにして求めることができる。図7は、RTPパケット送信者(RTPSender)としてのVoIPクライアントUASと、RTPパケット受信者(RTPReceiver)としてのVoIPクライアントUARとの間のRTPパケットのやり取りを示す図であって、RTCPを利用したRound Trip Timeの計算方法を示すシーケンス図である。 Here, the capacity (buffer size) of the fluctuation absorbing buffer BF1 provided before the decoding process can be obtained as follows. FIG. 7 is a diagram showing exchange of RTP packets between a VoIP client UAS as an RTP packet sender (RTPSender) and a VoIP client UAR as an RTP packet receiver (RTPReceiver), which is a round using RTCP. It is a sequence diagram which shows the calculation method of Trip Time.
図7において、Si、Sjは、時刻i、jに送信側VoIPクライアントUASから送られるRTPパケットP(i)、P(j)の送信時刻(Si=10 Nov 1995 11:33:25.125、Sj=10 Nov 1995 11:33:25:145)を示し、Ri、Rjは、時刻i、jに受信側のVoIPクライアントUARが受け取るRTPパケットP(i)、P(j)の到着時刻(Ri=10 Nov 1995 11:37:23.235、Rj=10 Nov 1995 11:37:24.002)を示す。
In FIG. 7, Si and Sj are the transmission times of the RTP packets P (i) and P (j) sent from the transmission side VoIP client UAS at the time i and j (Si = 10
そして、VoIP通話制御部7は、RTPパケットのタイムスタンプを使用し、RFC1889に記述された下記計算式から、2つのパケットP(i)、P(j)の送信時及び受信時における到着間隔の差Dを求め、これによりジッタJを算出することができる。
D(i,j)=(Rj−Ri)−(Sj−Si)=(Rj−Sj)−(Ri−Si)
J=J+(|D(i−1,i)|−J)/16
これにより、ミリ秒・マイクロ秒単位で、図6に示す、エンコードされた状態の受信データをバッファリングする揺らぎ吸収バッファBF1の容量を算出することができる。
Then, the VoIP
D (i, j) = (Rj−Ri) − (Sj−Si) = (Rj−Sj) − (Ri−Si)
J = J + (| D (i-1, i) | -J) / 16
Thereby, the capacity of the fluctuation absorbing buffer BF1 for buffering the reception data in the encoded state shown in FIG. 6 can be calculated in units of milliseconds and microseconds.
そして、必要に応じて、揺らぎ吸収バッファBF1の容量を自動調整し、自動調整した揺らぎ吸収バッファBF1に対して、RTPパケットを、挿入及び取り出しの順で処理を実行する(スレッド2のpush&pop)。 Then, if necessary, the capacity of the fluctuation absorbing buffer BF1 is automatically adjusted, and RTP packets are processed in the order of insertion and extraction with respect to the automatically adjusted fluctuation absorbing buffer BF1 (push & pop of thread 2).
そして、上述したように、揺らぎ吸収バッファBF1から取り出したバイトストリームをデコードし、必要ならばサウンドデバイスに書き込み再生を行う。ここで、必要に応じてサウンドデバイスに書き込む前に、デコードしたデータをPCMバッファBF2に挿入する。 Then, as described above, the byte stream taken out from the fluctuation absorbing buffer BF1 is decoded, and if necessary, written to the sound device and reproduced. Here, before writing to the sound device as necessary, the decoded data is inserted into the PCM buffer BF2.
次に、本実施の形態におけるVoIPシステムにおけるRTP/RTCPパケットについて更に具体的に説明する。 Next, the RTP / RTCP packet in the VoIP system in the present embodiment will be described more specifically.
図3に示すSIP制御部11の呼制御により、RTP/RTCPパケットは、RTP/RTCPのセッションを確立した後、送受信が開始される。図8(a)及び(b)は、RTPパケットの夫々構成及びヘッダのフォーマットを示す図であり、図9(a)乃至(c)は、アプリケーションによって拡張可能なRTCP APPパケットの構成、そのヘッダ(RTCP APP Application-defined Header)、及び送信レポートのフォーマット例を示す図である。
The RTP / RTCP packet is transmitted / received after the RTP / RTCP session is established by the call control of the
RTPは、インターネット等のIPネットワークにおいて、リアルタイムに音声や動画を送信/受信するトランスポート・プロトコルであり、RFC1889で勧告されている。RTPは、トランスポート層に位置し、一般にUDP上でRTCPと共に用いられる。 RTP is a transport protocol for transmitting / receiving voice and moving images in real time in an IP network such as the Internet, and is recommended by RFC1889. RTP is located in the transport layer and is generally used with RTCP over UDP.
そして、図8(a)に示すように、RTPパケットは、IPヘッダ、UDPヘッダ、RTPヘッダ及びRTPデータからなる。そして、RTPヘッダには、図8(b)に示すように、先頭から、バージョン情報格納部(V:version、例えばV=2)F1、パディング格納部(P:padding)F2、拡張ビット格納部(X:extension)F3、CSRC(contributing source)カウント格納部(CC)F4、マーカ情報(M:marker)格納部F4、マーカ・ビット格納部(M:maker)F5、ペイロード種別情報格納部(PT:payload type)F6、シーケンス番号情報格納部(sequence number)F7、タイムスタンプ格納部(time stamp)F8、SSRC識別子格納部(synchronization source identifier)F9、CSRC識別子格納部F10が設けられ、CSRC識別子格納部F10の後ろに実時間音響データが付加される。 And as shown to Fig.8 (a), an RTP packet consists of an IP header, a UDP header, an RTP header, and RTP data. In the RTP header, as shown in FIG. 8B, from the top, a version information storage unit (V: version, for example, V = 2) F1, a padding storage unit (P: padding) F2, an extension bit storage unit (X: extension) F3, CSRC (contributing source) count storage unit (CC) F4, marker information (M: marker) storage unit F4, marker bit storage unit (M: maker) F5, payload type information storage unit (PT : Payload type) F6, sequence number information storage unit (sequence number) F7, time stamp storage unit (time stamp) F8, SSRC identifier storage unit (synchronization source identifier) F9, and CSRC identifier storage unit F10 are provided to store CSRC identifiers. Real-time acoustic data is added behind the part F10.
バージョン情報格納部F1には、RTPのバージョンを示す情報が格納され、例えばRTP2を示すときには、その旨のバージョン情報が格納される。 The version information storage unit F1 stores information indicating the RTP version. For example, when indicating RTP2, the version information indicating that is stored.
カウント格納部F4は、ヘッダ中に示されるCSRC(寄与送信元識別子)の数を示す。 The count storage unit F4 indicates the number of CSRCs (contributing transmission source identifiers) indicated in the header.
ペイロード種別情報格納部F6には、実時間音響データの種類を示す情報が格納され、例えば映像や音声を示す旨の情報等が格納される。 The payload type information storage unit F6 stores information indicating the type of real-time acoustic data, for example, information indicating video or audio.
シーケンス番号情報格納部F7には、RTPセッションにおいて、RTPパケットを送受信する度にカウントアップされ、送受信するRTPパケットの順番を認識するためのシーケンス番号が格納される。 The sequence number information storage unit F7 counts up every time an RTP packet is transmitted / received in an RTP session, and stores a sequence number for recognizing the order of the RTP packets to be transmitted / received.
タイムスタンプ格納部F8には、実時間音響データを作成、更新した日時に関するタイムスタンプ情報が格納される。 The time stamp storage unit F8 stores time stamp information related to the date and time when real-time acoustic data is created and updated.
SSRC識別子格納部F9及びCSRC識別子格納部F10には、RTPセッションにおいて、データ送信側のソースを識別するための情報が格納される。SSRC識別子は、同期送信元識別子であり、同一ユーザが組み合わせて扱うべき複数のストリームが同じ値を共有するように割り当てた識別子であり、CSRC識別子は、寄与送信元識別子であり、ストリーム源を示す。複数のストリームがミキシング処理され1つのストリームデータとして提供される場合等に使用される。 Information for identifying the source on the data transmission side in the RTP session is stored in the SSRC identifier storage unit F9 and the CSRC identifier storage unit F10. The SSRC identifier is a synchronous transmission source identifier, is an identifier assigned so that a plurality of streams to be handled in combination by the same user share the same value, and the CSRC identifier is a contributing transmission source identifier, indicating a stream source . This is used when a plurality of streams are mixed and provided as one stream data.
図3に示すRTP/RTCP制御部8は、RTPに従って実時間音響データを送信するに際して、上記各格納部に各種情報を格納すると共に、各格納部に格納された各種情報を認識して実時間音響データを抽出する処理をする。
When transmitting real-time acoustic data according to RTP, the RTP /
上述のRTPが音声・動画像データそのものを送信/受信するプロトコルであるのに対し、RTCPは、周期的に、パケットロス、遅延ジッタ、ラウンドトリップ等の回線品質を評価し、その帯域に見合ったリアルタイム通信を実現するため情報を送信/受信するプロトコルである。 While RTP is a protocol that transmits / receives audio / video data itself, RTCP periodically evaluates line quality such as packet loss, delay jitter, and round trip, and matches the bandwidth. A protocol for transmitting / receiving information to realize real-time communication.
このRTCPを用いることにより、相手からフィードバックされてくる情報により、ネットワークの状態などを推測して送信レートを変更するなどの動的な処理を行うことができる。また、今誰がデータを送信していて、誰が受信しているかを示す情報もRTCPパケットで同時に送っているので、今現在の参加者の情報を知ることもできる。 By using this RTCP, it is possible to perform dynamic processing such as changing the transmission rate by estimating the network state or the like based on information fed back from the other party. In addition, since information indicating who is currently sending data and who is receiving it is also sent at the same time in the RTCP packet, it is possible to know the current participant information.
図9(a)に示すように、RTCPパケットは、IPヘッダ、UDPヘッダ、RTCPヘッダ及びRTCPデータからなる。そして、拡張可能なRTCPパケットであるRTCP APPパケットのヘッダには、図9(b)に示すように、先頭から、バージョン情報格納部(V:version、例えばV=2)F11、パディング格納部(P:padding)F12、subtype格納部F13、パケットタイプ(PT:packet type)格納部F14、レポート長格納部(length)F16、SSRC/CSRC識別子格納部F17、アスキー(ASCII:American Standard Code for Information、情報交換用アメリカ標準コード)で記述されるName格納部F18が設けられ、この後に、アプリケーション独自のデータが格納されるデータ格納部(Application-Dependent Data)F19が付加される。 As shown in FIG. 9A, the RTCP packet includes an IP header, a UDP header, an RTCP header, and RTCP data. Then, in the header of the RTCP APP packet that is an expandable RTCP packet, as shown in FIG. 9B, the version information storage unit (V: version, for example, V = 2) F11, the padding storage unit ( P: padding) F12, subtype storage unit F13, packet type (PT) storage unit F14, report length storage unit (length) F16, SSRC / CSRC identifier storage unit F17, ASCII (American Standard Code for Information), A Name storage unit F18 described in US standard code for information exchange) is provided, followed by a data storage unit (Application-Dependent Data) F19 in which application-specific data is stored.
パケットタイプPT格納部F14には、RTCPパケットの種別が記録され、本実施の形態においては、このパケットタイプPT=APP(Application:アプリケーション固有情報)=204(パケットタイプ値)と記述される。APPは、RTCP規定外のアプリケーション固有の制御情報を通知するためのパケットであることを示す。 The type of RTCP packet is recorded in the packet type PT storage unit F14, and in this embodiment, this packet type PT = APP (Application: application specific information) = 204 (packet type value) is described. APP indicates that it is a packet for notifying application-specific control information outside the RTCP standard.
図3に示すRTP/RTCP制御部8は、RTCP APPパケットとして、上述したように、欠落パケットの再送要求をRTPパケットを受信した際のジッタを吸収するために使用するRTPパケット受信のための揺らぎ吸収バッファの容量をデータ格納部F19に記述して送信することができる。そして同時に、VoIP通話制御部3の指示により、通信相手が送信すべき送信データにおける圧縮する周波数成分の情報を記述して送信することができる。
As described above, the RTP /
ここで、RTCPパケットには、RTPデータの送信者から送られるタイプのRTCP SR(Sender Report、)パケットと、RTPデータの受信者から送られるタイプのRTCPパケットRTCP RR(Receiver Report、)パケットとがある。 Here, the RTCP packet includes an RTCP SR (Sender Report,) packet of a type sent from the sender of the RTP data and an RTCP packet RTCP RR (Receiver Report,) of a type sent from the receiver of the RTP data. is there.
SRパケットは、ストリームを送出している端末から他の端末に対して送出されるもので、自装置が送出したストリームに関する情報である送信情報(sender info)と、受信したストリーム各々についてストリームの受信状態(パケット破棄率、ジッタ等)を送信装置へ報告するためのレポートブロック(reception report block)とを含み、RRパケットは、他の通話装置から受信したスリームに関する情報を通知するためのもので、同じく受信したストリーム各々についてストリームの受信状態を送信装置へ報告するためのレポートブロックを含むものである。 The SR packet is transmitted from a terminal that is transmitting a stream to another terminal. Transmission information (sender info) that is information regarding a stream transmitted by the own device and reception of the stream for each received stream Including a report block (reception report block) for reporting the state (packet discard rate, jitter, etc.) to the transmitting device, and the RR packet is for notifying information on the stream received from the other communication device, Similarly, each received stream includes a report block for reporting the reception status of the stream to the transmitting apparatus.
このレポートブロックは、図9(c)に示すように、パケットの送信者の同期送信元(SSRC:Synchronization Source)識別子、RTP損失率、損失RTPパケット数、受信シーケンス番号、到着時間間隔のジッタの平均値、最後に受信したSRの送信時刻(LSR:Last SR timestamp)、最後にSRを受信した時刻からこのRRを送るまでの時間(DLSR:Delay since Last SR)を入れることになっている。 As shown in FIG. 9C, this report block includes a synchronization source (SSRC) identifier of a packet sender, an RTP loss rate, the number of lost RTP packets, a reception sequence number, and jitter of an arrival time interval. The average value, the transmission time of the last received SR (LSR: Last SR timestamp), and the time (DLSR: Delay since Last SR) from when the SR was last received until this RR is sent are entered.
したがって、送信側においては、RTPデータの送信の際に、送信RTPパケット数及び送信RTPバイト数を管理しておき、また、受信側においては、RTPデータの受信の際に、受信RTPパケット数、損失RTPパケット数及び到着時間のジッタ等の管理情報を管理する。 Therefore, the transmission side manages the number of transmission RTP packets and the number of transmission RTP bytes when transmitting RTP data, and the reception side receives the number of received RTP packets when receiving RTP data. Management information such as the number of lost RTP packets and jitter of arrival time is managed.
図10は、本実施の形態におけるRTCP APPメッセージの交換時にやりとりされるメッセージを示す図である。RTPのSenderでもありReceiverでもあるUA1とUA2との間でやり取りされるSR(Sender Report)を含むRTCP APPパケット及びRR(Receiver Report)を含むRTCP APPパケットにおいては、図10に示すように、拡張データとして、エンコード帯域幅(Encode Bandwidth)、サブバンド分割ブロック数(sub band Numbers)、デコード処理部前後の揺らぎ吸収バッファ容量(Forward and Backward Jitter Buffer size)、上記吸収バッファにキューイングされているデータサイズ(Buffer queued size)、RTPパケットの再送リクエスト情報(Re-Request:sequence number)を記述することができる。RTPパケットの再送リクエストにはシーケンス番号を利用する。 FIG. 10 is a diagram showing messages exchanged when exchanging RTCP APP messages in the present embodiment. In the RTCP APP packet including SR (Sender Report) and the RTCP APP packet including RR (Receiver Report) exchanged between UA1 and UA2 which are both RTP Sender and Receiver, as shown in FIG. As data, the encoding bandwidth (Encode Bandwidth), the number of subband division blocks (sub band Numbers), the fluctuation absorption buffer capacity (Forward and Backward Jitter Buffer size) before and after the decoding processing unit, and the data queued in the absorption buffer The size (Buffer queued size) and retransmission request information (Re-Request: sequence number) of the RTP packet can be described. The sequence number is used for the RTP packet retransmission request.
なお、デコード処理前の揺らぎ吸収バッファBF1の容量及びデコード処理後の揺らぎ吸収バッファであるPCMバッファBF2、並びにこれらバッファにキューイングされているデータサイズは、時間に換算可能である。 The capacity of the fluctuation absorbing buffer BF1 before the decoding process, the PCM buffer BF2 which is the fluctuation absorbing buffer after the decoding process, and the data size queued in these buffers can be converted into time.
ここで、上述したように、本実施の形態におけるVoIPクライアントは、PCMバッファBF2のバッファサイズ(バッファ容量)をユーザ操作に基づき変更することができる。PCMバッファBF2のバッファ容量を変更する場合は、例えば、図4に示すGUI8のバッファ調整部69を使用し、ユーザが必要に応じて適宜調整するようにすればよい。また、RTPパケットの受信側では、RTPパケットの受信ビットレートを常時又は定期的に計測(算出)することができ、算出した受信ビットレートに応じて、ユーザ自身がPCMバッファBF2の容量を調整するようにしてもよい。例えば、受信ビットレートをVoIPクライアントがユーザに通知し、ユーザはこの受信ビットレートを基にPCMバッファBF2の容量を変更してもよい。
Here, as described above, the VoIP client in the present embodiment can change the buffer size (buffer capacity) of the PCM buffer BF2 based on a user operation. When the buffer capacity of the PCM buffer BF2 is changed, for example, the buffer adjustment unit 69 of the
そして、このRTCP APPパケットにより、調整したPCMバッファBF2のバッファ容量を通話相手となる他のVoIPクライアントへ通知することにより、他のVoIPクライアントがそのバッファ容量に応じて送信データの伝送レートを変更することができる。更に、吸収バッファにキューイングされているデータサイズ(揺らぎ吸収バッファBF1やPCMバッファBF2にバッファリングされているデータ占有量)から、バッファの空容量を正確に認識することができ、これに基づき伝送レートを変更することができる。 Then, by using this RTCP APP packet, the adjusted buffer capacity of the PCM buffer BF2 is notified to the other VoIP client as the other party of communication, so that the other VoIP client changes the transmission rate of transmission data according to the buffer capacity. be able to. Furthermore, based on the data size queued in the absorption buffer (data occupancy buffered in the fluctuation absorption buffer BF1 and PCM buffer BF2), the free capacity of the buffer can be accurately recognized, and transmission is performed based on this. You can change the rate.
また、VoIPクライアントは、SR(Sender Report)ブロックを含むRTCPパケットを送信してからRR(Receiver Report)ブロックを含むRTCPパケットを受信するまでの時間からDLSR(Delay since Last Sender Report)を差し引いた結果算出するRTT(Round Trip Time)を測定し、これと自身の揺らぎ吸収バッファBF1又はPCMバッファBF2の容量とに基づき、欠落パケットの再送要求を行うことで、特にBGM等の欠落パケットの影響を受けやすいデータを送受信する場合の品質を維持することができる。 In addition, the VoIP client subtracts DLSR (Delay since Last Sender Report) from the time from when the RTCP packet including the SR (Sender Report) block is transmitted until the RTCP packet including the RR (Receiver Report) block is received. By measuring the calculated RTT (Round Trip Time) and making a retransmission request for the missing packet based on this and the capacity of its own fluctuation absorbing buffer BF1 or PCM buffer BF2, it is particularly affected by the missing packet such as BGM. It is possible to maintain the quality when transmitting and receiving easy data.
即ち、RTTにより、再送要求したパケットが再送されてくるまでの時間情報が得られるため、再送要求したパケットが到着する時刻よりそのパケットのデコードを開始予定時間又はデコードしたデータを再生する再生予定時間が遅いときは、欠落パケットの再送要求を行うことができる。 That is, since the time information until the retransmission requested packet is retransmitted can be obtained by the RTT, the scheduled decoding start time of the packet or the reproduced reproduction time for reproducing the decoded data from the time when the retransmission requested packet arrives When the packet is late, it is possible to request retransmission of the missing packet.
従って、PCMバッファBF2の容量をユーザ操作により可変とすることにより、パケットが届いてからそのパケットに格納されたデータが再生される再生予定時刻までの間、即ち再送要求できる期間を調整することができ、例えば、音声のみの通話を行うような場合、即ち多少の音質低下よりも遅延が少ないことが重要であるような、必ずしも再送要求する必要がない場合には、PCMバッファBF2の容量を小さく又はゼロに設定しておけばよい。 Accordingly, by making the capacity of the PCM buffer BF2 variable by a user operation, it is possible to adjust the period from when a packet arrives until the scheduled reproduction time at which the data stored in the packet is reproduced, that is, the period during which retransmission can be requested. For example, when a voice-only call is performed, that is, when it is not necessary to request retransmission again when it is important that the delay is smaller than a slight deterioration in sound quality, the capacity of the PCM buffer BF2 is reduced. Or it may be set to zero.
一方、BGM等の付加データを合成して送受信し合うような場合、即ち多少の遅延よりも高音質であることが重要であるような場合は、PCMバッファBF2の容量を大きくしておけば、欠落パケットの再送要求ができ、ユーザはエラー及び損失がないデータを再生出力させることができる。 On the other hand, when additional data such as BGM is synthesized and transmitted and received, that is, when it is important that the sound quality is higher than some delay, if the capacity of the PCM buffer BF2 is increased, It is possible to request retransmission of missing packets, and the user can reproduce and output data free from errors and losses.
また、揺らぎ吸収バッファBF2のバッファ容量の通知を受けた通信相手のVoIPクライアントは、このバッファBF2の容量に応じて、即ち、PCMバッファBF2の容量が大きいときは、伝送ビットレートを上げて高音質な送信データとし、PCMバッファBF2の容量が小さい場合には、例えばBGMを付加せず音声のみを送信することで伝送ビットレートを下げ低遅延を達成するように伝送レートを可変とすることができる。 Further, the VoIP client of the communication partner that has received the notification of the buffer capacity of the fluctuation absorbing buffer BF2 increases the transmission bit rate according to the capacity of the buffer BF2, that is, when the capacity of the PCM buffer BF2 is large. When the transmission data is small and the capacity of the PCM buffer BF2 is small, the transmission rate can be made variable, for example, by transmitting only the voice without adding BGM and thereby reducing the transmission bit rate. .
なお、アプリケーション固有情報APPとして、デコード処理前後の揺らぎ吸収バッファBF1及びBF2のバッファ容量、この揺らぎ吸収バッファBF1及びBF2を占有しているデータ量の情報、欠落パケットの再送要求等の制御情報に加え、受信側のVoIPクライアンが送信側のVoIPクライアントの送信データのエンコード帯域幅及びサブバンド分割ブロック数等を指定する情報を記載することにより、通信相手の圧縮符号化方式を指定することで自身が受信するストリームの伝送レートを制御することも可能である。 In addition to the control information such as the buffer capacity of the fluctuation absorbing buffers BF1 and BF2 before and after the decoding process, the information on the amount of data occupying the fluctuation absorbing buffers BF1 and BF2, and the retransmission request of the missing packet, as the application specific information APP The VoIP client on the receiving side specifies the compression encoding method of the communication partner by describing the information specifying the encoding bandwidth and the number of subband division blocks of the transmission data of the VoIP client on the transmitting side. It is also possible to control the transmission rate of the received stream.
本実施の形態においては、圧縮された音声データを復号するデコード処理部の前に、RTPパケットのヘッダを用いて算出したジッタ値分の容量を自動的に確保可能な揺らぎ吸収バッファBF1を用意し、デコード処理部の後に、ユーザが手入力した容量分のPCMバッファである揺らぎ吸収バッファBF2を用意することで、低遅延を望むユーザのニーズと高音質を臨むユーザのニーズとの両方満たすことができる。 In the present embodiment, a fluctuation absorbing buffer BF1 that can automatically secure a capacity corresponding to a jitter value calculated using the header of an RTP packet is prepared before a decoding processing unit that decodes compressed audio data. By providing a fluctuation absorbing buffer BF2, which is a PCM buffer for the capacity manually input by the user, after the decoding processing unit, both the needs of users who desire low delay and the needs of users who face high sound quality can be satisfied. it can.
即ち、低遅延を重視した自動調整バッファである揺らぎ吸収バッファBF1に加えて、ユーザの手入力で調整できるPCMバッファBF2を用意することで、欠落パケットの再送要求が有効になる時間軸上の幅が広がり、高音質な状態で録音をしたい場合等において、音質を重視した受信が可能になり、低遅延か高音質かのトレードオフをユーザ操作にゆだねることができる。 That is, by providing a PCM buffer BF2 that can be adjusted manually by the user in addition to the fluctuation absorbing buffer BF1, which is an automatic adjustment buffer that emphasizes low delay, the width on the time axis that makes retransmission requests for lost packets effective. In the case where it is desired to record in a high sound quality state, reception with an emphasis on sound quality becomes possible, and the trade-off between low delay and high sound quality can be left to the user operation.
こうしてVoIPクライアントが受信側となる場合には、低遅延か高音質かの受信状態を選択することができ、送信側となる場合には、通信相手の揺らぎ吸収バッファBF1及びPCMバッファBF2のバッファ容量に応じて、通信相手のニーズに応じた伝送レートの送信データを送信することができる。 Thus, when the VoIP client is the reception side, the reception state of low delay or high sound quality can be selected, and when it is the transmission side, the buffer capacity of the fluctuation absorbing buffer BF1 and the PCM buffer BF2 of the communication partner Accordingly, transmission data having a transmission rate according to the needs of the communication partner can be transmitted.
1 VoIPクライアントアプリケーション、21 送信手段、22 マイクキャプチャ、23 効果音ファイル読み込み部、24 BGMファイル読み込み部、25,26,31 デコーダ、27,28,29 ゲイン調整部、30 合成部、31 エンコーダ、32 パケット化部、33 送信部、41 受信手段、42 受信部、43 デパケッタイズ部、44 デジッタ部、45 パケット補償部、46 デコーダ、47 読み出し部、48 復号部、49,50,51,52 ゲイン調整部、53 合成部、54 出力部、55 スピーカ、100 VoIP通信システム、111、121 VoIPクライアント、110,120 ユーザ、112,122 ウェブブラウザ、134 ウェブサーバ、113、123 音源データ、130 インターネット 1 VoIP client application, 21 transmission means, 22 microphone capture, 23 sound effect file reading unit, 24 BGM file reading unit, 25, 26, 31 decoder, 27, 28, 29 gain adjustment unit, 30 synthesis unit, 31 encoder, 32 Packetizing unit, 33 transmitting unit, 41 receiving means, 42 receiving unit, 43 depacketizing unit, 44 dejittering unit, 45 packet compensating unit, 46 decoder, 47 reading unit, 48 decoding unit, 49, 50, 51, 52 gain adjusting unit , 53 synthesis unit, 54 output unit, 55 speaker, 100 VoIP communication system, 111, 121 VoIP client, 110, 120 user, 112, 122 web browser, 134 web server, 113, 123 sound source data, 130 interface Tsu door
Claims (12)
音声を含む実時間音響データを圧縮符号化する圧縮符号化手段と、
上記圧縮符号化手段により圧縮符号化されたデータを格納したデータパケットを生成するデータパケット生成手段と、
少なくとも上記データパケットの送受信を管理する管理情報を格納した制御パケットを生成する制御パケット生成手段と、
上記データパケット及び上記制御パケットを上記インターネットを介して1以上の他の通話装置に送信する送信手段と、
上記1以上の他の通話装置からのデータパケット及び制御パケットを受信する受信手段と、
上記受信したデータパケットに格納された圧縮符号化データを復号伸張する復号伸張手段と、
上記復号伸張したデータをバッファリングするバッファと、
上記バッファの容量をユーザの指示に基づき制御する制御手段とを有する
ことを特徴とする通話装置。 In a communication device that transmits and receives real-time acoustic data via the Internet,
Compression encoding means for compressing and encoding real-time acoustic data including speech;
Data packet generation means for generating a data packet storing data compressed and encoded by the compression encoding means;
Control packet generating means for generating a control packet storing management information for managing at least transmission and reception of the data packet;
Transmitting means for transmitting the data packet and the control packet to the one or more other communication devices via the Internet;
Receiving means for receiving data packets and control packets from the one or more other communication devices;
Decoding and decompressing means for decoding and decompressing the compressed and encoded data stored in the received data packet;
A buffer for buffering the decoded decompressed data;
And a control unit configured to control the capacity of the buffer based on a user instruction.
ことを特徴とする請求項1記載の通話装置。 The call device according to claim 1, wherein the control means generates retransmission request instruction information for instructing a retransmission request of a missing data packet according to the capacity of the buffer, and stores the retransmission request instruction information in the control packet.
ことを特徴とする請求項1記載の通話装置。 The call device according to claim 1, wherein the control means stores at least buffer information indicating a capacity of the buffer in the control packet.
ことを特徴とする請求項3記載の通話装置。 The call device according to claim 3, wherein the control means controls the transmission rate of the data packet based on buffer information stored in a control packet from the other call device.
ことを特徴とする請求項1記載の通話装置。 The communication apparatus according to claim 1, further comprising a fluctuation absorbing buffer for buffering the received data packet, wherein the capacity of the fluctuation absorbing buffer is automatically adjusted based on a transmission rate of the received data packet.
ことを特徴とする請求項1記載の通話装置。 The call device according to claim 1, wherein the control means measures a transmission rate of a data packet from the other call device and notifies the user.
音声を含む実時間音響データを圧縮符号化する圧縮符号化工程と、
上記圧縮符号化工程にて圧縮符号化されたデータを格納したデータパケットを生成するデータパケット生成工程と、
少なくとも上記データパケットの送受信を管理する管理情報を格納した制御パケットを生成する制御パケット生成工程と、
上記データパケット及び上記制御パケットを上記インターネットを介して1以上の他の通話装置に送信する送信工程と、
上記1以上の他の通話装置からのデータパケット及び制御パケットを受信する受信工程と、
上記受信したデータパケットに格納された圧縮符号化データを復号伸張する復号伸張工程と、
上記復号伸張したデータをバッファリングするバッファの容量をユーザの指示に基づき制御する制御工程とを有する
ことを特徴とする通話方法。 In a call method that transmits and receives real-time acoustic data via the Internet,
A compression encoding process for compressing and encoding real-time acoustic data including speech;
A data packet generating step for generating a data packet storing the data compressed and encoded in the compression encoding step;
A control packet generation step of generating a control packet storing management information for managing at least transmission and reception of the data packet;
A transmission step of transmitting the data packet and the control packet to one or more other communication devices via the Internet;
Receiving a data packet and a control packet from the one or more other communication devices;
A decoding and decompressing step for decoding and decompressing the compressed and encoded data stored in the received data packet;
And a control step of controlling a capacity of a buffer for buffering the decoded and decompressed data based on a user instruction.
ことを特徴とする請求項7記載の通話方法。 8. The call according to claim 7, further comprising: a retransmission request generation step of generating retransmission request instruction information for instructing a retransmission request of a missing data packet generated according to the capacity of the buffer and storing the information in the control packet. Method.
ことを特徴とする請求項7記載の通話方法。 The call method according to claim 7, further comprising a buffer information generation step of storing at least buffer information indicating a capacity of the buffer in the control packet.
ことを特徴とする請求項9記載の通話方法。 The call method according to claim 9, further comprising a transmission rate control step of controlling a transmission rate of the data packet based on buffer information stored in a control packet from the other call device.
ことを特徴とする請求項7記載の通話方法。 The call method according to claim 7, further comprising a step of measuring a transmission rate of a data packet from the other call device and notifying the user.
各上記通話装置は、
音声を含む実時間音響データを圧縮符号化する圧縮符号化手段と、
上記圧縮符号化手段により圧縮符号化されたデータを格納したデータパケットを生成するデータパケット生成手段と、
少なくとも上記データパケットの送受信を管理する管理情報を格納した制御パケットを生成する制御パケット生成手段と、
上記データパケット及び上記制御パケットを上記インターネットを介して1以上の他の通話装置に送信する送信手段と、
上記1以上の他の通話装置からのデータパケット及び制御パケットを受信する受信手段と、
上記受信したデータパケットに格納された圧縮符号化データを復号伸張する復号伸張手段と、
上記復号伸張したデータをバッファリングするバッファと、
上記バッファの容量をユーザの指示に基づき制御する制御手段とを有し、
少なくとも2つの通話装置のうち一方の上記通信装置の上記制御手段は、少なくとも上記バッファの容量を示すバッファ情報を上記制御パケットに格納させ、
他方の通話装置の上記制御手段は、上記一方の通話装置からの制御パケットに格納されたバッファ情報に基づき当該一方の通話装置に送信するデータパケットの伝送レートを制御する
ことを特徴とする通話システム。
In a call system in which two or more call devices transmit and receive real-time acoustic data via the Internet,
Each of the above communication devices
Compression encoding means for compressing and encoding real-time acoustic data including speech;
Data packet generation means for generating a data packet storing data compressed and encoded by the compression encoding means;
Control packet generating means for generating a control packet storing management information for managing at least transmission and reception of the data packet;
Transmitting means for transmitting the data packet and the control packet to the one or more other communication devices via the Internet;
Receiving means for receiving data packets and control packets from the one or more other communication devices;
Decoding and decompressing means for decoding and decompressing the compressed and encoded data stored in the received data packet;
A buffer for buffering the decoded decompressed data;
Control means for controlling the capacity of the buffer based on a user instruction,
The control means of one of the communication devices of at least two call devices stores at least buffer information indicating a capacity of the buffer in the control packet,
The control unit of the other call device controls a transmission rate of a data packet to be transmitted to the one call device based on buffer information stored in a control packet from the one call device. .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003280434A JP4218456B2 (en) | 2003-07-25 | 2003-07-25 | Call device, call method, and call system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003280434A JP4218456B2 (en) | 2003-07-25 | 2003-07-25 | Call device, call method, and call system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005045741A true JP2005045741A (en) | 2005-02-17 |
JP4218456B2 JP4218456B2 (en) | 2009-02-04 |
Family
ID=34266265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003280434A Expired - Fee Related JP4218456B2 (en) | 2003-07-25 | 2003-07-25 | Call device, call method, and call system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4218456B2 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009059344A (en) * | 2007-08-29 | 2009-03-19 | Chunghwa Telecom Co Ltd | System for home security monitor and report management |
KR100918571B1 (en) * | 2008-03-13 | 2009-09-24 | 유엔젤주식회사 | Voice over internet protocol communication system for providing users with background music while phone conversation in peer-to-peer |
WO2010082236A1 (en) * | 2009-01-16 | 2010-07-22 | パナソニック株式会社 | Buffer controller and radio communication terminal |
US7965846B2 (en) | 2006-07-28 | 2011-06-21 | Nec Infrontia Corporation | Client distributed system and inter-client RTP encrypting method |
JP2014195255A (en) * | 2007-06-28 | 2014-10-09 | Voxer Ip Llc | Telecommunication, multimedia management method, and device |
JP2018160758A (en) * | 2017-03-22 | 2018-10-11 | 沖電気工業株式会社 | Slant monitoring apparatus, slant monitoring method and slant monitoring program |
JP2022181432A (en) * | 2021-05-26 | 2022-12-08 | Necプラットフォームズ株式会社 | Receiving device, method, and program |
-
2003
- 2003-07-25 JP JP2003280434A patent/JP4218456B2/en not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7965846B2 (en) | 2006-07-28 | 2011-06-21 | Nec Infrontia Corporation | Client distributed system and inter-client RTP encrypting method |
JP2014195255A (en) * | 2007-06-28 | 2014-10-09 | Voxer Ip Llc | Telecommunication, multimedia management method, and device |
JP2009059344A (en) * | 2007-08-29 | 2009-03-19 | Chunghwa Telecom Co Ltd | System for home security monitor and report management |
KR100918571B1 (en) * | 2008-03-13 | 2009-09-24 | 유엔젤주식회사 | Voice over internet protocol communication system for providing users with background music while phone conversation in peer-to-peer |
WO2010082236A1 (en) * | 2009-01-16 | 2010-07-22 | パナソニック株式会社 | Buffer controller and radio communication terminal |
JP2018160758A (en) * | 2017-03-22 | 2018-10-11 | 沖電気工業株式会社 | Slant monitoring apparatus, slant monitoring method and slant monitoring program |
JP2022181432A (en) * | 2021-05-26 | 2022-12-08 | Necプラットフォームズ株式会社 | Receiving device, method, and program |
Also Published As
Publication number | Publication date |
---|---|
JP4218456B2 (en) | 2009-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10930262B2 (en) | Artificially generated speech for a communication session | |
JP4367657B2 (en) | Voice communication method and apparatus | |
JP4504429B2 (en) | Method and apparatus for managing media latency of voice over internet protocol between terminals | |
JP5442771B2 (en) | Data transmission method in communication system | |
US7680099B2 (en) | Jitter buffer adjustment | |
KR100982155B1 (en) | Video packet shaping for video telephony | |
WO2009067954A1 (en) | A method and device for processing an audio stream | |
US7389093B2 (en) | Call method, call apparatus and call system | |
JP4218456B2 (en) | Call device, call method, and call system | |
JP2005044310A (en) | Equipment for telephone conversation, copyright protection method, and system for telephone conversation | |
JP2005045739A (en) | Apparatus, method and system for telephone conversation | |
JP4207701B2 (en) | Call device, call method, and call system | |
JP4050961B2 (en) | Packet-type voice communication terminal | |
JP3977784B2 (en) | Real-time packet processing apparatus and method | |
JP2005045740A (en) | Device, method and system for voice communication | |
JP5210788B2 (en) | Speech signal communication system, speech synthesizer, speech synthesis processing method, speech synthesis processing program, and recording medium storing the program | |
JP2001308919A (en) | Communication unit | |
KR20040095652A (en) | Control component removal of one or more encoded frames from isochronous telecommunication stream based on one or more code rates of the one or more encoded frames to create non-isochronous telecommunication stream | |
JP2005045737A (en) | Apparatus, method and system for telephone communication | |
Tatlas et al. | WLAN Technologies for Audio Delivery | |
GB2596107A (en) | Managing network jitter for multiple audio streams | |
Frej | A-Interface Over Internet Protocol For User-Plane Connection Optimization In GSM/EDGE Radio Access Network | |
JP2022006536A (en) | Communication system, communication device and communication program | |
Christianson et al. | Hierarchical audio encoder for network traffic adaptation | |
JP2013074424A (en) | Voice communication system, voice communication device, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060725 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080717 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080729 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080929 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20081021 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081103 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111121 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111121 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111121 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121121 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |