JP4000895B2 - リアルタイム通信のためのビットレート制御方法および装置 - Google Patents

リアルタイム通信のためのビットレート制御方法および装置 Download PDF

Info

Publication number
JP4000895B2
JP4000895B2 JP2002120066A JP2002120066A JP4000895B2 JP 4000895 B2 JP4000895 B2 JP 4000895B2 JP 2002120066 A JP2002120066 A JP 2002120066A JP 2002120066 A JP2002120066 A JP 2002120066A JP 4000895 B2 JP4000895 B2 JP 4000895B2
Authority
JP
Japan
Prior art keywords
bit rate
probability
bit
rates
discrete
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.)
Expired - Fee Related
Application number
JP2002120066A
Other languages
English (en)
Other versions
JP2003318966A (ja
Inventor
伊藤  博紀
裕三 仙田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2002120066A priority Critical patent/JP4000895B2/ja
Priority to PCT/JP2003/005170 priority patent/WO2003092227A1/ja
Priority to KR20047007857A priority patent/KR100615119B1/ko
Priority to CNB038016664A priority patent/CN100375468C/zh
Priority to US10/497,400 priority patent/US20050105604A1/en
Priority to EP03719175A priority patent/EP1499073A4/en
Publication of JP2003318966A publication Critical patent/JP2003318966A/ja
Application granted granted Critical
Publication of JP4000895B2 publication Critical patent/JP4000895B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/38Flow control; Congestion control by adapting coding or compression rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は音声や画像データなどのリアルタイムトラフィックを送信する技術に係り、特にそのビットレート制御方法及び装置に関する。
【0002】
【従来の技術】
周知のように、従来の電話などに用いられている回線交換方式は、通信中でも情報の有無に関係なく両端末間で通信回線を占有するために、音声や画像などをリアルタイムで伝送するのに適している反面、ネットワークの利用効率を高めることが困難である。また、端末間の接続においてネットワーク全体の利用率を監視した呼制御を行うため、端末数が増加するにつれて呼制御の負荷が増大するという問題もある。
【0003】
一方、パケット交換方式は非同期型通信であり、従来の回線交換方式のような同期型通信よりもネットワークの利用効率が高いため、現在広く普及している。特に、TCP/IP (Transmission Control Protocol / Internet Protocol)を用いたパケット交換方式においては、呼制御が行われず、各端末でネットワークの利用帯域が公平となるような自律分散型のレート制御が行われているために、上述したような呼制御の負荷増大という問題は生じない。さらに、TCPではパケットの欠落の有無をチェックしており、パケット損失が生じた場合には再送要求を行うことで通信の信頼性を高めている。
【0004】
しかし、近年広まりつつあるIPを用いたパケット交換方式における音声・画像データのリアルタイム通信では、TCPによるレート制御は適用できない。TCPにおけるパケット再送は、ファイル転送等のデータ通信では信頼性を高めるので望ましいが、音声・画像などのリアルタイム通信では逆に大きな遅延の原因となり、またビットレートの激しい変動により音質・画質の劣化が生ずるからである。
【0005】
そこで、リアルタイム通信では、TCPに代わって、レート制御を行わないUDP (User Datagram Protocol) が用いられている。しかしながら、UDPではデータを一方的に送り続けるために、UDPのトラフィックが増大するとTCPの利用する帯域を占有してしまい、TCPとの公平性の問題が新たに生じる。これらの問題を解決するために開発されたRSVP (Resource reSerVationProtocol)は、接続時に各端末の帯域を確保する方式であり、遅延やパケット損失の問題は解決されるものの、回線交換方式と同じネットワーク効率の問題が生じる。
【0006】
そこで、別の解決策として考えられているのが、TCPと公平性のあるレート制御を行うTCPフレンドリー制御である。TCPフレンドリー制御には、次の2つの方式がある。
1) TCPのレート制御法であるAIMD(Additive Increase/Multiple Decrease)に基く方式(文献1 :Reza Rejaie, Mark Handley, Deborah Estrin, "RAP: An End-to-end Rate-based Congestion Control Mechanism for Realtime Stream in the Internet,"INFOCOM'99 (1999.3)を参照)。2) TCPのスループットを目標ビットレートとする方式(TFRC)(文献2: "TCP Friendly Rate Control (TFRC): Protocol Specification," IETF Internet draft(draft-ietf-tsvwg-tfrc-03.txt)を参照)。
【0007】
AIMD方式では、ビットレートを上げる場合は一定値を加算し、ビットレートを下げる場合は1より小さい値を乗算する。これら加算値および乗算値を適切に設定することにより、TCPとの公平性を保ちつつ、TCPのような大きなビットレートの変動を抑えることも可能である。
【0008】
TFRC方式は、次式(1)で示すTCPのスループットを目標ビットレートとした制御を行う。
R = 1 / [RTT*√(2*L/3) + T0*min(1, 3*√(3*L/8))*L*(1+32*L^2)] (1)
ここで、RTTはラウンドトリップ時間、T0はタイムアウト時間、Lはパケット損失率を示す。
【0009】
ただし、上記TCPフレンドリー制御では、ビットレートが連続値となることを前提としている。実際には音声・画像符号化器のビットレートは離散的であるため、これら制御方式をそのまま音声・画像符号化器に適用することはできない。
【0010】
一方、ネットワークの輻輳状態に応じて符号化器が動作するビットレートを予め決めておく方式も考えられている。たとえば、
文献3:Jeong Wook Seo, et al., "A study on the application of an AMR speech codec to VoIP," Proc. ICASSP2001 Vol. 3, pp.1373 -1376、および
文献4:V. Abreu-Sernandez, et al., "Adaptive multi-rate speech coder for VoIP transmission, "Electronics Letters, Vol. 36, pp.1978 -1980を参照。
【0011】
文献3ではラウンドトリップ時間に応じて、文献4ではパケット損失率に応じて、それぞれ符号化器のビットレートを切り替えている。しかし、これらの方式はTCPとの公平性がない。
【0012】
次に、図8を用いて従来の音声・画像データ通信装置の一例を説明する。一般に、音声・画像データ通信装置は、図8に示すように、音声・画像符号化部402、パケット送信部403、パケット受信部404、ビットレート制御部405、音声・画像復号部406で構成される。音声・画像符号化器402は、入力音声・画像401を符号化し、音声・画像ビットストリームをパケット送信部403に出力する。パケット送信部403は、入力された音声・画像ビットストリームにIP/UDP/RTPヘッダ(文献5:"RTP:A Transport Protocol for Real-Time Applications," IETF RFC1889を参照)を付加し、ネットワークに送信する。RTPヘッダには、音声・画像データの通信で必要な情報が付加されている。
【0013】
一方、パケット受信部404は、音声・画像パケットを受信し、受信パケットから音声・画像ビットストリームを抽出して音声・画像復号部406に出力する。音声・画像復号部406は、パケット受信部から得た音声・画像ビットストリームを復号し、出力音声・画像データ407を出力する。
【0014】
また、パケット受信部404は、例えばRTCP(Real-time Transport Control Protocol)(文献5)パケットを受信し、そこからラウンドトリップ時間(Round Trip Time, RTT)およびパケット損失率に関する情報を抽出してビットレート制御部405に出力する。ビットレート制御部405では、AIMDやTFRC等に基くビットレート制御が行われる。
【0015】
AIMDに基くビットレート制御では、パケット受信部404から得たパケット損失率を用いて、パケット損失がない場合には現在のビットレートにある値を加算し、パケット損失がある場合には現在のビットレートにある値を乗算することにより目標ビットレートを計算する。
【0016】
TFRCに基くビットレート制御では、パケット受信部404から得たラウンドトリップ時間RTTとパケット損失率Lとを用いて、式(1)を用いて目標ビットレートを計算する。ここで、ラウンドトリップ時間とパケット損失率は、測定精度を高めるため、ある時間で平均した値を用いる。
【0017】
しかしながら、このように計算された目標ビットレートは、音声・画像符号化器402に設定されている離散的なビットレートの1つと合致するとは限らない。このために、実際には、計算された目標ビットレートに最も近い離散的ビットレートを選択し、音声・画像符号化部402をその選択されたビットレートに設定するという制御が行われている。
【0018】
上記文献3や文献4におけるビットレート制御では、パケット受信部404から得たラウンドトリップ時間やパケット損失率に応じて定められる符号化器のビットレートが音声・画像符号化部402に出力される。しかし、上述したように、これらの方式はTCPとの公平性がない。
【0019】
音声・画像復号部406は、ビットレート制御部405で得たビットレートで音声・画像を復号する。
【0020】
特開平5−260090号公報には、離散的なビットレートを有する符号化器を用いたビットレート制御方法の一例が開示されている。この従来例では、複数ステップのビットレート(128kbps, 64kbps,10kbpsなど)を設定できる映像符号化部を伝送路の輻輳状態に応じてビットレート制御する。具体的には、伝送路に輻輳が発生すると1ステップ小さいビットレートに設定し、輻輳が発生していなければ1ステップ大きいビットレートに設定する、というように制御する。
【0021】
【発明が解決しようとする課題】
上述したように、AIMDやTFRCに基くTCPフレンドリー制御は、ビットレートが連続値をとることを前提としているために、符号化器のビットレートが離散的な値しか取り得ない音声・画像通信にはそのまま適用することができない。そこで、ビットレート制御により得られた目標値に最も近いビットレートが選択される。しかし、そうすると目標値と実際の値との誤差が生じてしまい、この誤差は設定されるビットレートを頻繁に変動させる要因となり、音質・画質の劣化をもたらす。
【0022】
図9(a)は従来の自律分散型ビットレート制御法を採用した場合のビットレート変動を示すタイムチャートである。たとえば、ネットワークに接続された各端末において、ラウンドトリップ時間やパケット損失率などのネットワーク情報に基づいて目標ビットレートを算出し、それに最も近い離散的ビットレートに符号化器を設定する制御が行われるものとする。ここでは、説明のために、ある離散的ビットレートR(n+1)に設定されるとネットワークが輻輳して目標ビットレートが低下し、それより低いビットレートR(n)に設定されると目標ビットレートが上昇するものと仮定する。
【0023】
この場合、図9(a)に示すように目標ビットレートが低下すると、ビットレート制御部405は符号化器402をR(n+1)から現在の目標値に最も近いビットレートR(n)に低下させる。この状態がしばらく続くと、今度は目標ビットレートが上昇し、それに追随するために、符号化器402をR(n+1)へ再び上昇させる。このようなビットレート変動が繰り返されると、音声・画像を送受信している端末間でリアルタイムトラフィックの品質が著しく低下する。
【0024】
また、文献3や文献4におけるラウンドトリップ時間やパケット損失率に応じて符号化器のビットレートを切り替える方式や特開平5−260090号公報に開示された方式では、TCP制御との公平性が実現できない。
【0025】
そこで、本発明の目的は、ネットワークの状態に応じてリアルタイムトラフィックの送信ビットレートを離散的に変更する場合でも、リアルタイム通信の品質劣化を抑制できるビットレート制御方法及び装置を提供することにある。
【0026】
本発明の他の目的は、リアルタイムトラフィックの品質が劣化するビットレートの変動を抑え、且つTCPなどの他の制御方式との公平性を実現できるビットレート制御方法及び装置を提供することにある。
【0027】
【課題を解決するための手段】
本発明によれば、リアルタイムトラフィック送信時のビットレートを制御する際に、確率に基いてビットレートを決定することを特徴とする。
【0028】
利用可能なビットレートが離散的であっても、全端末のビットレートを平均した値が所望のビットレートとなるように、各端末のビットレートを変更する確率値を定めておけば、ビットレートの変動の少ない制御が可能となる。
【0029】
図9を用いて本発明の作用を説明する。上述したように、従来のビットレート制御方法では、各端末が符号化器のビットレートを目標ビットレートに近づけようとするために、図9(a)に示すような全端末が目標値近辺のビットレート間で変動を繰り返す現象が生じる。
【0030】
これに対して、図9(b)のように、全体の平均ビットレートが所望の値となるように確率値を計算し、その確率値に基いて各端末のビットレートを変更する制御を行うことによって、図9(a)に示すようなビットレートの変動を抑えることができる。
【0031】
また、ネットワークの状態に応じて符号化器の動作ビットレートを変更する場合に、上記計算された確率に基いてビットレートを変更するようにすれば、TCP等の制御方式との公平性を損なわないビットレート制御が可能となる。
【0032】
本発明によるビットレート制御方法は、ネットワークを通してリアルタイムトラフィックを送信する際のビットレート制御方法において、a)複数の予め定められた離散的ビットレートの1つを送信ビットレートとして設定し、b)目標ビットレートまたは現在設定されている送信ビットレートの一方に隣接する少なくとも1つの離散的ビットレートを選択する確率を決定し、c)前記決定された確率に基づいて、前記少なくとも1つの離散的ビットレートのいずれかを新たな送信ビットレートとして設定する、ことを特徴とする。
【0033】
本発明の第1実施形態によれば、前記ステップ(b)は、b.1)前記ネットワークの状態に応じて目標ビットレートを設定し、b.2)前記設定された目標ビットレートに隣接するビットレートを決定し、b.3)前記設定された目標ビットレートが前記隣接ビットレートの一方に近いほど、当該一方のビットレートを選択する確率を高くする、ことを特徴とする。
【0034】
すなわち、目標ビットレートが算出されると、その目標ビットレートに隣接する離散的ビットレートが決定され、その何れのビットレートに符号化器を設定するかは、目標ビットレートが何れのビットレートに近いかに依存して確率的に決定される。したがって、全端末の平均設定ビットレートは目標ビットレート近くになり、このために、TCPなどの他の制御方式との公平性を保持できると共に、各端末が目標ビットレートに近づこうとしてビットレートの設定を頻繁に変動させるという従来生じていた事態を回避することができる。
【0035】
本発明の第2実施形態によれば、前記ステップ(b)は、b.1)前記ネットワークの状態に応じて目標ビットレートを設定し、b.2)前記設定された目標ビットレートと現在設定されているビットレートとの差の大きさに依存して、前記現在設定されているビットレートに隣接するビットレートのうち前記目標ビットレートに近い方を選択する確率を変化させる、ことを特徴とする。
【0036】
すなわち、現在設定されているビットレートと算出された目標ビットレートとの差が大きいほど、ビットレート変更の確率が大きくなる。したがって、現在設定されているビットレートが目標ビットレートから離れている端末では、ビットレートが変更される確率が高くなり、目標ビットレートに近い端末では低くなる。このために、全端末の平均設定ビットレートは目標ビットレート近くになり、TCPなどの他の制御方式との公平性を維持できると共に、各端末が目標ビットレートに近づこうとしてビットレートの設定を頻繁に変動させるという従来生じていた事態を回避することができる。さらに、本発明の第2実施形態によれば、各端末において、現在設定されているビットレートR(n)から1ステップ上下するだけであり、急激なビットレート変更は生じない。このことは、音声・画像の品質劣化を抑える効果がある。
【0037】
本発明の第3実施形態によれば、前記ステップ(b)は、b.1)前記ネットワークの状態に応じてビットレートの変更方向を決定し、b.2)前記複数の離散的ビットレートにおける前記現在設定されているビットレートの高さに依存して、前記現在設定されているビットレートに隣接するビットレートの一方を選択する確率を変化させる、ことを特徴とする。
【0038】
たとえば、パケットの損失が検出されてビットレートを低下させる必要が生じた場合、あるいは、パケット損失が検出されないことからビットレートを上昇させることができる場合には、現在設定されているビットレートがビットレート設定可能範囲のどの位置にあるかによって、ビットレート変更の確率を変化させる。具体的には、パケットの損失が検出されるようになると、現在設定されているビットレートが高い端末では、ビットレートを低下させる確率を高くし、低い端末では低くする。逆に、パケットの損失が検出されない場合には、現在設定されているビットレートが低い端末は、ビットレートを上昇させる確率を高くし、高い端末では低くする。このために、全端末間で公平なビットレート設定が可能となり、ネットワークの利用効率を最適化できると共に、各端末が目標ビットレートに近づこうとしてビットレートの設定を頻繁に変動させるという従来生じていた事態を回避することができる。さらに、TCPフレンドリー制御と整合するようにビットレート変更確率を設定することで、端末間の公平性およびTCPとの公平性を確保することができる。
【0039】
本発明の第4実施形態によれば、前記ステップ(b)において、隣接するビットレートの間隔に依存して前記確率を決定することを特徴とする。すなわち、隣接ビットレートの間隔の大きさをビットレート低下及び上昇確率に反映させる。たとえば、隣接ビットレートまでの距離が大きいほどビットレート変更確率を小さくすることで、音声・画像の品質劣化を抑制することができる。
【0040】
【発明の実施の形態】
本発明によるビットレート制御を採用した音声・画像通信装置は、全体的なブロック構成としては図8に示すものと基本的に同じであるが、ビットレート制御部405の動作が従来と異なる。
【0041】
以下、音声・画像符号化部402がN種類のビットレートR(0)〜R(N-1)を有するものとして、本発明によるビットレート制御の実施形態を詳細に説明する。ただし、R(0) < R(1) <・・・< R(N-1)とする。
【0042】
(1)第1実施形態
図1は、本発明の第1実施形態によるビットレート制御を示すフローチャートである。まず、目標とするビットレートRtを従来のAIMD又はTFRCに基くTCPフレンドリー制御等を用いて計算する(ステップ101)。
【0043】
このRtに対し、R(n)≦Rt<R(n+1)となるnを求め、ビットレートがR(n)となる確率Pを、RtがR(n)に近い程確率が高くなるような式、たとえば式(2)を用いて計算する(ステップ102)。
【0044】
P(n) = (R(n+1)-Rt) / (R(n+1)-R(n)) (2)。
【0045】
なお、このような式の代わりに、ビットレートと確率P(n)と対応関係を具体的な数値として格納したテーブルを用いて、検索により確率を決定することも可能である。いずれにしても、このような式あるいはテーブルは、変更確率生成情報としてメモリに予め格納されている。
【0046】
次に、確率P(n)に基づくビットレート判定を実行する。本実施形態では、たとえば乱数を用いてビットレート判定を行う。まず、乱数(正確には、疑似乱数)Poを0≦Po<1の範囲で生成する(ステップ103)。ここでは、一様乱数を用いる。得られた乱数Poをステップ102で算出した確率P(n)と比較し、ビットレートをR(n)にするかR(n+1)にするかを判定する(ステップ104)。ここでは、Po<P(n)の時には(ステップ104のYES)、R(n)と判定され、Po≧P(n)の時には(ステップ104のNO)、R(n+1)と判定される。
【0047】
ビットレートがR(n)と判定された場合はR=R(n)と設定し(ステップ105)、R(n+1)と判定された場合はR=R(n+1)と設定して(ステップ106)、Rを符号化器に出力する(ステップ107)。こうして、音声・画像符号化部402は、指定されたビットレートRで入力音声・画像データを符号化し、符号化されたデータがパケット送信部403を通してネットワークへ送出される。
【0048】
以上説明したように、本発明の第1実施形態によれば、目標ビットレートが算出されると、その目標ビットレートに隣接する離散的ビットレートが決定され、その何れのビットレートに符号化器を設定するかは、目標ビットレートが何れのビットレートに近いかに依存して確率的に決定される。
【0049】
したがって、目標ビットレートがビットレートR(n)に近ければ、そのビットレートR(n)に設定される確率が高くなる。ネットワークに多数の端末が接続され、それらの端末で目標ビットレートがほぼ同じ程度であると仮定すれば、その確率に対応する数の端末がビットレートR(n)に設定され、その他の端末がビットレートR(n+1)に設定される、と推定できる。したがって、全端末の平均設定ビットレートは目標ビットレート近くになり、このために、TCPなどの他の制御方式との公平性を保持できると共に、各端末が目標ビットレートに近づこうとしてビットレートの設定を頻繁に変動させるという従来生じていた事態を回避することができる。
【0050】
(2)第2実施形態
本発明の第2実施形態では、現在のビットレートと目標ビットレートとの差に依存してビットレート変更の確率を決定し、その際、ビットレートの大きな変動を避けるために隣接したビットレートにのみ変更可能としている。
【0051】
2.1)制御フロー
図2は、本発明の第2実施形態によるビットレート制御を示すフローチャートである。まず、第1実施形態と同じく目標とするビットレートRtを計算し(ステップ101)、目標ビットレートが現在のビットレートR(n)よりも小さいか否かを判定する(ステップ202)。Rtの方が小さいと判定された場合には(ステップ202のYES)、ビットレートを下げるか否かの判定を行い(ビットレート低下判定:ステップ204〜207)、そうでない場合は(ステップ202のNO)、Rtと現在のビットレートR(n)とが等しいか否かを判定する(ステップ203)。
【0052】
Rtと現在のビットレートとが等しいと判定された場合は(ステップ203のYES)、そのままR=R(n)とする(ステップ214)。そうでない場合は(ステップ203のNO)、ビットレートを上げるか否かの判定を行う(ビットレート上昇判定:ステップ209〜212)。
【0053】
ビットレート低下判定(ステップ204〜207)では、まず、RtとR(n)の差が大きい程、値が大きくなるような確率Pd(n)を計算する(ステップ204)。次式(3)は、このような計算式の一例である。
【0054】
Pd(n) = (R(n)-Rt) / (R(N-1)-R(0)) (3)。
【0055】
次に、確率Pd(n)に基づくビットレート変更判定を実行する。本実施形態では、たとえば乱数を用いてビットレート判定を行う。まず、乱数(正確には、疑似乱数)Poを0≦Po<1の範囲で生成する(ステップ205)。ここでは、一様乱数を用いる。続いて、得られた乱数Poをステップ204で算出した確率Pd(n)と比較する(ステップ206)。
【0056】
Po<Pd(n)であれば(ステップ206のYES)、さらに現在のビットレートR(n) が下限であるか否か(ここでは、n=0であるか否か)を判定する(ステップ207)。現在のビットレートR(n) が下限でなければ(ステップ207のYES)、ビットレートを下げると判定され、nをデクリメントし(ステップ208)、R=R(n)と設定する(ステップ214)。
【0057】
Po≧Pd(n)の場合(ステップ206のNO)あるいは現在のビットレートR(n) が下限の場合(ステップ207のNO)には、ビットレートを変更しないと判定され、そのままR=R(n)とする(ステップ214)。
【0058】
ビットレート上昇判定(ステップ209〜212)では、まず、RtとR(n)の差が大きい程、値が大きくなるような確率Pu(n)を計算する(ステップ209)。次式(4)は、このような計算式の一例である。
【0059】
Pu (n) = (Rt-R(n)) / (R(N-1)-R(0)) (4)。
【0060】
次に、確率Pu(n)に基づくビットレート変更判定を実行する。本実施形態では、たとえば乱数を用いてビットレート判定を行う。まず、乱数(正確には、疑似乱数)Poを0≦Po<1の範囲で生成する(ステップ210)。ここでは、一様乱数を用いる。続いて、得られた乱数Poをステップ209で算出した確率Pu(n)と比較する(ステップ211)。
【0061】
Po<Pu(n)であれば(ステップ211のYES)、さらに現在のビットレートR(n) が上限であるか否か(ここでは、n=N−1であるか否か)を判定する(ステップ212)。現在のビットレートR(n) が上限でなければ(ステップ212のYES)、ビットレートを上げると判定され、nをインクリメントし(ステップ213)、R=R(n)と設定する(ステップ214)。
【0062】
Po≧Pu(n)の場合(ステップ211のNO)あるいは現在のビットレートR(n) が上限の場合(ステップ212のNO)には、ビットレートを変更しないと判定され、そのままR=R(n)とする(ステップ214)。
【0063】
このようにして決定されたRを符号化器に出力する(ステップ215)。こうして、音声・画像符号化部402は、指定されたビットレートRで入力音声・画像データを符号化し、符号化されたデータがパケット送信部403を通してネットワークへ送出される。
2.2)確率Pd(n)の他の計算式
【0064】
確率Pd(n)の計算式としては、上記式(3)のほかに、次のようなバリエーションを用いることができる。
【0065】
Pd(n) = (R(n)-Rt) / (R(n)-R(0)) (3.1)。
【0066】
Rt < Rm の時、 Pd(n) = (Rm-Rt) / (Rm-R(0)) ,
Rt >= Rm の時、Pd(n) = 0
ただし、Rm = (R(n)+R(n-1))/2 (3.2)。
【0067】
Rt > R(n-1) の時、 Pd(n) = (R(n)-Rt) / (R(n)-R(n-1)) ,
Rt <= R(n-1) の時、 Pd(n) = 1 (3.3)。
【0068】
Rt <= R(n-1) の時、 Pd(n) = 1
R(n-1) < Rt <= Rm の時、Pd(n) = (Rm-Rt) / (Rm-R(n-1)) ,
Rt > Rm の時、 Pd(n) = 0
ただし、Rm = (R(n)+R(n-1))/2 (3.4)。
【0069】
図3は、式(3.1)〜式(3.4)にそれぞれ対応する確率Pdの変化を示すグラフである。図3の参照番号(1)〜(4)がそれぞれ式(3.1)〜式(3.4)に対応する。
【0070】
式(3.1)(図3の(1))は、式(3)の分母を現在のビットレートR(n)と最低のビットレートR(0)との差に置き換えたものであり、目標ビットレートRtが現在のビットレートR(n)から離れているほど値が高くなるような確率Pd(n)を生成する。
【0071】
式3.2(図3の(2))も、式(3.1)と同様の確率Pd(n)を生成するが、目標ビットレートRtが隣接したビットレートよりも現在のビットレートR(n)に近い場合には確率Pd(n)を0にする。これによって、ビットレートの無駄な変動を抑えることができる。
【0072】
式3.3(図3の(3))は、目標ビットレートRtが隣接したビットレートより近い場合には現在のビットレートR(n)から離れているほど値が高くなるような確率Pd(n)を生成し、隣接したビットレートより離れている場合には確率Pd(n)を1に固定する。
【0073】
式3.4(図3の(4))も、式(3.3)と同様の確率Pd(n)を生成するが、目標ビットレートRtが隣接したビットレートよりも現在のビットレートR(n)に近い場合には確率Pd(n)を0にする。これによって、ビットレートの無駄な変動を抑えることができる。
【0074】
ここで、式(3.1)〜式(3.4)の各々に1より小さい定数を乗じることもできる。この場合、この定数の値を小さくするほど、ビットレートの変動を抑えることができるが、目標ビットレートへの追従性が低下する。
【0075】
2.3)確率Pu(n)の他の計算式
確率Pu(n)の計算式としては、上記式(4)のほかに、次のようなバリエーションを用いることができる。
【0076】
Pu(n) = (Rt-R(n)) / (R(n)-R(0)) (4.1)。
【0077】
Rt > Rm の時、 Pu(n) = (Rt-Rm) / (Rm-R(0)) ,
Rt <= Rm の時、Pu(n) = 0
ただし、Rm = (R(n)+R(n+1))/2 (4.2)。
【0078】
Rt < R(n+1) の時、 Pu(n) = (Rt-R(n)) / (R(n)-R(n+1)) ,
Rt >= R(n+1) の時、 Pu(n) = 1 (4.3)。
【0079】
Rt < Rm の時、 Pu(n) = 0
Rm <= Rt < R(n+1) の時、Pu(n) = (Rt-Rm) / (Rm-R(n+1)) ,
Rt >= R(n+1) の時、 Pu(n) = 1
ただし、Rm = (R(n)+R(n+1))/2 (4.4)。
【0080】
図4は、式(4.1)〜式(4.4)にそれぞれ対応する確率Pu の変化を示すグラフである。図4の参照番号(1)〜(4)がそれぞれ式(4.1)〜式(4.4)に対応する。
【0081】
式(4.1)(図4の(1))は、式(4)の分母を現在のビットレートR(n)と最低のビットレートR(0)との差に置き換えたものであり、目標ビットレートRtが現在のビットレートR(n)から離れているほど値が高くなるような確率Pu(n)を生成する。
【0082】
式4.2(図4の(2))も、式(4.1)と同様の確率Puを生成するが、目標ビットレートRtが隣接したビットレートよりも現在のビットレートR(n)に近い場合には確率Pu(n)を0にする。これによって、ビットレートの無駄な変動を抑えることができる。
【0083】
式4.3(図4の(3))は、目標ビットレートRtが隣接したビットレートより近い場合には現在のビットレートR(n)から離れているほど値が高くなるような確率Pu(n)を生成し、隣接したビットレートより離れている場合には確率Pu(n)を1に固定する。
【0084】
式4.4(図4の(4))も、式(4.3)と同様の確率Pu(n)を生成するが、目標ビットレートRtが隣接したビットレートよりも現在のビットレートR(n)に近い場合には確率Pu(n)を0にする。これによって、ビットレートの無駄な変動を抑えることができる。
【0085】
ここで、式(4.1)〜式(4.4)の各々に1より小さい定数を乗じることもできる。この場合、この定数の値を小さくするほど、ビットレートの変動を抑えることができるが、目標ビットレートへの追従性は低下する。
【0086】
なお、上記式(3)、(4)、(3.1)〜(3.4)および(4.1)〜(4.4)の代わりに、ビットレートと確率Pd(n)/Pu(n)との対応関係を具体的な数値として格納したテーブルを用いて、検索により確率を決定することも可能である。いずれにしても、このような式あるいはテーブルは、変更確率生成情報としてメモリに予め格納されている。
【0087】
以上説明したように、本発明の第2実施形態によれば、現在設定されているビットレートR(n)と算出された目標ビットレートRtとの差が大きいほど、ビットレート変更の確率が大きくなる。すなわち、現在設定されているビットレートR(n)が目標ビットレートRtから離れている端末では、ビットレートが変更される確率が高くなり、目標ビットレートに近い端末では低くなる。
【0088】
したがって、ネットワークに多数の端末が接続され、それらの端末で目標ビットレートがほぼ同じ程度であると仮定すれば、全端末の平均設定ビットレートは目標ビットレート近くになる。このために、TCPなどの他の制御方式との公平性を維持できると共に、各端末が目標ビットレートに近づこうとしてビットレートの設定を頻繁に変動させるという従来生じていた事態を回避することができる。
さらに、本発明の第2実施形態によれば、各端末において、現在設定されているビットレートR(n)から1ステップ上下するだけであり、急激なビットレート変更は生じない。このことは、音声・画像の品質劣化を抑える効果がある。
【0089】
(3)第3実施形態
本発明の第3実施形態では、AIMDにおける動作と同様に、パケット損失に応じてビットレートを変更する。ビットレート変更時に確率に基いた判定を行うことにより、ビットレートが離散的であっても、TCPフレンドリー制御を実現できる。
【0090】
3.1)制御フロー
図5は、本発明の第3実施形態によるビットレート制御を示すフローチャートである。図5において、まず、受信した音声・画像パケットの損失数や相手側端末から通知されたパケット損失率などに基づいてパケット損失の有無を検出し(ステップ301)、パケット損失があるか否かの判定を行う(ステップ302)。
【0091】
パケット損失がある場合には(ステップ302のYES)、ビットレートを下げるか否かの判定(ビットレート低下判定)を行い(ステップ303〜306)、パケット損失がない場合には(ステップ302のNO)、ビットレートを上げるか否かの判定(ビットレート上昇判定)を行う(ステップ308〜311)。
【0092】
ビットレート低下判定(ステップ303〜306)では、まず、現在のビットレートが高い程、値が大きくなるような確率Pd(n)を計算する(ステップ303)。次式(5)は、このような計算式の一例である。
【0093】
Pd(n) = (R(n)-R(0)) / (R(N-1)-R(0)) (5)。
【0094】
次に、確率Pd(n) に基づくビットレート変更判定を実行する。本実施形態では、乱数を用いてビットレート判定を行う。まず、乱数(正確には、疑似乱数)Poを0≦Po<1の範囲で生成する(ステップ304)。ここでは、一様乱数を用いる。続いて、得られた乱数Poをステップ303で算出した確率Pd(n) と比較する(ステップ305)。
【0095】
Po<Pd(n)であれば(ステップ305のYES)、さらに現在のビットレートR(n) が下限であるか否か(ここでは、n=0であるか否か)を判定する(ステップ306)。現在のビットレートR(n) が下限でなければ(ステップ306のYES)、ビットレートを下げると判定され、nをデクリメントし(ステップ307)、R=R(n)と設定する(ステップ313)。
【0096】
Po≧Pd(n)の場合(ステップ305のNO)あるいは現在のビットレートR(n) が下限の場合(ステップ306のNO)には、ビットレートを変更しないと判定され、そのままR=R(n)とする(ステップ313)。
【0097】
ビットレート上昇判定(ステップ308〜311)では、まず、現在のビットレートR(n)が低い程、値が大きくなるような確率Pu(n) を計算する(ステップ308)。次式(6)は、このような計算式の一例である。
【0098】
Pu(n) = (R(N-1)-R(n)) / (R(N-1)-R(0)) (6)。
【0099】
次に、確率Pu(n) に基づくビットレート変更判定を実行する。本実施形態では、乱数を用いてビットレート判定を行う。まず、乱数(正確には、疑似乱数)Poを0≦Po<1の範囲で生成する(ステップ309)。ここでは、一様乱数を用いる。続いて、得られた乱数Poをステップ308で算出した確率Pu(n) と比較する(ステップ310)。
【0100】
Po<Pu(n)であれば(ステップ310のYES)、さらに現在のビットレートR(n) が上限であるか否か(ここでは、n=N−1であるか否か)を判定する(ステップ311)。現在のビットレートR(n) が上限でなければ(ステップ311のYES)、ビットレートを上げると判定され、nをインクリメントし(ステップ312)、R=R(n)と設定する(ステップ313)。
【0101】
Po≧Pu(n)の場合(ステップ310のNO)あるいは現在のビットレートR(n) が上限の場合(ステップ311のNO)には、ビットレートを変更しないと判定され、そのままR=R(n)とする(ステップ313)。
このようにして決定されたRを符号化器に出力する(ステップ314)。こうして、音声・画像符号化部402は、指定されたビットレートRで入力音声・画像データを符号化し、符号化されたデータがパケット送信部403を通してネットワークへ送出される。
【0102】
ここで、式(5)および式(6)に1より小さい定数を乗じることもできる。この場合、この定数の値を小さくするほど、ビットレートの変動を抑えることができるが、目標ビットレートへの追従性は低下する。
【0103】
なお、上記式(5)および(6)の代わりに、ビットレートと確率Pd/Puとの対応関係を具体的な数値として格納したテーブルを用いて、検索により確率を決定することも可能である。いずれにしても、このような式あるいはテーブルは、変更確率生成情報としてメモリに予め格納されている。
【0104】
3.2)他の確率設定法
次に、本実施形態における制御をTCPフレンドリー制御にする場合の図5のステップ303および308で算出される確率Pd(n)およびPu(n)の設定法を示す。
【0105】
まず、AIMD動作に基くTCPフレンドリー制御におけるビットレート増加時の加算値およびビットレート減少時の乗算値をそれぞれAおよびMであるとする。本実施形態における制御とAIMD動作に基くTCPフレンドリー制御とにおいて、増加値の平均が等しいことを示す式(7)を解くことにより、ビットレートを上げるときの確率Pu(n)を求めることができる。
【0106】
A = [R(n+1)-R(n)]Pu(n) (7)
Pu(n) = A / [R(n+1)-R(n)]。
【0107】
また、AIMD動作に基くTCPフレンドリー制御では、ビットレートがR(n)におけるビットレート減少値D(n)は、式(8)で示される。
【0108】
D(n) = (1-M)R(n) (8)。
【0109】
よって、本実施形態における制御とAIMD動作に基くTCPフレンドリー制御とにおいて、減少値の平均が等しいことを示す式(9)を解くことにより、ビットレートを下げる時のPd(n)を求めることができる。
【0110】
D(n) = [R(n)-R(n-1)]Pd(n) (9)
Pd(n) = D(n) / [R(n)-R(n-1)]。
【0111】
このようにビットレートを下げるときの確率Pd(n)および上げるときの確率Pu(n)を設定することで、ビットレート制御をTCPフレンドリー制御にすることができる。
【0112】
なお、上記式(5)〜(9)のような計算式の代わりに、離散的ビットレートの各々に対してビットレートを低下させる確率Pdと上昇させる確率Puとをテーブルにあらかじめ格納し、現在のビットレートR(n)を用いて検索することで同様のビットレート変更確率を求めることもできる。
【0113】
以上説明したように、本発明の第3実施形態によれば、パケットの損失が検出されてビットレートを低下させる必要が生じた場合、あるいは、パケット損失が検出されないことからビットレートを上昇させることができる場合には、現在設定されているビットレートR(n)がビットレート設定可能範囲のどの位置にあるかによって、ビットレート変更の確率を変化させる。具体的には、パケットの損失が検出されるようになると、現在設定されているビットレートR(n)が高い端末では、ビットレートを低下させる確率を高くし、低い端末では低くする。逆に、パケットの損失が検出されい場合には、ネットワークは順調に動作しているから、現在設定されているビットレートR(n)が低い端末は、ビットレートを上昇させる確率を高くし、高い端末では低くする。
【0114】
したがって、ネットワークに多数の端末が接続され、それらがパケットの損失を検出したと仮定すれば、ビットレートが高い端末ほど多くビットレートが低下し、パケット損失が検出されない場合にはビットレートが低い端末ほど多く上昇する。このために、全端末間で公平なビットレート設定が可能となり、ネットワークの利用効率を最適化できると共に、各端末が目標ビットレートに近づこうとしてビットレートの設定を頻繁に変動させるという従来生じていた事態を回避することができる。
【0115】
さらに、TCPフレンドリー制御と整合するようにビットレート変更確率を設定することで、端末間の公平性およびTCPとの公平性を確保することができる。
【0116】
(4)第4実施形態
本発明の第4実施形態によるビットレート制御では、上記第2実施形態あるいは第3実施形態におけるビットレート低下及び上昇確率Pd(n)およびPu(n)に隣接ビットレートの間隔の大きさを反映させる。たとえば、隣接ビットレートまでの距離が大きいほどビットレート変更確率を小さくすることで、音声・画像の品質劣化をさらに抑制することができる。
【0117】
上述したように、音声・画像符号化部402が有するN個のビットレートR(0)〜R(N-1)は、R(0) < R(1) <・・・< R(N-1)であるが、隣接するビットレートの間隔R(n)-R(n-1) あるいは R(n+1)-R(n) は一般に均一ではない。たとえば、音声・画像符号化部402が3つのビットレート(10kbps, 64kbps および128kbps)を有する場合には、R(1)-R(0) = 54kbps、R(2)-R(1) = 64kbps となる。
【0118】
このようにビットレート間隔が不均一である場合、一律の確率計算でビットレート変更を行うと、端末によっては大きなビットレート変更が生じて音声・画像の品質を劣化させる要因となる場合がある。そこで、本実施形態では、隣接ビットレートとの距離に応じてビットレート変更確率をあらかじめ設定しておく。以下、具体的に説明する。
【0119】
隣接ビットレートとの距離に応じてビットレート変更確率を設定する場合には、計算式よりもテーブルを使用する方が適している。たとえば、次表に示すように、離散的ビットレートの各々に対してビットレートを低下させる確率Pd(n)と上昇させる確率Pu(n)とをテーブルにあらかじめ格納しておく。
【0120】
【表1】
Figure 0004000895
離散的ビットレートの各々に対するビットレート低下/上昇確率Pd(n)/Pu(n)は、隣接ビットレートとの距離が大きくなるほど、値が小さくなるように設定する。
【0121】
たとえば、現在設定されているビットレートをR(n)としたときに、次式(10)および(11)のように、ビットレート変更確率を隣接ビットレートとの距離に反比例させる。
【0122】
Pd(n) = Cd(n) / (R(n)-R(n-1)) (10)
Pu(n) = Cu(n) / (R(n+1)-R(n)) (11)。
【0123】
ただし、Cd(n) は、第2実施形態における式(3)、(3.1)あるいは(3.2)、または、第3実施形態の式(5)により定まる。Cu(n) は、第2実施形態における式(4)、(4.1)あるいは(4.2)、または、第3実施形態の式(6)により定まる。
【0124】
このようなビットレート変更確率設定ステップを、図2のステップ204および209、図5のステップ303および308の代わりに用いることで、隣接ビットレートまでの距離が大きいほどビットレート変更確率が小さくなり、大きなビットレート変更が抑えられ、音声・画像の品質劣化を抑制することができる。
【0125】
(5)ビットレート制御部の構成例
図6は、本発明の上記各実施形態を実現するビットレート制御部の構成を示すブロック図である。ビットレート制御部は、デジタルシグナルプロセッサ(DSP)や中央処理装置(CPU)などのプログラム制御プロセッサ601と、プログラムメモリ602と、確率の計算式あるいはテーブルを格納したメモリ(図示せず)と、から構成され、プログラムメモリ602には上記第1〜第4実施形態のいずれかに対応するビットレート制御プログラムがあらかじめ格納されている。
【0126】
プログラム制御プロセッサ601は、プログラムメモリ602からビットレート制御プログラムを読み出して実行し、計算式あるいはテーブルを参照しながらラウンドトリップ時間あるいはパケット損失率などを用いてビットレートRを決定し、それを音声・画像符号化器402へ出力する。
【0127】
(6)ビットレート制御システム
上述したように、図8に示す端末では、たとえばパケット受信部404でRTCPパケットを受信し、そこからラウンドトリップ時間およびパケット損失率に関する情報を抽出して、本発明によるビットレート制御部405に出力する。ビットレート制御部405では、上述したプロセスによりビットレート制御が行われる。すなわち、自端末内でビットレートの制御が行われる。これに対して、相手側の端末から自端末のビットレートが制御されるように構成することも可能である。
【0128】
図7は、相手側からビットレート制御が行われる場合のシステム構成を示すブロック図である。ここでは説明を簡単にするために、ネットワークに2つの端末AおよびBが接続され、互いに音声・画像データを送受信しているものとする。また、図8と同様の機能を有するブロックには同じ参照番号を付けて説明は省略する。
【0129】
図7において、たとえば端末Aのパケット受信部504が相手側の端末Bからネットワークを通して音声・画像パケットを受信すると、受信した音声・画像パケットの損失数などからパケット損失率などの情報を生成し、ビットレート制御部505へ出力する。ビットレート制御部505は、パケット損失率などの情報に基づいて、本発明の第1〜第4実施形態で説明したようにビットレートRを決定し、そのビットレート情報をパケット送信部503へ出力する。また、パケット受信部504は、端末Bにより生成されたビットレート情報を抽出して、音声・画像符号化部402へ出力する。パケット送信部503は、ビットレート情報と符号化された音声・画像情報とから送信パケットを生成し、ネットワークを通して端末Bへ送信する。たとえば、RTPによる音声通信において、AMR(Adaptive Multi-Rate)音声Codecを用いる場合、ヘッダに4ビットのCMR(Codec Mode Request)というフィールドがあり、相手側から自端末へ向けて送信するビットレートをCodec Mode(ビットレートに対応する番号)によって指定することができる。
【0130】
端末Bは、端末Aからパケットを受信すると、そこからビットレート情報を抽出し、音声・画像符号化部402へ出力する。音声・画像符号化部402は、そのビットレート情報により指定されたビットレートRで送信音声・画像情報401を符号化し、符号化された音声・画像データは、ビットレート制御部505により生成されたビットレート情報とともにパケット送信部503から端末Aへ送信される。
【0131】
このように、端末AおよびBが互いに相手の送信ビットレートを制御することで、RTCPパケットを用いてネットワークの情報をやりとりする必要がなく、RTCPパケットにより消費される帯域を節約することができる。
【0132】
さらに、RTCPパケットの送信間隔は5秒程度であるためにネットワークの変化に素早く対応することができないが、各端末が受信したパケットからネットワークの状況を検出するために、ネットワークの変化に迅速に対応することができ、本発明の効果をさらに向上させることができる。
【0133】
なお、上記第1〜第4実施形態において、連続してビットレートが変更されることにより生じる音質及び画質の劣化を避けるために、ビットレートを変更してから一定時間は、ビットレートを変更する確率を0又は小さくすることも可能である。
【0134】
さらに、本発明によるビットレート制御方法は更新時間によらず適用可能である。たとえば、更新時間が10秒で遷移確率を0.1と設計した場合、更新時間が1秒に変わったとしても、遷移確率を1/10の0.01に調整すれば、ほぼ同様の効果を維持することができる。
【0135】
【発明の効果】
以上詳細に説明したように、本発明によれば、ネットワークの状態に応じてビットレートを制御する際に、確率に基いてビットレートを決定するために、リアルタイムトラフィックの品質劣化を引き起こすようなビットレートの激しい変動を抑えることができ、しかもTCPとの公平性を実現することができる。
【0136】
すなわち、通信システムの全端末の各々において利用可能なビットレートが離散的であっても、全端末のビットレートを平均した値が所望のビットレートとなるように各端末のビットレートを変更する確率値を定めることにより、各端末においてビットレートの変動の少ない制御が可能となり、音声・画像などのリアルタイム通信の品質を向上させることができる。
【図面の簡単な説明】
【図1】 本発明の第1実施形態によるビットレート制御方法を示すフローチャートである。
【図2】 本発明の第2実施形態によるビットレート制御方法を示すフローチャートである。
【図3】 ビットレート低下判定における確率計算式(3.1)〜式(3.4)にそれぞれ対応する確率Pdの変化を示すグラフである。
【図4】 ビットレート上昇判定における確率計算式(4.1)〜式(4.4)にそれぞれ対応する確率Puの変化を示すグラフである。
【図5】 本発明の第3実施形態によるビットレート制御方法を示すフローチャートである。
【図6】 本発明の上記各実施形態を実現するビットレート制御部の構成を示すブロック図である。
【図7】 相手側からビットレート制御が行われる場合のシステム構成を示すブロック図である。
【図8】 音声・画像通信装置の基本的なブロック構成図である。
【図9】 (a)は、従来のビットレート変動を模式的に示す図であり、(b)は本発明によるビットレート変動を模式的に示す図である。
【符号の説明】
401 入力音声・画像データ
402 音声・画像符号化部
403 パケット送信部
404 パケット受信部
405 ビットレート制御部
406 音声・画像復号部
407 出力音声・画像データ

Claims (43)

  1. ネットワークを通してリアルタイムトラフィックを送信する際のビットレート制御方法において、
    a)複数の予め定められた離散的ビットレートの1つを送信ビットレートとして設定し
    b)目標ビットレートまたは現在設定されている送信ビットレートの一方に隣接する少なくとも1つの離散的ビットレートを選択する確率を決定し、
    c)前記決定された確率に基づいて、前記少なくとも1つの離散的ビットレートのいずれかを新たな送信ビットレートとして設定する
    ことを特徴とするビットレート制御方法。
  2. ネットワークを通してリアルタイムトラフィックを送信する際のビットレート制御方法において、
    a)複数の予め定められた離散的ビットレートを用意し、
    b)前記複数の離散的ビットレートのうち任意の隣接したビットレートの一方を選択する確率を決定し、
    c)前記決定された確率に基づいて、いずれか一方のビットレートを設定するか否かを判定し、
    前記ステップ(b)は、
    b.1)前記ネットワークの状態に応じて目標ビットレートを設定し、
    b.2)前記設定された目標ビットレートに隣接するビットレートを決定し、
    b.3)前記設定された目標ビットレートが前記隣接ビットレートの一方に近いほど、当該一方のビットレートを選択する確率を高くする、
    ことを特徴とするビットレート制御方法
  3. ネットワークを通してリアルタイムトラフィックを送信する際のビットレート制御方法において、
    a)複数の予め定められた離散的ビットレートを用意し、
    b)前記複数の離散的ビットレートのうち任意の隣接したビットレートの一方を選択する確率を決定し、
    c)前記決定された確率に基づいて、いずれか一方のビットレートを設定するか否かを判定し、
    現在設定されているビットレートの変更は、一段高い隣接ビットレートへの変更、一段低い隣接ビットレートへの変更、および、変更なし、のいずれかであることを特徴とするビットレート制御方法
  4. 前記ステップ(b)は、
    b.1)前記ネットワークの状態に応じて目標ビットレートを設定し、
    b.2)前記設定された目標ビットレートと現在設定されているビットレートとの差の大きさに依存して、前記現在設定されているビットレートに隣接するビットレートの一方を選択する確率を変化させる、
    ことを特徴とする請求項3記載のビットレート制御方法。
  5. 前記ステップ(b)は、
    b.1)前記ネットワークの状態に応じてビットレートの変更方向を決定し、
    b.2)前記複数の離散的ビットレートにおける前記現在設定されているビットレートの高さに依存して、前記現在設定されているビットレートに隣接するビットレートの一方を選択する確率を変化させる、
    ことを特徴とする請求項3記載のビットレート制御方法。
  6. 前記ステップ(b)において、隣接するビットレートの間隔に依存して前記選択する確率を決定することを特徴とする請求項1記載のビットレート制御方法。
  7. さらに、
    d)前記ステップ(c)によって現在設定されているビットレートが変更されたか否かを判定し、
    e)ビットレートが変更された場合には、変更後の予め定められた時間が経過するまで、前記選択する確率を通常の確率よりも小さくする、
    ことを特徴とする請求項1ないし6のいずれかに記載のビットレート制御方法。
  8. 前記予め定められた時間が経過するまで前記選択する確率を0に設定することを特徴とする請求項7記載のビットレート制御方法。
  9. ネットワークを通してリアルタイムトラフィックを送信する際のビットレート制御方法において、
    a)複数の予め定められた離散的ビットレートを用意し、
    b)前記離散的ビットレートの任意の隣接ビットレートのうち、一方に近いほど、当該一方のビットレートを選択する確率が高くなるような変更確率生成情報を用意し、
    c)前記ネットワークの状態に応じて目標ビットレートを設定し、
    d)前記設定された目標ビットレートに隣接するビットレートと前記変更確率生成情報とに基づいて、前記隣接するビットレートのいずれか一方を選択する確率を決定し、
    e)前記決定された確率に基づいて、前記いずれか一方のビットレートに設定する、
    ことを特徴とするビットレート制御方法。
  10. 前記変更確率生成情報は、次式
    P = (R(n+1)-Rt) / (R(n+1)-R(n))
    P は低い方の隣接ビットレートを選択する確率、Rtは前記設定された目標ビットレート、R(n)とR(n+1)とは隣接するビットレートであり、R(n+1)は1段高いビットレートである。)
    によって表現されることを特徴とする請求項9記載のビットレート制御方法。
  11. 前記ステップ(c)において、前記目標ビットレートはTCP(Transmission Control Protocol)フレンドリー制御に従って計算されることを特徴とする請求項9または10記載のビットレート制御方法。
  12. ネットワークを通してリアルタイムトラフィックを送信する際のビットレート制御方法において、
    a)複数の予め定められた離散的ビットレートの1つを送信ビットレートとして設定し
    b)目標ビットレートと現在設定されているビットレートとの差が大きいほど、前記現在設定されているビットレートに隣接するビットレートのうち前記目標ビットレートに近い方を選択する確率が高くなるような変更確率生成情報を用意し、
    c)前記ネットワークの状態に応じて目標ビットレートを設定し、
    d)前記設定された目標ビットレートと前記変更確率生成情報とに基づいて、前記現在設定されているビットレートに隣接するビットレートのいずれか一方を選択する確率を決定し、
    e)前記決定された確率に基づいて、前記いずれか一方のビットレートを設定するか否かを判定する、
    ことを特徴とするビットレート制御方法。
  13. 前記変更確率生成情報では、
    前記現在設定されているビットレートが前記目標ビットレートより高い場合には、その差が大きいほど、前記現在設定されているビットレートを低い方の隣接ビットレートへ変更する確率を高くし、
    前記現在設定されているビットレートが前記目標ビットレートより低い場合には、その差が大きいほど、前記現在設定されているビットレートを高い方の隣接ビットレートへ変更する確率を高くし、
    前記現在設定されているビットレートと前記目標ビットレートとが等しい場合には、前記現在設定されているビットレートを変更しない、
    ことを特徴とする請求項12記載のビットレート制御方法。
  14. 前記現在設定されているビットレートが前記目標ビットレートより高い場合の前記変更確率生成情報は、次式(1)〜(5):
    (1)Pd(n) = (R(n)-Rt) / (R(N-1)-R(0));
    (2)Pd(n) = (R(n)-Rt) / (R(n)-R(0));
    (3)Rt < Rm の時、 Pd(n) = (Rm-Rt) / (Rm-R(0)) ,
    Rt >= Rm の時、Pd(n) = 0
    ただし、Rm = (R(n)+R(n-1))/2;
    (4)Rt > R(n-1) の時、 Pd(n) = (R(n)-Rt) / (R(n)-R(n-1)) ,
    Rt <= R(n-1) の時、 Pd(n) = 1;および
    (5)Rt <= R(n-1) の時、 Pd(n) = 1
    R(n-1) < Rt <= Rm の時、 Pd(n) = (Rm-Rt) / (Rm-R(n-1)) ,
    Rt > Rm の時、 Pd(n) = 0
    ただし、Rm = (R(n)+R(n-1))/2、
    (ここで、Nは離散的ビットレートの数、Pd(n)はビットレートを低下させる確率、Rtは前記設定された目標ビットレート、R(0)は離散的ビットレートの最低ビットレート、R(n)は前記現在設定されているビットレート、R(n−1)は前記現在設定されているビットレートに隣接する1段低いビットレートである。)
    のうちの1つの式によって表現されることを特徴とする請求項13記載のビットレート制御方法。
  15. 前記現在設定されているビットレートが前記目標ビットレートより低い場合の前記変更確率生成情報は、次式(6)〜(10):
    (6)Pu(n) = (Rt-R(n)) / (R(N-1)-R(0));
    (7)Pu(n) = (Rt-R(n)) / (R(n)-R(0));
    (8)Rt > Rm の時、 Pu(n) = (Rt-Rm) / (Rm-R(0)) ,
    Rt <= Rm の時、Pu(n) = 0
    ただし、Rm = (R(n)+R(n+1))/2;
    (9)Rt < R(n+1) の時、 Pu(n) = (Rt-R(n)) / (R(n)-R(n+1)) ,
    Rt >= R(n+1) の時、 Pu(n) = 1;
    (10)Rt < Rm の時、 Pu(n) = 0
    Rm <= Rt < R(n+1) の時、Pu(n) = (Rt-Rm) / (Rm-R(n+1)) ,
    Rt >= R(n+1) の時、 Pu (n) = 1
    ただし、Rm = (R(n)+R(n+1))/2、
    (ここで、Nは離散的ビットレートの数、Pu(n)はビットレートを上昇させる確率、Rtは前記設定された目標ビットレート、R(0)は離散的ビットレートの最低ビットレート、R(n)は前記現在設定されているビットレート、R(n+1)は前記現在設定されているビットレートに隣接する1段高いビットレート、R(N−1)は離散的ビットレートの最高ビットレートである。)
    のうちの1つの式によって表現されることを特徴とする請求項13記載のビットレート制御方法。
  16. 前記ステップ(c)において、前記目標ビットレートはTCP(Transmission Control Protocol)フレンドリー制御に従って計算されることを特徴とする請求項12ないし15のいずれかに記載のビットレート制御方法。
  17. ネットワークを通してリアルタイムトラフィックを送信する際のビットレート制御方法において、
    a)複数の予め定められた離散的ビットレートを用意し、
    b)前記複数の離散的ビットレートにおける現在設定されているビットレートの高さに依存して、前記現在設定されているビットレートに隣接するビットレートの一方を選択する確率が変化するような変更確率生成情報を用意し、
    c)前記ネットワークの状態に応じてビットレートの変更方向を決定し、
    d)前記決定されたビットレート変更方向、前記現在設定されているビットレートおよび前記変更確率生成情報に基づいて、前記現在設定されているビットレートに隣接するビットレートのいずれか一方を選択する確率を決定し、
    e)前記決定された確率に基づいて、前記いずれか一方のビットレートを設定するか否かを判定する、
    ことを特徴とするビットレート制御方法。
  18. 前記変更確率生成情報では、
    前記ビットレート変更方向が低下方向である場合には、前記現在設定されているビットレートが高いほど、前記現在設定されているビットレートを低い方の隣接ビットレートへ変更する確率を高くし、
    前記ビットレート変更方向が上昇方向である場合には、前記現在設定されているビットレートが低いほど、前記現在設定されているビットレートを高い方の隣接ビットレートへ変更する確率を高くする、
    ことを特徴とする請求項17記載のビットレート制御方法。
  19. 前記変更確率生成情報は、
    前記ビットレート変更方向が低下方向である場合には、次式
    Pd(n) = (R(n)-R(0)) / (R(N-1)-R(0))
    (ここで、Nは離散的ビットレートの数、Pdはビットレートを低下させる確率、R(0)は離散的ビットレートの最低ビットレート、R(n)は前記現在設定されているビットレート、R(N−1)は離散的ビットレートの最高ビットレートである。)
    で表現され、
    前記ビットレート変更方向が上昇方向である場合には、次式
    Pu(n) = (R(N-1)-R(n)) / (R(N-1)-R(0))
    (ここで、Nは離散的ビットレートの数、Puはビットレートを上昇させる確率、R(0)は離散的ビットレートの最低ビットレート、R(n)は前記現在設定されているビットレート、R(N−1)は離散的ビットレートの最高ビットレートである。)
    で表現される、ことを特徴とする請求項18記載のビットレート制御方法。
  20. 前記変更確率生成情報では、
    前記ビットレート変更方向が低下方向である場合に、ビットレート低下確率をTCPフレンドリー制御におけるビットレート低下値に整合させて決定し、
    前記ビットレート変更方向が上昇方向である場合に、ビットレート上昇確率を前記TCPフレンドリー制御におけるビットレート低下値に整合させて決定する、
    ことを特徴とする請求項18記載のビットレート制御方法。
  21. 前記TCPフレンドリー制御はAIMD (Additive Increase/Multiple Decrease) に基づく制御であり、AIMDにおけるビットレート増加時の加算値およびビットレート減少時の乗算値をそれぞれAおよびMであるとすると、
    前記変更確率生成情報は、
    前記ビットレート変更方向が上昇方向である場合には、ビットレートを上げる確率Puを求めるための次式
    Pu(n) = A / [R(n+1)-R(n)]
    により表現され、
    前記ビットレート変更方向が低下方向である場合には、ビットレートを下げる確率Pdを求めるための次式
    Pd(n) = D(n) / [R(n)-R(n-1)] (ただし、D(n) = (1-M)R(n))
    により表現される、
    ことを特徴とする請求項20記載のビットレート制御方法。
  22. ネットワークを通してリアルタイムトラフィックを送信する際のビットレート制御方法において、
    a)複数の予め定められた離散的ビットレートを用意し、
    b)前記複数の離散的ビットレートにおける任意の隣接するビットレート間の距離に依存して確率が変化するような変更確率生成情報を用意し、
    c)前記ネットワークの状態に応じてビットレートの変更方向を決定し、
    d)前記決定されたビットレート変更方向、現在設定されているビットレートおよび前記変更確率生成情報に基づいて、前記現在設定されているビットレートに隣接するビットレートのいずれか一方を選択する確率を決定し、
    e)前記決定された確率に基づいて、前記いずれか一方のビットレートを設定するか否かを判定する、
    ことを特徴とするビットレート制御方法。
  23. 前記変更確率生成情報は、
    前記ビットレート変更方向が低下方向である場合には、
    Pd(n) = Cd(n) / (R(n)-R(n-1))
    ただし、Cd(n) は次式(1)〜(4)のいずれかにより定まり、
    (1)Cd(n) = (R(n)-Rt) / (R(N-1)-R(0));
    (2)Cd(n) = (R(n)-Rt) / (R(n)-R(0));
    (3)Rt < Rm の時、 Cd(n) = (Rm-Rt) / (Rm-R(0)) ,
    Rt >= Rm の時、Cd(n) = 0 (ただし、Rm = (R(n)+R(n-1))/2);
    (4)Cd(n) = (R(n)-R(0)) / (R(N-1)-R(0))
    (ここで、Nは離散的ビットレートの数、Rtは前記設定された目標ビットレート、R(0)は離散的ビットレートの最低ビットレート、R(n)は前記現在設定されているビットレート、R(n−1)は前記現在設定されているビットレートに隣接する1段低いビットレートである。)
    により表現され、、
    前記ビットレート変更方向が低下方向である場合には、
    Pu(n) = Cu(n) / (R(n+1)-R(n))
    ただし、Cu(n)は次式(5)〜(8)のいずれかにより定まり、
    (5)Cu(n) = (Rt-R(n)) / (R(N-1)-R(0));
    (6)Cu(n) = (Rt-R(n)) / (R(n)-R(0));
    (7)Rt > Rm の時、 Cu(n) = (Rt-Rm) / (Rm-R(0)) ,
    Rt <= Rm の時、Cu(n) = 0 (ただし、Rm = (R(n)+R(n+1))/2);
    (8)Cu(n) = (R(N-1)-R(n)) / (R(N-1)-R(0))
    (ここで、Nは離散的ビットレートの数、Rtは前記設定された目標ビットレート、R(0)は離散的ビットレートの最低ビットレート、R(n)は前記現在設定されているビットレート、R(n+1)は前記現在設定されているビットレートに隣接する1段高いビットレート、R(N−1)は離散的ビットレートの最高ビットレートである。)
    により表現される、
    ことを特徴とする請求項22記載のビットレート制御方法。
  24. 複数の予め定められた離散的ビットレートを有する符号化器を用いてネットワークを通してリアルタイムトラフィックを送信するシステムにおけるビットレート制御装置において、
    前記複数の離散的ビットレートの1つが送信ビットレートとして現在設定されている場合、目標ビットレートまたは前記現在設定されている送信ビットレートの一方に隣接する少なくとも1つの離散的ビットレートを選択する確率を生成するための変更確率生成情報を格納する格納手段と、
    前記目標ビットレートまたは前記現在設定されている送信ビットレートに基づいて前記変更確率生成情報により前記少なくとも1つの離散的ビットレートの確率を生成し、当該確率に基づいて前記符号化器のビットレート制御を実行する制御手段と、
    を有することを特徴とするビットレート制御装置。
  25. 複数の予め定められた離散的ビットレートを有する符号化器を用いてネットワークを通してリアルタイムトラフィックを送信するシステムにおけるビットレート制御装置において、
    前記複数の離散的ビットレートのうち任意の隣接したビットレートの一方を選択する確率を前記複数の離散的ビットレートごとに生成するための変更確率生成情報を格納する格納手段と、
    与えられたビットレートに基づいて前記変更確率生成情報により確率を生成し、当該確率に基づいて前記符号化器のビットレート制御を実行する制御手段と、
    前記ネットワークの状態を検出し目標ビットレートを設定するための目標ビットレート設定手段とを有し、
    前記制御手段は、前記設定された目標ビットレートに隣接するビットレートを決定し、前記設定された目標ビットレートが当該隣接ビットレートの一方に近いほど当該一方のビットレートを選択する確率が高くなるように前記符号化器のビットレート制御を実行する、ことを特徴とするビットレート制御装置
  26. 複数の予め定められた離散的ビットレートを有する符号化器を用いてネットワークを通してリアルタイムトラフィックを送信するシステムにおけるビットレート制御装置において、
    前記複数の離散的ビットレートのうち任意の隣接したビットレートの一方を選択する確率を前記複数の離散的ビットレートごとに生成するための変更確率生成情報を格納する格納手段と、
    与えられたビットレートに基づいて前記変更確率生成情報により確率を生成し、当該確率に基づいて前記符号化器のビットレート制御を実行する制御手段と、
    前記ネットワークの状態を検出し目標ビットレートを設定するための目標ビットレート設定手段とを有し、
    前記制御手段は、現在設定されているビットレートより一段高い隣接ビットレートへの変更、一段低い隣接ビットレートへの変更、および、変更なし、のいずれかを実行することを特徴とするビットレート制御装置
  27. 前記ネットワークの状態を検出し目標ビットレートを設定するための目標ビットレート設定手段をさらに有し、
    前記制御手段は、前記設定された目標ビットレートと現在設定されているビットレートとの差の大きさに依存して、前記現在設定されているビットレートに隣接するビットレートの一方を選択する確率が変化するように前記符号化器のビットレート制御を実行する、ことを特徴とする請求項26記載のビットレート制御装置。
  28. 前記ネットワークの状態に応じてビットレートの変更方向を決定する変更方向決定手段をさらに有し、
    前記制御手段は、前記複数の離散的ビットレートにおける前記現在設定されているビットレートの高さに依存して、前記現在設定されているビットレートに隣接するビットレートの一方を選択する確率が変化するように前記符号化器のビットレート制御を実行する、ことを特徴とする請求項26記載のビットレート制御装置。
  29. 前記変更方向決定手段は、パケット損失の有無に基づいてビットレートの低下および上昇のいずれかを決定することを特徴とする請求項28記載のビットレート制御装置。
  30. 前記変更確率生成情報では隣接するビットレートの間隔に依存して確率が決定されており、前記制御手段は、隣接するビットレートの間隔に依存した確率に基づいて前記符号化器のビットレート制御を実行する、ことを特徴とする請求項26記載のビットレート制御装置。
  31. ネットワークを通して端末間でリアルタイムトラフィックの通信を行うシステムにおけるリアルタイム通信端末において、
    前記ネットワークに接続しデータの送受信を行うための送受信手段と、
    複数の予め定められた離散的ビットレートを有し、送信データを符号化するための符号化手段と、
    前記符号化手段のビットレートを制御するためのビットレート制御手段と、
    を有し、
    前記ビットレート制御手段は、
    前記複数の離散的ビットレートの1つが送信ビットレートとして現在設定されている場合、目標ビットレートまたは前記現在設定されている送信ビットレートの一方に隣接す る少なくとも1つの離散的ビットレートを選択する確率を生成するための変更確率生成情報を格納する格納手段と、
    前記目標ビットレートまたは前記現在設定されている送信ビットレートに基づいて前記変更確率生成情報により前記少なくとも1つの離散的ビットレートの確率を生成し、当該確率に基づいて前記符号化手段のビットレート制御を実行する制御手段と、
    を有する、
    ことを特徴とするリアルタイム通信端末。
  32. 請求項31記載のリアルタイム通信端末が複数個前記ネットワークに接続されてなるリアルタイム通信システム。
  33. ネットワークを通して端末間でリアルタイムトラフィックの通信を行うシステムにおけるリアルタイム通信端末において、
    複数の予め定められた離散的ビットレートを有し、送信データを符号化するための符号化手段と、
    通信相手側のリアルタイム通信端末から前記ネットワークを通してリアルタイムトラフィックデータとビットレート制御指令とを受信する受信手段と、
    前記リアルタイムトラフィックデータから前記ネットワークの状態を検出する検出手段と、
    前記検出されたネットワークの状態に応じて前記通信相手側のビットレート制御を行うための送信ビットレート制御指令を生成するためのビットレート制御手段と、
    前記符号化手段によって符号化された送信データと前記送信ビットレート制御指令とを前記通信相手側のリアルタイム通信端末へ送信する送信手段と、
    を有し、
    前記ビットレート制御手段は、
    前記複数の離散的ビットレートの1つが送信ビットレートとして現在設定されている場合、目標ビットレートまたは前記現在設定されている送信ビットレートの一方に隣接する少なくとも1つの離散的ビットレートを選択する確率を生成するための変更確率生成情報を格納する格納手段と、
    前記目標ビットレートまたは前記現在設定されている送信ビットレートに基づいて前記変更確率生成情報により前記少なくとも1つの離散的ビットレートの確率を生成し、当該確率に基づいて前記ビットレート制御指令を生成する制御手段と、
    を有する、
    ことを特徴とするリアルタイム通信端末。
  34. 請求項33記載のリアルタイム通信端末が複数個前記ネットワークに接続されてなるリアルタイム通信システム。
  35. コンピュータに、ネットワークを通してリアルタイムトラフィックを送信する際のビットレート制御を実行させるためのプログラムにおいて、
    a)複数の予め定められた離散的ビットレートの1つを送信ビットレートとして設定し
    b)目標ビットレートまたは現在設定されている送信ビットレートの一方に隣接する少なくとも1つの離散的ビットレートを選択する確率を決定し、
    c)前記決定された確率に基づいて、前記少なくとも1つの離散的ビットレートのいずれかを新たな送信ビットレートとして設定する
    ように前記コンピュータを動作させることを特徴とするビットレート制御プログラム。
  36. コンピュータに、ネットワークを通してリアルタイムトラフィックを送信する際のビットレート制御を実行させるためのプログラムにおいて、
    a)複数の予め定められた離散的ビットレートを用意し、
    b)前記複数の離散的ビットレートのうち任意の隣接したビットレートの一方を選択する確率を決定し、
    c)前記決定された確率に基づいて、いずれか一方のビットレートを設定するか否かを判定し、
    前記ステップ(b)は、
    b.1)前記ネットワークの状態に応じて目標ビットレートを設定し、
    b.2)前記設定された目標ビットレートに隣接するビットレートを決定し、
    b.3)前記設定された目標ビットレートが前記隣接ビットレートの一方に近いほど、当該一方のビットレートを選択する確率を高くする、
    ように前記コンピュータを動作させるためのビットレート制御プログラム。
  37. コンピュータに、ネットワークを通してリアルタイムトラフィックを送信する際のビットレート制御を実行させるためのプログラムにおいて、
    a)複数の予め定められた離散的ビットレートを用意し、
    b)前記複数の離散的ビットレートのうち任意の隣接したビットレートの一方を選択する確率を決定し、
    c)前記決定された確率に基づいて、いずれか一方のビットレートを設定するか否かを判定し、
    現在設定されているビットレートの変更は、一段高い隣接ビットレートへの変更、一段低い隣接ビットレートへの変更、および、変更なし、のいずれかである、
    ように前記コンピュータを動作させることを特徴とするビットレート制御プログラム。
  38. 前記ステップ(b)は、
    b.1)前記ネットワークの状態に応じて目標ビットレートを設定し、
    b.2)前記設定された目標ビットレートと現在設定されているビットレートとの差の大きさに依存して、前記現在設定されているビットレートに隣接するビットレートの一方を選択する確率を変化させる、
    ことを特徴とする請求項37記載のビットレート制御プログラム。
  39. 前記ステップ(b)は、
    b.1)前記ネットワークの状態に応じてビットレートの変更方向を決定し、
    b.2)前記複数の離散的ビットレートにおける前記現在設定されているビットレートの高さに依存して、前記現在設定されているビットレートに隣接するビットレートの一方を選択する確率を変化させる、
    ことを特徴とする請求項37記載のビットレート制御プログラム。
  40. 前記ステップ(b)において、隣接するビットレートの間隔に依存して前記選択する確率を決定することを特徴とする請求項35記載のビットレート制御プログラム。
  41. さらに、
    d)前記ステップ(c)によって現在設定されているビットレートが変更されたか否かを判定し、
    e)ビットレートが変更された場合には、変更後の予め定められた時間が経過するまで、前記選択する確率を通常の確率よりも小さくする、
    ように前記コンピュータを動作させることを特徴とする請求項35ないし40のいずれかに記載のビットレート制御プログラム。
  42. 前記予め定められた時間が経過するまで前記確率を0に設定することを特徴とする請求項41記載のビットレート制御プログラム。
  43. 前記変更確率生成情報は、前記離散的ビットレートの任意の隣接ビットレートのうち高いほうの隣接ビットレートに近いほど、当該高い方の隣接ビットレートを選択する確率が高くなるように表現されることを特徴とする請求項9記載のビットレート制御方法。
JP2002120066A 2002-04-23 2002-04-23 リアルタイム通信のためのビットレート制御方法および装置 Expired - Fee Related JP4000895B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2002120066A JP4000895B2 (ja) 2002-04-23 2002-04-23 リアルタイム通信のためのビットレート制御方法および装置
PCT/JP2003/005170 WO2003092227A1 (en) 2002-04-23 2003-04-23 Bit rate control method and device
KR20047007857A KR100615119B1 (ko) 2002-04-23 2003-04-23 비트 레이트 제어 방법 및 장치
CNB038016664A CN100375468C (zh) 2002-04-23 2003-04-23 比特率控制方法及装置
US10/497,400 US20050105604A1 (en) 2002-04-23 2003-04-23 Bit rate contol method and device
EP03719175A EP1499073A4 (en) 2002-04-23 2003-04-23 METHOD AND DEVICE FOR ADJUSTING BIT RATE

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002120066A JP4000895B2 (ja) 2002-04-23 2002-04-23 リアルタイム通信のためのビットレート制御方法および装置

Publications (2)

Publication Number Publication Date
JP2003318966A JP2003318966A (ja) 2003-11-07
JP4000895B2 true JP4000895B2 (ja) 2007-10-31

Family

ID=29267352

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002120066A Expired - Fee Related JP4000895B2 (ja) 2002-04-23 2002-04-23 リアルタイム通信のためのビットレート制御方法および装置

Country Status (6)

Country Link
US (1) US20050105604A1 (ja)
EP (1) EP1499073A4 (ja)
JP (1) JP4000895B2 (ja)
KR (1) KR100615119B1 (ja)
CN (1) CN100375468C (ja)
WO (1) WO2003092227A1 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8254358B2 (en) * 2003-03-06 2012-08-28 Ericsson Ab Communicating a broadcast message to change data rates of mobile stations
US7433069B2 (en) * 2003-05-23 2008-10-07 Hitachi Kokusai Electric Inc. Image transmission method and its apparatus
US7599394B2 (en) * 2003-06-16 2009-10-06 Telefonaktiebolaget Lm Ericsson (Publ) Common rate control method for reverse link channels in CDMA networks
GB0321093D0 (en) * 2003-09-09 2003-10-08 Nokia Corp Multi-rate coding
US7616660B2 (en) * 2003-11-21 2009-11-10 Telefonaktiebolaget Lm Ericsson (Publ) Common rate control method for reverse link channels in CDMA networks
US8195304B2 (en) 2004-06-10 2012-06-05 Medtronic Urinary Solutions, Inc. Implantable systems and methods for acquisition and processing of electrical signals
US9308382B2 (en) 2004-06-10 2016-04-12 Medtronic Urinary Solutions, Inc. Implantable pulse generator systems and methods for providing functional and/or therapeutic stimulation of muscles and/or nerves and/or central nervous system tissue
US7761167B2 (en) 2004-06-10 2010-07-20 Medtronic Urinary Solutions, Inc. Systems and methods for clinician control of stimulation systems
US7239918B2 (en) 2004-06-10 2007-07-03 Ndi Medical Inc. Implantable pulse generator for providing functional and/or therapeutic stimulation of muscles and/or nerves and/or central nervous system tissue
US8165692B2 (en) 2004-06-10 2012-04-24 Medtronic Urinary Solutions, Inc. Implantable pulse generator power management
US9205255B2 (en) 2004-06-10 2015-12-08 Medtronic Urinary Solutions, Inc. Implantable pulse generator systems and methods for providing functional and/or therapeutic stimulation of muscles and/or nerves and/or central nervous system tissue
JP2006126894A (ja) * 2004-10-26 2006-05-18 Sony Corp コンテンツ配信方法、プログラムおよび情報処理装置
KR100800794B1 (ko) * 2005-07-01 2008-02-04 삼성전자주식회사 패킷망을 통해 음성 서비스를 지원하는 이동통신시스템에서 음성 서비스의 전송률을 제어하는 방법 및 장치
JP4817990B2 (ja) * 2005-08-17 2011-11-16 キヤノン株式会社 撮像装置及びその制御方法及びプログラム及び記憶媒体
US9480846B2 (en) 2006-05-17 2016-11-01 Medtronic Urinary Solutions, Inc. Systems and methods for patient control of stimulation systems
GB0622830D0 (en) * 2006-11-15 2006-12-27 Cambridge Silicon Radio Ltd Transmission rate selection
US7844725B2 (en) 2008-07-28 2010-11-30 Vantrix Corporation Data streaming through time-varying transport media
US8001260B2 (en) 2008-07-28 2011-08-16 Vantrix Corporation Flow-rate adaptation for a connection of time-varying capacity
US7975063B2 (en) * 2009-05-10 2011-07-05 Vantrix Corporation Informative data streaming server
JP2011120168A (ja) * 2009-12-07 2011-06-16 Kyocera Corp 通信装置
US9137551B2 (en) 2011-08-16 2015-09-15 Vantrix Corporation Dynamic bit rate adaptation over bandwidth varying connection
CN102710374B (zh) * 2012-05-28 2015-05-20 天津大学 无线流媒体传输中的速率控制方法
EP3220681B1 (en) * 2016-03-18 2020-07-15 Nokia Technologies Oy Adaptive and dynamic qos/qoe enforcement
EP3560207A1 (en) * 2016-12-21 2019-10-30 British Telecommunications Public Limited Company Managing congestion response during content delivery
KR20200100387A (ko) * 2019-02-18 2020-08-26 삼성전자주식회사 실시간 비트레이트 제어 방법 및 이를 위한 전자 장치

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3092850B2 (ja) * 1990-10-05 2000-09-25 株式会社リコー 多重化データ分離方法
JPH05260090A (ja) * 1992-03-09 1993-10-08 Nippon Telegr & Teleph Corp <Ntt> 映像転送方式
JPH06252870A (ja) * 1993-02-24 1994-09-09 Nec Corp データ多重化伝送方式
JPH06276172A (ja) * 1993-03-18 1994-09-30 Fujitsu Ltd タイムスロット割付け方法
US6112239A (en) * 1997-06-18 2000-08-29 Intervu, Inc System and method for server-side optimization of data delivery on a distributed computer network
US6567420B1 (en) * 1999-04-15 2003-05-20 Qualcomm, Incorporated Method and apparatus for high rate channel access control
DE60239898D1 (de) * 2001-02-12 2011-06-09 Lg Electronics Inc Steuerung der Datenübertragungsrate in der Rückwärtsverbindung für jede Mobilstation einzeln
US7961616B2 (en) * 2001-06-07 2011-06-14 Qualcomm Incorporated Method and apparatus for congestion control in a wireless communication system
US7363353B2 (en) * 2001-07-06 2008-04-22 Juniper Networks, Inc. Content service aggregation device for a data center
JP2003046976A (ja) * 2001-07-31 2003-02-14 Matsushita Electric Ind Co Ltd 映像配信装置、映像配信方法及びプログラム

Also Published As

Publication number Publication date
JP2003318966A (ja) 2003-11-07
CN100375468C (zh) 2008-03-12
KR20040096495A (ko) 2004-11-16
US20050105604A1 (en) 2005-05-19
CN1596528A (zh) 2005-03-16
EP1499073A4 (en) 2009-12-23
EP1499073A1 (en) 2005-01-19
WO2003092227A1 (en) 2003-11-06
KR100615119B1 (ko) 2006-08-22

Similar Documents

Publication Publication Date Title
JP4000895B2 (ja) リアルタイム通信のためのビットレート制御方法および装置
KR100608821B1 (ko) 휴대단말기의 왕복지연시간 측정장치 및 방법
US7295549B2 (en) Source and channel rate adaptation for VoIP
EP2382726B1 (en) Method of transmitting data in a communication system
RU2305908C2 (ru) Адаптивный способ оценивания скорости передачи мультимедийных данных
KR100963858B1 (ko) 대역폭을 제어하기 위한 데이터 패킷 전송 시간의 방법 및시스템
US7167451B1 (en) User controlled audio quality for voice-over-IP telephony systems
CN100438504C (zh) 一种流媒体发送速率控制方法
JP4827652B2 (ja) 中継装置、中継方法および中継プログラム
EP2165481B1 (en) Adaptive rate control in a communications system
US8588071B2 (en) Device and method for adaptation of target rate of video signals
EP2984790B1 (en) Voip bandwidth management
KR20040041170A (ko) 혼잡 제어를 위한 전송률을 계산하기 위해 수신 버퍼 크기를 사용하는 데이터 통신 방법 및 시스템
KR20030095995A (ko) 미디어 전송방법 및 그 송신장치 및 수신장치
US8340126B2 (en) Method and apparatus for congestion control
CA2457193C (en) Data communications method and system for transmitting multiple data streams calculating available bandwidth per stream and bit stream trade-off
JP5533177B2 (ja) パケットロス率推定装置、パケットロス率推定方法、パケットロス率推定プログラム、及び、通信システム
Huang et al. An embedded packet train and adaptive FEC scheme for VoIP over wired/wireless IP networks
JPH11298528A (ja) パケット交換システム及び通信端末
JP2007036960A (ja) 動的にセッションを切り替えるrtp通信用端末、呼接続システム及びプログラム
JP2006352420A (ja) 通信品質情報を含む品質パケットを送受信する端末、品質レポートサーバ及びプログラム
KR100698174B1 (ko) 네트워크 상에서 데이터의 유효 전송율 추정 방법 및데이터 전송 시스템
JP4973453B2 (ja) 送信端末、通信システム、プログラム、及びデータ品質制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050318

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070220

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: 20070724

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070806

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100824

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110824

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110824

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120824

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130824

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees