JP6205912B2 - 情報処理装置、配信方法および配信プログラム - Google Patents

情報処理装置、配信方法および配信プログラム Download PDF

Info

Publication number
JP6205912B2
JP6205912B2 JP2013142152A JP2013142152A JP6205912B2 JP 6205912 B2 JP6205912 B2 JP 6205912B2 JP 2013142152 A JP2013142152 A JP 2013142152A JP 2013142152 A JP2013142152 A JP 2013142152A JP 6205912 B2 JP6205912 B2 JP 6205912B2
Authority
JP
Japan
Prior art keywords
terminal device
time
distribution server
image
delay amount
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.)
Active
Application number
JP2013142152A
Other languages
English (en)
Other versions
JP2015015656A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013142152A priority Critical patent/JP6205912B2/ja
Priority to US14/306,306 priority patent/US9471093B2/en
Publication of JP2015015656A publication Critical patent/JP2015015656A/ja
Application granted granted Critical
Publication of JP6205912B2 publication Critical patent/JP6205912B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0661Clock or time synchronisation among packet nodes using timestamps
    • H04J3/0667Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • 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/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/75Indicating network or usage conditions on the user display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、情報処理装置、配信方法および配信プログラムに関する。
従来、複数の端末装置が表示する画像を同期させる技術が知られている。かかる技術の一例として、サーバ装置が画像データを生成し、ネットワークを介して、画像データを複数の端末装置へ送信するリモート接続型コラボレーション環境の技術が知られている。
例えば、サーバ装置は、各端末装置に表示させる画像データを生成し、TCP(Transmission Control Protocol)/IP(Internet Protocol)に従って、生成した画像データを各端末装置へ送信する。そして、各端末装置は、画像データを受信すると、応答をサーバ装置へ送信し、受信した画像データを表示する。また、サーバ装置は、端末装置から応答を受信し、かつ、前回画像データを送信してから所定の時間が経過した場合は、応答の送信元となる端末装置に対して、次の画像データを送信する。
特開2009−177591号公報 特開2010―087625号公報
しかしながら、上述した技術では、サーバ装置と各端末装置を接続するネットワークの環境によっては、各端末装置の表示画像を同期させることができないという問題がある。
例えば、サーバ装置は、各端末装置との通信経路における遅延がそれぞれ異なる場合は、同時に画像データを送信しても、各端末装置が画像データを受信するタイミングが異なるので、各端末装置が画像データを表示するタイミングを同期させることができない。
また、サーバ装置は、前回送信された画像データに対する応答を受信してから新たな画像データを送信する。このため、サーバ装置は、画像データを送信してから応答が帰ってくるまでの時間であるRTT(Round Trip Time)が画像データの送信間隔よりも長い端端末装置に対し、他の端末装置が画像データを表示した後で画像データを送信する場合がある。かかる場合は、端末装置が他の端末装置とは異なる画像データを表示してしまう。
また、各端末装置が表示する画像を同期させるため、サーバ装置がデータを送信した時刻と、各クライアントが画像データを受信した時刻とを用いて、ネットワークの遅延を算出し、算出した遅延に応じて、画像データの送信方式を変更する技術が知られている。しかしながら、かかる技術では、各端末装置の時刻を同期させるための処理が困難である。また、ネットワークの環境は、動的に変化するので、ping等のコマンドを用いてサーバ装置と端末装置とのネットワークにおける遅延等を随時測定すると、通信パケットの量が増加し、ネットワークの負荷を増大させてしまう。
1つの側面では、複数の端末装置が表示する画像を容易に同期させることを目的とする。
一態様の情報処理装置は、各端末装置が計時する時刻と情報処理装置が計時する時刻とのズレを記憶する。また、情報処理装置は、各端末装置へ画像データを送信する。また、情報処理装置は、各端末装置が画像データを受信した時刻を示す情報を取得する。また、情報処理装置は、端末装置ごとに、画像データを送信した時刻と画像データを受信した時刻との差分、および、記憶された時刻のズレを用いて、端末装置へ画像データを送信する経路の遅延量を算出する。そして、情報処理装置は、各端末装置について算出した遅延量同士を比較して遅延量のズレを識別し、識別した遅延量のズレに応じて、各端末装置と送受信するデータ量を制御する。
1つの側面では、複数の端末装置が表示する画像を容易に同期させることができる。
図1は、実施例1に係る通信システムの一例を説明する図である。 図2は、実施例1に係る通信システムが実行する処理の流れを説明する図である。 図3は、表示フレームのズレが発生する状態の一例を説明する図である。 図4は、実施例1に係る配信サーバが実行するデータ量制御処理の一例を説明する図である。 図5は、実施例1に係る配信サーバが有する機能構成の一例を説明する図である。 図6は、実施例1に係るクライアント管理テーブルの一例を説明する図である。 図7は、実施例1に係る送信時刻テーブルの一例を説明する図である。 図8は、実施例1に係る配信サーバが実行する通信制御の一例を説明する図である。 図9は、実施例1に係る配信サーバが送信するパケットのデータ構造の一例を説明する図である。 図10は、実施例1に係る配信サーバが受信するパケットのデータ構造の一例を説明する図である。 図11は、実施例1に係る配信サーバが実行する時刻ズレ収集処理の流れを説明するフローチャートである。 図12は、実施例1に係る配信サーバが実行する画像送信処理の流れを説明するフローチャートである。 図13は、配信プログラムを実行するコンピュータの一例を説明する図である。
以下に添付図面を参照して本願に係る情報処理装置、配信方法および配信プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により開示技術が限定されるものではない。また、各実施例は、矛盾しない範囲で適宜組みあわせてもよい。
以下の実施例1では、図1を用いて、本願に係る情報処理装置の一例である配信サーバ、および配信サーバを有する通信システムの一例を説明する。図1は、実施例1に係る通信システムの一例を説明する図である。図1に示す例では、通信システム1は、ネットワーク2を介して、複数の端末装置3〜5と配信サーバ10とが接続される。ここで、端末装置4、5は、端末装置3と同様の機能を発揮するものとして、以下の説明を省略する。また、通信システム1は、端末装置3〜5以外にも、端末装置3と同様の機能を発揮する端末装置を有するものとする。
ネットワーク2は、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット等のネットワークである。また、端末装置3は、配信サーバ10から各端末装置3〜5へストリーミング配信される動画を表示する端末装置であり、例えば、PC(Personal Computer)、ノートパソコン、タブレット端末、携帯端末等、任意の画像や動画を表示可能な装置である。
ここで、端末装置3は、キーボードやマウス等の入力装置が接続されており、所定の時間間隔で、入力装置に対する操作内容を示す割込み通知を送信する。以下の説明では、キーボードやマウス等の操作内容を示す割込み通知をマウス位置割込み通知と記載する。
配信サーバ10は、各端末装置3〜5に対し、動画をストリーミング配信するサーバであり、例えば、ラックマウント式のサーバ等の情報処理装置である。なお、配信サーバ10は、物理的に1つの情報処理装置である必要はなく、例えば、クラウドシステムにより実現することもできる。
詳細には、配信サーバ10は、端末装置3〜5のいずれかに対して操作権を付与し、操作権が付された端末装置からのマウス位置割込み通知が示す入力内容に応じ、画像の操作を受け付ける。そして、配信サーバ10は、次に各端末装置3〜5に表示させる画像を生成し、生成した画像を各端末装置3〜5へ送信する。
以下、図2を用いて、配信サーバ10がストリーミング配信する動画の画像データを各端末装置3〜5へ送信する処理の流れについて説明する。図2は、実施例1に係る通信システムが実行する処理の流れを説明する図である。なお、図2には、各端末装置3〜5に配信する画像の一例として、CAD(Computer Aided Design)のモデルを表示させる場合について記載した。
例えば、配信サーバ10は、各端末装置3〜5のうち、端末装置3に画像の操作権を付与する。かかる場合、配信サーバ10は、図2中(A)に示すように、端末装置3から受信したマウス位置割込み通知が示す操作内容に応じて、CADのモデルの操作を行う。例えば、配信サーバ10は、モデルの拡大、縮小、回転、移動、編集等を行う。また、配信サーバ10は、図2中(B)に示すように、操作後のモデルの表示画像を生成し、図10中(C)〜(E)に示すように、生成した表示画像を各端末装置3〜5へ送信する。この結果、端末装置3〜5は、端末装置3の操作に応じた画像を表示する。
また、配信サーバ10は、図2中(F)に示すように、操作権を付した端末装置3からマウス位置割込み通知を随時受信する。そして、配信サーバ10は、端末装置3からマウス位置割込み通知が示す操作内容が、所定の時間変化しなかった場合は、端末装置3から操作権を剥奪する。その後、配信サーバ10は、マウス位置割込み通知が示す操作内容が最初に変化した端末装置に対し、操作権を付与する。
例えば、配信サーバ10は、端末装置3から操作権を剥奪した後、図2中(G)に示すように、端末装置4から受信したマウス位置割込み通知が示す操作内容が変化した場合は、端末装置4に操作権を付与する。また、配信サーバ10は、端末装置3から操作権を剥奪した後、図2中(H)に示すように、端末装置5から受信したマウス位置割込み通知が示す操作内容が変化した場合は、端末装置5に操作権を付与する。かかる処理により、端末装置3〜5は、例えば、同一画像を表示しながらそれぞれが操作を行うことができる。
ここで、各端末装置3〜5は、ぞれぞれ異なる通信経路を介して配信サーバ10と接続される。このため、各端末装置3〜5と配信サーバ10とを接続する通信経路は、それぞれ異なる帯域、遅延、パケットロス等のネットワーク環境を有する。例えば、配信サーバ10、端末装置3、4が東京近郊に設置され、端末装置5が札幌に設置された場合、端末装置5と配信サーバ10とを接続する通信経路の遅延は、各端末装置3、4と配信サーバ10とを接続する通信経路の遅延よりも大きくなる。
このため、配信サーバ10は、各端末装置3〜5に対し、単純に画像データを所定の時間間隔で送信した場合は、端末装置5が表示する画像と端末装置3、4が表示する画像とを同期させることができなくなる場合がある。すなわち、配信サーバ10が単純に画像データを所定の時間間隔で送信すると、各端末装置3〜5が画像データを受信するタイミングが異なるため、各端末装置3〜5が表示するフレームにズレが発生する場合がある。
以下、図3を用いて、表示フレームのズレが発生する状態の一例について説明する。図3は、表示フレームのズレが発生する状態の一例を説明する図である。なお、図3には、配信サーバ10は、1つのパケットに画像データを格納し、TCP/IPを用いて、各端末装置3〜5に画像データが格納されたパケットを送信する例について記載した。
また、図3に示す例では、配信サーバ10と端末装置3との通信経路におけるRTTを5ミリ秒(ms)とし、配信サーバ10と端末装置4との通信経路におけるRTTを10ミリ秒とした。また、図3に示す例では、配信サーバ10と端末装置5との通信経路におけるRTTを50ミリ秒とし、配信サーバ10は、33ミリ秒ごとに1つの画像を生成するものとする。換言すると、配信サーバ10は、フレームレートが30fps(Frame Par Second)となる画像を生成するものとする。
例えば、配信サーバ10は、図3中(1)に示す画像を生成し、生成した画像を各端末装置3〜5へ送信する。かかる場合、各端末装置3〜5は、画像を受信すると応答を配信サーバ10へ送信するとともに、受信した画像を表示する。この結果、配信サーバ10は、図3中(1)に示す画像を送信してから5ミリ秒経過後に端末装置3から応答を受信し、画像を送信してから10ミリ秒経過後に端末装置4から応答を受信する。
ここで、配信サーバ10は、図3中(1)に示す画像を送信してから33ミリ秒経過後に図3中(2)に示す画像を生成する。そして、配信サーバ10は、図3中(1)に示す画像に対する応答を受信済みの端末装置3、4に対し、図3中(2)に示す画像を送信する。また、配信サーバ10は、図3中(2)に示す画像を送信してから5ミリ秒経過後に端末装置3から応答を受信し、画像を送信してから10ミリ秒経過後には、端末装置4から応答を受信する。
このため、配信サーバ10は、図3中(2)に示す画像を送信してから33ミリ秒経過後には、図3中(3)に示す画像を生成し、生成した画像を端末装置3、4へ送信する。このように、配信サーバ10は、通信経路のRTTがフレームレート以下である端末装置3、4に対しては、フレームレートと同頻度で画像を送信できるので、端末装置3、4が表示する画像を同期させることができる。
一方、配信サーバ10は、図3中(1)に示す画像を送信してから50ミリ秒経過後に端末装置5から応答を受信する。この結果、配信サーバ10は、図3中(1)に示す画像を送信してから50ミリ秒経過後に端末装置5へ図3中(2)に示す画像を送信する。すなわち、配信サーバ10は、フレームレートよりも遅いタイミングで画像データを端末装置5へ送信する。このため、図3中(I)に示すように、端末装置5は、端末装置3、4が図3中(3)に示す画像を表示するタイミングで、図3中(2)に示す画像を表示してしまう。
また、配信サーバ10は、図3中(3)に示す画像を端末装置3、4に送信してから33ミリ秒後には、図3中(4)に示す画像を生成し、生成した画像を端末装置3、4へ送信する。この結果、端末装置3、4は、図3中(J)に示すように、図3中(4)に示す画像を表示する。しかしながら、配信サーバ10は、図3中(3)に示す画像に対する応答を端末装置5からまだ受信していない。このため、図3中(K)に示すように、端末装置3は、図3中(3)に示す画像を表示し続ける。
このように、配信サーバ10は、各端末装置3〜5に対して単純に画像データを送信した場合は、RTTが端末装置3、4と大きく異なる端末装置5が表示する画像を端末装置3、4が表示する画像と同期させることができない。また、配信サーバ10が図3に示す処理を継続した場合、端末装置5が表示する画像と端末装置3、4が表示する画像とのズレが増大し、最終的に端末装置5が表示する画像の中抜けが発生してしまう。このように、各端末装置3〜5が表示する画像を同期させることができない場合は、例えば、端末装置5の利用者が、端末装置3、4の利用者とは異なる画像に対して操作を行ってしまい、作業に混乱をきたす場合がある。
そこで、配信サーバ10は、各端末装置3〜5との通信経路における遅延量のズレに応じて、各端末装置3〜5に送信する画像データのデータ量を制御する。例えば、配信サーバ10は、通信経路におけるRTTが大きくズレている端末装置に対しては、画像の解像度を下げる、画像の圧縮率を上げる、画像のフレームレートを下げる等の対策を実行して、送受信するデータ量を削減し、他の通信経路におけるRTTとのズレを解消する。
以下、配信サーバ10がデータ量を制御する処理の一例について説明する。図4は、実施例1に係る配信サーバが実行するデータ量制御処理の一例を説明する図である。なお、図4に示す例では、図3と同様に、配信サーバ10と端末装置3との通信経路におけるRTTを5ミリ秒とする。また、図4に示す例では、配信サーバ10と端末装置4との通信経路におけるRTTを10ミリ秒とし、配信サーバ10と端末装置5との通信経路におけるRTTを50ミリ秒とする。また、図4に示す例では、配信サーバ10は、フレームレートが30fps(Frame Par Second)となる画像を生成するものとする。
例えば、配信サーバ10は、各端末装置3〜5との間の通信経路における遅延量を測定し、端末装置5の遅延量が他の端末装置3、4の遅延量と大きくずれていると判定する。この結果、配信サーバ10は、端末装置5へ送信する画像のフレームレートを端末装置3、4へ送信する画像のフレームレートよりも少ない値、例えは半分の値に設定する。
例えば、配信サーバ10は、図4中(1)に示す画像を生成し、各端末装置3〜5へ送信する。また、配信サーバ10は、図4中(1)に示す画像を送信してから33ミリ秒経過後に図4中(2)に示す画像を生成し、図4中(L)に示すように、端末装置3、4のみに送信する。
また、配信サーバ10は、図4中(2)に示す画像を送信してから33ミリ秒経過後に図4中(3)に示す画像を生成し、図4中(M)に示すように、生成した画像を端末装置3〜5へ送信する。その後、配信サーバ10は、図4中(3)に示す画像を送信してから33ミリ秒経過後に図4中(4)に示す画像を生成し、図4中(N)に示すように、生成した画像を端末装置3、4へ送信する。
このように、配信サーバ10は、端末装置5に対し、2回に1回の割合で、画像データを送信する。このため、配信サーバ10は、端末装置5のフレームレートが低下させるものの、各端末装置3〜5が表示する画像を、端末装置5と配信サーバ10との通信経路におけるRTTの半分以内で同期させることができる。
なお、配信サーバ10は、例えば、各端末装置3〜5のRTTがそれぞれ50ms程度となる場合は、各端末装置3〜5に送信する画像のフレームレートを制御せずとも、各端末装置3〜5が表示する画像を同期させることができる。このため、配信サーバ10は、各端末装置3〜5のRTTが同程度である場合は、画像の制御を行うことなく、各端末装置3〜5に画像を送信する。
ここで、配信サーバ10と各端末装置3〜5との通信経路におけるネットワーク環境は、動的に変化するので、随時ネットワーク環境の測定を行うのが望ましい。しかしながら、例えば、配信サーバ10は、pingを各端末装置3〜5へ送信し、応答を受信するまでのRTTを測定することで、ネットワーク環境の測定を行った場合は、ネットワークの負荷を増大させてしまう。
また、各端末装置3〜5が画像データを受信した時刻を収集し、配信サーバ10が画像データを送信した時刻と収集した時刻との差を通信経路の遅延とする手法が考えられる。しかしながら、かかる処理を行う場合は、あらかじめ配信サーバ10と各端末装置3〜5とが計時する時刻を同期させるため、処理が困難である。
そこで、配信サーバ10は、以下の処理を実行する。まず、配信サーバ10は、各端末装置3〜5に対してpingを送信するとともに、pingの送信時刻を記憶する。一方、各端末装置3〜5は、測定する時刻をpingに対する応答に格納し、応答を配信サーバ10へ送信する。そして、配信サーバ10は、各端末装置3〜5からpingを受信した時刻と記憶したpingの送信時刻とを比較し、各端末装置3〜5との通信経路におけるRTTを測定する。また、配信サーバ10は、各端末装置3〜5から受信した応答から各端末装置3〜5がpingを受信した時刻を抽出する。
そして、配信サーバ10は、算出したRTTと、各端末装置がpingを受信した時刻と、記憶したpingの送信時刻とを用いて、配信サーバ10と各端末装置3〜5が計時する時刻とのズレを算出する。具体的には、配信サーバ10は、各端末装置3〜5ごとに、端末装置がpingを受信した時刻から記憶したpingの送信時刻を減算し、減算結果からRTTの半分をさらに減算した値を時刻ズレとして記憶する。
また、配信サーバ10は、前回全ての端末装置3〜5に対して同時に画像データを送信してから所定の時間が経過し、かつ、再度全ての端末装置3〜5に対して同時に画像データを送信する場合は、以下の処理を実行する。まず、配信サーバ10は、画像データが格納されたパケットに、受信時刻の通知を指示するマークを付与する。例えば、配信サーバ10は、画像データが格納されたパケットに所定の領域を設け、かかる領域に受信時刻の通知を指示するフラグ等のマークを格納する。そして、配信サーバ10は、マークを付した画像データを全端末装置3〜5に対して送信するとともに、マークを付した画像データを送信した時刻を記憶する。
一方、各端末装置3〜5は、マークが付された画像データを受信すると、マークが付された画像データの受信時刻を示すタイムスタンプを生成する。そして、各端末装置3〜5は、マウス位置割込み通知に生成したタイムスタンプを付して配信サーバ10へ送信する。
また、配信サーバ10は、各端末装置3〜5からタイムスタンプが付されたマウス位置割込み通知を受信すると、受信したマウス位置割込み通知からタイムスタンプを抽出する。そして、配信サーバ10は、端末装置3〜5ごとに、タイムスタンプが示す受信時刻と、マークを付した画像データを送信した時刻と、記憶した時刻ズレとを用いて、通信経路における遅延を算出する。その後、配信サーバ10は、算出した遅延量から、遅延量のズレを算出し、算出した遅延量のズレに応じて各端末装置3〜5との通信量を制御する。ここで、遅延量のズレとは、ある端末装置の遅延量と、他の端末装置の遅延量とのズレであり、例えば、ある端末装置の遅延量と値が最も小さい遅延量とのズレである。
このため、配信サーバ10は、各端末装置3〜5が表示する画像を容易に同期させることができる。すなわち、配信サーバ10は、各端末装置3〜5との通信経路における遅延量のズレに応じて、各端末装置3〜5との通信量を制御するので、各端末装置3〜5との通信経路における遅延量を同程度に収束させる。この結果、配信サーバ10は、各端末装置3〜5が表示する画像を容易に同期させることができる。
なお、配信サーバ10と各端末装置3〜5との通信経路におけるRTTは、動的に変化する。このため、配信サーバ10が画像データを送信する時刻と各端末装置3〜5が画像データを受信する時刻との差は、そのつど変化すると考えられる。しかしながら、配信サーバ10が計時する時刻と各端末装置3〜5が計時する時刻との時刻ズレは、ほぼ一定であると考えられる。
そこで、配信サーバ10は、全端末装置3〜5との時刻ズレを測定し、全端末装置3〜5へ送信する画像データの送信時刻と受信時刻との差から時刻ズレを減算することで、新たなパケットを送信することなく、通信経路の遅延量を算出することができる。
また、配信サーバ10は、マークを付した画像データの送信時刻を記憶し、各端末装置3〜5から、マークを付した画像データの受信時刻を示すタイムスタンプが付されたマウス位置割込み通知を受信する。このため、配信サーバ10は、ネットワーク遅延を測定するためのパケット等を不要にするので、ネットワークの負荷を軽減することができる。
なお、配信サーバ10は、端末装置3〜5との通信経路における遅延量のズレに応じて、通信量を制御する任意の処理を行うことができる。例えば、配信サーバ10は、基準となる遅延量をあらかじめ記憶し、または、測定した各遅延量の平均値や最も値が小さい遅延量を基準となる遅延量とし、基準となる遅延量と判定対象となる遅延量との差を遅延量のズレとして算出する。そして、配信サーバ10は、算出した遅延量のズレが第1の閾値よりも大きい場合は、マウス位置割込み通知の送信頻度を下げるよう、端末装置に指示する。
また、配信サーバ10は、第1の閾値よりも大きい値である第2の閾値より、遅延量のズレが大きい場合は、端末装置に対して送信する画像を圧縮する。また、配信サーバ10は、第2の閾値よりも大きい値である第3の閾値より、遅延量のズレが大きい場合は、端末装置に送信する画像のフレームレートを低下させる。なお、配信サーバ10は、遅延量のズレの値に応じて、画像の解像度を変更してもよい。また、配信サーバ10は、画質を落とすと同時にフレームレートを低下させる等、複数の処理を組み合わせて実行してもよい。
次に、図5を用いて、上述した配信サーバ10が有する機能構成の一例について説明する。図5は、実施例1に係る配信サーバが有する機能構成の一例を説明する図である。例えば、図5に示す例では、配信サーバ10は、記憶部11、通信部12、配信処理実行部13を有する。ここで、記憶部11は、クライアント管理テーブル14、送信時刻テーブル15を記憶する。また、配信処理実行部13は、収集部16、取得部17、算出部18、画質制御部19、画像生成部20、操作制御部21を有する。
まず、記憶部11が記憶するクライアント管理テーブル14、および送信時刻テーブル15に格納される情報の一例について説明する。クライアント管理テーブル14は、端末装置3〜5ごとに、配信サーバ10との時刻ズレの値を記憶する。
例えば、図6は、実施例1に係るクライアント管理テーブルの一例を説明する図である。例えば、クライアント管理テーブル14は、図6に示すように、クライアントIPアドレスとネットワーク遅延量と、時刻ズレ値とを対応付けて記憶する。ここで、クライアントIPアドレスとは、各端末装置3〜5のIPアドレスであり、ネットワーク遅延量とは、配信サーバ10が最初にpingを送信した際に測定されたRTTである。また、時刻ズレ値とは、配信サーバ10が測定する時刻と各端末装置3〜5が測定する時刻とのズレを示す値である。
例えば、図6に示す例では、クライアント管理テーブル14は、端末装置3のクライアントIPアドレス「192.168.100.100」とネットワーク遅延量「5」ミリ秒と時刻ズレ値「−10.251」を対応付けて記憶する。すなわち、クライアント管理テーブル14は、端末装置3と配信サーバ10との通信経路におけるネットワーク遅延量が「5」ミリ秒であり、端末装置3が計時する時刻が配信サーバ10が計時する時刻よりも「10.251秒」遅い旨を示す。
また、図6に示す例では、クライアント管理テーブル14は、端末装置4のクライアントIPアドレス「192.168.100.200」とネットワーク遅延量「10」ミリ秒と時刻ズレ値「+1分16.165」を対応付けて記憶する。つまりクライアント管理テーブル14は、端末装置4と配信サーバ10との通信経路におけるネットワーク遅延量が「10」ミリ秒であり、端末装置4が計時する時刻が配信サーバ10が計時する時刻よりも「1分16.165秒」早い旨を示す。
また、図6に示す例では、クライアント管理テーブル14は、端末装置5のクライアントIPアドレス「192.167.100.100」とネットワーク遅延量「50」ミリ秒と時刻ズレ値「+0.250」を対応付けて記憶する。また、図6に示す例では、クライアント管理テーブル14は、図示を省略した端末装置のクライアントIPアドレス「192.166.100.100」とネットワーク遅延量「60」ミリ秒と時刻ズレ値「−1.311」を対応付けて記憶する。
図5に戻って、送信時刻テーブル15は、各端末装置3〜5に画像データを送信した時刻を記憶する。例えば、図7は、実施例1に係る送信時刻テーブルの一例を説明する図である。図7に示す例では、送信時刻テーブル15は、送信時刻「11:15:21.225」を記憶する。すなわち、送信時刻テーブル15は、11時15分21.225秒に、各端末装置3〜5へ画像データを送信した旨を記憶する。
図5に戻って、通信部12は、配信サーバ10と各端末装置3〜5との通信を制御する。例えば、通信部12は、収集部16からpingコマンドを受信すると、ネットワーク2を介して、各端末装置3〜5へpingを送信し、pingの送信時刻を収集部16に通知する。また、通信部12は、ネットワーク2を介して、各端末装置3〜5からpingに対する応答を受信すると、受信した応答を収集部16に出力するとともに、応答の受信時刻を収集部16に通知する。
また、通信部12は、ネットワーク2を介して、各端末装置3〜5からマウス位置割込み通知を受信すると、受信したマウス位置割込み通知を取得部17に出力する。また、通信部12は、画質制御部19から、マウス位置割込み通知の発行頻度を下げるよう指示する変更通知と、送信先となる端末装置の通知とを受信すると、受信した変更通知を通知された端末装置へ送信する。また、通信部12は、画像生成部20から画像データと、画像データの送信先となる端末装置の通知とを受信すると、受信した画像データを所定の大きさのデータに分割する。そして、通信部12は、分割した各データを格納したパケットを通知された端末装置へ順次送信する。
収集部16は、配信サーバ10と各端末装置3〜5との時刻ズレの値を収集する。具体的には、収集部16は、各端末装置3〜5に送信するpingを生成し生成したpingを通信部12に出力する。また、収集部16は、pingの送信時刻を通信部12から受信し、受信した時刻を記憶する。
また、収集部16は、通信部12から応答と受信時刻とを受信すると、受信した応答の送信元となる端末装置を識別する。また、収集部16は、受信時刻と記憶した送信時刻との差から識別した端末装置との通信経路におけるRTTを算出する。
また、収集部16は、識別した端末装置がpingを受信した時刻を示すタイムスタンプを応答から抽出し、記憶した送信時刻と抽出したタイムスタンプが示す時刻との差から算出したRTTの半分を減算した値を算出する。すなわち、収集部16は、識別した端末装置と配信サーバ10との時刻ズレ値を算出する。
そして、収集部16は、識別した端末装置のクライアントIPアドレスと、算出したRTTと、算出した時刻ズレ値とを対応付けてクライアント管理テーブル14に格納する。その後、収集部16は、画像同期を行う全ての端末装置について、時刻ズレ値を算出し、算出した時刻ズレ値をクライアント管理テーブル14に格納した場合は、処理を終了する。
例えば、収集部16は、pingの送信時刻として「10時23分0.000秒」を記憶する。また、収集部16は、端末装置4からpingに対する応答を「10時23分0.010秒」に受信した場合は、端末装置4と配信サーバ10との通信経路におけるRTTとして「10ミリ秒」を算出する。また、収集部16は、pingに、端末装置4がpingを受信した時刻として「10時24分16.170秒」が格納されている場合は、pingの送信時刻「10時23分0.000秒」との差分「1分16.170秒」を算出する。
そして、収集部16は、差分「1分16.170秒」から、算出したRTT「10ミリ秒」の半分である「5ミリ秒」を減算した値「1分16.165秒」を時刻ズレ値とする。その後、収集部16は、端末装置4のクライアントIPアドレス「192.168.100.200」と、RTTの値「10ミリ秒」と、時刻ズレ値「1分16.165秒」とを対応付けてクライアント管理テーブル14に格納する。
取得部17は、各端末装置3〜5が画像データを受信した時刻を取得する。具体的には、取得部17は、通信部12からマウス位置割込み通知を受信すると、受信したマウス位置割込み通知にタイムスタンプが付されているか否かを判定する。また、取得部17は、受信したマウス位置割込み通知にタイムスタンプが付されている場合は、受信したマウス位置割込み通知の送信元となる端末装置を識別するとともに、マウス位置割込み通知からタイムスタンプを抽出する。
そして、取得部17は、マウス位置割込み通知を操作制御部21に出力するとともに、識別した端末装置の通知とタイムスタンプとを算出部18に出力する。なお、取得部17は、マウス位置割込み通知にタイムスタンプが付されていない場合は、マウス位置割込み通知を操作制御部21に出力する。
算出部18は、端末装置3〜5ごとに、画像データの送信時刻と、画像データの受信時刻と、クライアント管理テーブル14に格納された時刻ズレ値とを用いて、通信経路における遅延量を算出する。具体的には、算出部18は、取得部17から端末装置の通知とタイムスタンプとを受信する。
かかる場合は、算出部18は、通知された端末装置のクライアントIPアドレスと対応付けられた時刻ズレ値をクライアント管理テーブル14から取得する。また、算出部18は、送信時刻テーブル15から、各端末装置3〜5へ画像データを送信した送信時刻を取得する。そして、算出部18は、取得部17から受信したタイムスタンプが示す受信時刻から取得した送信時刻を減算し、さらに、クライアント管理テーブル14から取得した時刻ズレ値を減算した値を算出する。その後、算出部18は、端末装置の通知と算出した値とを画質制御部19に通知する。
例えば、算出部18は、端末装置4の通知と、受信時刻「11:16:37秒400」を示すタイムスタンプとを取得部17から受信する。かかる場合、算出部18は、送信時刻テーブル15から、画像データの送信時刻「11:15:21.225」を取得し、受信時刻との差「1:16.175」を算出する。また、算出部18は、算出した差「1:16.175」から、クライアント管理テーブル14が記憶する端末装置4の時刻ズレ値「1分16.165」を減算した値「10ミリ秒」を端末装置4の遅延量として画質制御部19に通知する。
ここで、算出部18が算出する遅延量は、配信サーバ10と各端末装置3〜5との通信経路における片道分の遅延量である。このため、算出部18は、RTTと同様に、配信サーバ10と各端末装置3〜5との通信経路における往復分の遅延量を画質制御部19に通知する場合は、算出した遅延量の2倍の値を通知すればよい。例えば、上述する例では、算出部18は、「10ミリ秒」の倍である「20ミリ秒」を端末装置4の遅延量として画質制御部19に通知する。
画質制御部19は、算出部18が算出した各端末装置3〜5との通信経路における遅延量のズレに応じて、各端末装置3〜5と送受信するデータ量を制御する。例えば、画質制御部19は、算出部18から、各端末装置3〜5の通知と遅延量とを受信する。すると、画質制御部19は、各端末装置3〜5の遅延量同士を比較し、各遅延量のズレが、微小、少、中、大きい範囲のいずれであるかを判定する。そして、画質制御部19は、判定した範囲に応じた画質制御を行うよう、画像生成部20に指示する。
例えば、画質制御部19は、算出部18が算出した各遅延量から基準となる遅延量を選択する。ここで、基準となる遅延量としては、各遅延量のうち最も値が少ない遅延量、各遅延量の平均値に最も近い遅延量などが考えられる。
また、画質制御部19は、算出部18が算出した遅延量から判定対象となる遅延量をひとつ選択し、選択した遅延量から基準となる遅延量を減算した値である遅延量のズレを算出する。そして、画質制御部19は、算出した遅延量のズレが第1の閾値以上であり、第1の閾値よりも大きい値の第2の閾値より少ない場合は、遅延量のズレが微小な範囲であると判定する。かかる場合は、画質制御部19は、マウス位置割込み通知の発行頻度を下げるよう指示する変更通知と、選択した遅延量に対応する端末装置の通知とを通信部12に出力する。また、画質制御部19は、選択した遅延量に対応する端末装置の通知と画質制御を行わない旨を画像生成部20に出力する。
また、画質制御部19は、遅延量のズレが、第2の閾値以上であり、第2の閾値よりも大きい値の第3の閾値より少ない場合は、遅延量のズレが少ない範囲であると判定する。かかる場合は、画質制御部19は、画像の圧縮率を第1の圧縮率に設定する旨の指示と、選択した遅延量に対応する端末装置の通知とを画像生成部20に出力する。なお、画質制御部19は、画像の解像度を画質制御を行わない通常時の解像度よりも低い第1の解像度に下げる旨の指示と選択した遅延量に対応する端末装置の通知とを画像生成部20に出力してもよい。
また、画質制御部19は、遅延量のズレが、第3の閾値以上であり、第3の閾値よりも大きい値の第4の閾値より少ない場合は、遅延量のズレが中程度の範囲であると判定する。かかる場合は、画質制御部19は、画像制御部19は、画像の圧縮率を第1の圧縮率よりも高い値である第2の圧縮率に設定する旨の指示と、選択した遅延量に対応する端末装置の通知とを画像生成部20に出力する。なお、画質制御部19は、画像の解像度を第1の解像度よりも低い第2の解像度に下げる旨の指示と選択した遅延量に対応する端末装置の通知とを画像生成部20に出力してもよい。このように、画像制御部19は、遅延量のズレが少ない範囲、若しくは中程度である場合は、遅延量のズレの量に応じて、送信する画質を下げる処理を行う。
また、画質制御部19は、遅延量のズレが、第4の閾値以上である場合は、遅延量のズレが大きい範囲であると判定する。かかる場合は、画質制御部19は、送信する画像のフレームレートを下げる旨の指示と選択した遅延量に対応する端末装置の通知とを画像生成部20に出力する。また、画質制御部19は、遅延量のズレが第1の閾値よりも少ない場合は、受信した端末装置の通知と画質制御を行わない旨の指示とを画像生成部20に出力し、処理を終了する。
このように、配信サーバ10は、遅延量のズレが大きい通信経路を介して送信する画像のデータ量を下げる結果、各端末装置3〜5が表示する画像を同期させることができる。なお、上述した実施例では、遅延量のズレに応じて、マウス位置割込み通知の発行頻度、画像の解像度、画像の圧縮率、画像のフレームレートのいずれかを制御する例について説明したが、実施例はこれに限定されるものではない。例えば、画質制御部19は、遅延量のズレが中程度の範囲である場合は、フレームレートを下げ、遅延量のズレが大きい範囲である場合は、画像の圧縮率を上げるとともに、フレームレートを下げるよう指示してもよい。
例えば、図8は、実施例1に係る配信サーバが実行する通信制御の一例を説明する図である。例えば、図8に示す例では、画質制御部19は、遅延量のズレが微小な範囲である場合は、マウス位置割込み通知の送信頻度を落として上り通信量を削減する対策(c)を指示する。また、画質制御部19は、遅延量のズレが少ない範囲である場合は、送信する画像の圧縮率を上げることで画質を落として下り通信量を減らす対策(a)を指示する。
また、画質制御部19は、遅延量のズレが中程度の範囲である場合は、fps、すなわちフレームレートを下げることで、下り通信量を削減する対策(b)を指示する。また、画質制御部19は、遅延量のズレが大きい範囲である場合は、対策(a)と対策(b)とを同時に実行するよう指示することで、さらに下り通信量を削減する。この結果、配信サーバ10は、遠方に配置された端末装置や通信経路が安定しない端末装置等、通信経路の遅延量のズレが大きい端末装置を含む複数の端末装置が表示する画像を同期させることができる。
なお、上述した対策(a)〜(c)の中では、対策(b)による通信量の削減効果が最も高く、次に対策(a)による通信量の削減効果が高い。また、画質制御部19は、対策(a)と対策(c)を同時に実行するよう指示してもよく、対策(a)〜(c)を同時に実行するよう指示してもよい。
図5に戻り、画像生成部20は、画質制御部19による指示に従って、各端末装置3〜5へ送信する画像を生成する。例えば、画像生成部20は、操作制御部21から受信したデータに基づいて、基準となる画像を生成する。そして、画像生成部20は、基準となる画像から、各端末装置3〜5ごとに設定された解像度、圧縮率、フレームレートの画像を生成し、生成した画像を各端末装置3〜5へ送信するよう通信部12に出力する。
ここで、画像生成部20は、画質制御部19による指示に従って、各端末装置3〜5ごとに、送信する画像の設定を行う。例えば、画像生成部20は、画質制御部19から端末装置の通知と画質制御を行わない旨の指示とを受信した場合は、通知された端末装置に対して送信する画像の解像度やフレームレートを通常時の値に設定する。また、画像生成部20は、画質制御部19から端末装置の通知と画像の解像度を第1の解像度に下げる旨の指示とを受信した場合は、通知された端末装置に対して送信する画像の解像度を第1の解像度に設定する。
また、画像生成部20は、画質制御部19から端末装置の通知と画像の解像度を第2の解像度に下げる旨の指示とを受信した場合は、通知された端末装置に対して送信する画像の解像度を第2の解像度に設定する。また、画像生成部20は、画質制御部19から端末装置の通知と画像のフレームレートを下げる旨の指示を受信した場合は、通知された端末装置に対して送信する画像のフレームレートを所定の値まで下げる。
また、画像生成部20は、画像制御部19から第1の圧縮率に設定する旨の指示と端末装置の通知とを受信した場合は、通知された端末装置に対して送信する画像を第1の圧縮率で圧縮する。また、画像生成部20は、画像制御部19から第2の圧縮率に設定する旨の指示と端末装置の通知とを受信した場合は、通知された端末装置に対して送信する画像を第2の圧縮率で圧縮する。なお、画像生成部20は、任意の手段を用いて、画像の圧縮を行うことができる。
なお、画像生成部20は、以下の処理をあわせて実行する。まず、画像生成部20は、前回全ての端末装置3〜5に対して画像を送信してから所定の時間が経過したか否かを判定する。そして、画像生成部20は、前回全ての端末装置3〜5に対して画像を送信してから所定の時間が経過したと判定した場合は、全ての端末装置3〜5に対して同時に画像を送信するタイミングであるか否かを判定する。
また、画像生成部20は、全ての端末装置3〜5に対して同時に画像を送信するタイミングであると判定した場合は、各端末装置3〜5に対して送信する画像に、タイムスタンプを送信するよう指示するマークを付す。そして、画像生成部20は、マークを付した画像を通信部12に出力し、各端末装置3〜5へ送信する。また、画像生成部20は、各端末装置3〜5へ画像を送信した時刻を送信時刻テーブル15に格納する。
操作制御部21は、操作権を有する端末装置からのマウス位置割込み通知に従って、各端末装置3〜5に表示する画像の制御を行う。例えば、操作制御部21は、取得部17から各端末装置3〜5からのマウス位置割込み通知を受信する。
また、操作制御部21は、受信したマウス位置割込み通知から操作権を有する端末装置から受信したマウス位置割込み通知を識別し、識別したマウス位置割込み通知が示す入力操作に応じて、新たな基準となる画像を生成するためのデータを生成する。その後、操作制御部21は、生成したデータを画像生成部20に出力する。
なお、操作制御部21は、識別したマウス位置割込み通知が示す入力操作が所定の時間変化しなかった場合は、他の端末装置へ操作権を移す。そして、操作制御部21は、新たに操作権を獲得した端末装置から受信したマウス位置割込み通知を識別する。
なお、例えば、収集部16、取得部17、算出部18、画質制御部19、画像生成部20、操作制御部21とは、電子回路である。ここで、電子回路の例として、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路、またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)などを適用する。
また、記憶部11とは、RAM(Random Access Memory)、フラッシュメモリ(flash memory)などの半導体メモリ素子などの記憶装置である。
次に、図9、図10を用いて、配信サーバ10が送受信するパケットのデータ構造の一例について説明する。まず、図9を用いて、配信サーバ10が送信するパケットのデータ構造の一例を説明する。図9は、実施例1に係る配信サーバが送信するパケットのデータ構造の一例を説明する図である。なお、図9には、従来方式に係る配信サーバと、実施例1に係る配信サーバ10とがフレーム1〜フレームnまでに送信するパケットの一例を記載した。
例えば、従来方式に係る配信サーバは、フレーム1〜フレームnまで、各端末装置3〜5へ送信する全てのパケットに同一の画像データを格納して送信した。一方、配信サーバ10は、フレーム1において、全ての端末装置3〜5に画像データを格納したパケットを送信する場合は、図9中(O)に示すように、画像データを格納したパケットにマークを付して送信する。
この結果、配信サーバ10は、各端末装置3〜5から、タイムスタンプが付されたマウス位置割込み通知を受信する。そして、配信サーバ10は、フレーム1でパケットを送信した時刻と、タイムスタンプが示す時刻と、時刻ズレとを用いて、各端末装置3〜5との通信経路における遅延量を算出する。
また、例えば、配信サーバ10は、図9中(P)に示すように、遠方に設置された端末装置5へ送信する画像のフレームレートを下げた場合は、フレーム2において、端末装置5へ送信するパケットの生成を行わない。また、配信サーバ10は、フレーム2において、全ての端末装置へパケットの送信を行わないので、端末装置3、4に対し、マークが付与されていないパケットを送信する。
また、配信サーバ10は、図9中(Q)に示すように、フレームnにおいて、全ての端末装置3〜5へ画像データを送信する場合は、各端末装置3〜5へ送信する画像データを格納したパケットにマークを付して送信する。この結果、配信サーバ10は、各端末装置3〜5から、タイムスタンプが付されたマウス位置割込み通知を受信するので、各端末装置3〜5との通信経路における最新の遅延量を新たに算出できる。
次に、図10を用いて、配信サーバ10が受信するパケットのデータ構造の一例を説明する。図10は、実施例1に係る配信サーバが受信するパケットのデータ構造の一例を説明する図である。なお、図10には、図9に示した画像データを送信した際に、従来方式に係る配信サーバと、実施例1に係る配信サーバ10とが受信するパケットの一例を記載した。
例えば、図10に示す例では、従来方式に係る配信サーバは、単にマウス位置割込み通知が格納されたパケットを受信する。一方、配信サーバ10は、マークを付したパケットを送信した場合は、図10中(R)、および、図10中(S)に示すように、マウス位置割込み通知とタイムスタンプとが付されたパケットを受信する。
このように、配信サーバ10は、各端末装置3〜5へ送信するパケットにマークを付与し、その後、各端末装置3〜5からマウス位置割込み通知とともにタイムスタンプを受信する。このため、配信サーバ10は、各端末装置3〜5へ測定用のパケットを新たに送信せずとも、各端末装置3〜5との通信経路における遅延量を算出できる。
次に、図11を用いて、配信サーバ10が各端末装置3〜5の時刻ズレ値を収集する処理の流れについて説明する。図11は、実施例1に係る配信サーバが実行する時刻ズレ収集処理の流れを説明するフローチャートである。例えば、配信サーバ10は、各端末装置3〜5に対しpingを送信する(ステップS101)。また、配信サーバ10は、pingを送信した送信時刻を記憶する(ステップS102)。
また、配信サーバ10は、各端末装置3〜5からタイムスタンプが付された応答を受信し(ステップS103)、記憶した送信時刻と応答を受信した時刻とからRRTを算出する(ステップS104)。また、配信サーバ10は、受信した応答からタイムスタンプを抽出し(ステップS105)、送信時刻とタイムスタンプが示す受信時刻との差からRTTの半分を減算して時刻ズレを算出する(ステップS106)。そして、配信サーバ10は、算出した時刻ズレをクライアント管理テーブル14に格納し(ステップS107)、処理を終了する。
次に、図12を用いて、配信サーバ10が各端末装置3〜5に画像を送信する画像送信処理の流れについて説明する。図12は、実施例1に係る配信サーバが実行する画像送信処理の流れを説明するフローチャートである。なお、図12には、配信サーバ10が端末装置3との通信経路における遅延量のズレに応じて実行する処理の流れを記載した。
まず、配信サーバ10は、端末装置3に送信する画像を生成し(ステップS201)、生成した画像にマークを付して端末装置3へ送信する(ステップS202)。この結果、配信サーバ10は、端末装置3からタイムスタンプが付されたマウス位置割込み通知を受信する(ステップS203)。このため、配信サーバ10は、画像データの送信時刻と、タイムスタンプと時刻のズレとを用いて、端末装置3との通信経路における遅延量を算出し、算出した遅延量と他の通信経路における遅延量とのズレを算出する(ステップS204)。
ここで、配信サーバ10は、遅延量のズレが微小な範囲であるか否かを判定し(ステップS205)、遅延量のズレが微小な範囲ではないと判定した場合は(ステップS205否定)、遅延量のズレが少ない範囲であるか否かを判定する(ステップS206)。また、配信サーバ10は、遅延量のズレが少ない範囲ではないと判定した場合は(ステップS206否定)、遅延量のズレが中程度の範囲であるか否かを判定する(ステップS207)。また、配信サーバ10は、遅延量のズレが中程度の範囲ではないと判定した場合は(ステップS207否定)、遅延量のズレが大きい範囲であるか否かを判定する(ステップS208)。
そして、配信サーバ10は、遅延量のズレが大きい範囲ではないと判定した場合(ステップS208否定)、すなわち、遅延量のズレが微小よりも少ないと判定した場合は、受信タイム確認用マークをパケットに追加する(ステップS209)。そして、配信サーバ10は、パケットを端末装置3へ送信し(ステップS210)、処理を終了する。
一方、配信サーバ10は、遅延量のズレが微小な範囲である場合は(ステップS205肯定)、マウス位置割込み通知の送信頻度を落とすよう端末装置3に指示し(ステップS211)、ステップS209の処理を実行する。また、配信サーバ10は、遅延量のズレが少ない範囲である場合(ステップS206肯定)、または、遅延量のズレが中程度の範囲である場合は(ステップS207肯定)、以下の処理を実行する。すなわち、配信サーバ10は、遅延量のズレに応じて、画像の解像度をそのままに送信するフレーム画像の圧縮を行い(ステップS212)、ステップS209の処理を実行する。
また、配信サーバ10は、遅延量のズレが大きい範囲である場合は(ステップS208肯定)、今回は画像を送信してもよいか否かを判定し(ステップS213)、よいと判定した場合は(ステップS213肯定)、ステップS209を実行する。一方、配信サーバ10は、今回は画像を送信しないと判定した場合は(ステップS213否定)、画像の送信をスキップするフレームスキップを実行し(ステップS214)、そのまま処理を終了する。
[配信サーバ10の効果]
上述したように、配信サーバ10は、配信サーバ10が計時する時刻と、各端末装置3〜5が計時する時刻とのズレである時刻ズレ値を記憶する。また、配信サーバ10は、各端末装置3〜5に対して画像を送信し、各端末装置3〜5が画像を受信した時刻を取得する。そして、配信サーバ10は、各端末装置3〜5に対して画像を送信した時刻と、各端末装置3〜5が画像を受信した時刻と、記憶された時刻ズレ値とから、各端末装置3〜5へ画像を送信する通信経路の遅延量を算出する。その後、配信サーバ10は、算出した各遅延量のズレを識別し、識別した遅延量のズレに応じて、各端末装置3〜5との通信量を制御する。
このため、配信サーバ10は、各端末装置3〜5と配信サーバ10とが計時する時刻を同期する処理や、各端末装置3〜5へ新たなパケットを送信する処理を実行せずとも、各端末装置3〜5が表示する画像を容易に同期させることができる。また、配信サーバ10は、識別した遅延量のズレを解消するように、各端末装置3〜5との通信量を制御した場合は、各端末装置3〜5が表示する画像を同期させることができる。
また、配信サーバ10は、各端末装置3〜5に対してpingを送信し、各端末装置3〜5がpingを受信した時刻を示すタイムスタンプが格納された応答を受信する。また、配信サーバ10は、pingを送信してから応答を受信するまでの時間、すなわちRTTを端末装置3〜5ごとに測定する。
そして、配信サーバ10は、端末装置3〜5ごとに、受信した応答に格納されたタイムスタンプが示す時刻と、pingを送信した時刻との差分から、算出したRTTの半分を減算した値を時刻ズレ値として算出する。その後、配信サーバ10は、算出した時刻ズレ値をクライアント管理テーブル14に格納する。このため、配信サーバ10は、複雑な処理を行わずとも、各端末装置3〜5と配信サーバ10が計時する時刻のズレをそれぞれ測定することができる。
また、配信サーバ10は、全ての端末装置3〜5に対して画像を送信する場合は、各画像にマークを付して送信する。そして、配信サーバ10は、マークを付した画像を受信した各端末装置3〜5から、マークが付されたデータを受信した時刻を示すタイムスタンプが付されたマウス位置割込み通知を受信する。このため、配信サーバ10は、新たなパケットを各端末装置3〜5に送信せずとも、各端末装置3〜5との通信経路における遅延量のズレを算出できる。
また、配信サーバ10は、例えば、端末装置5との通信経路における遅延量と、端末装置3、4との通信経路における遅延量とのズレが第1の閾値以上である場合は、端末装置5に対し、マウス位置割込み通知を送信する頻度を下げるよう指示する。このため、配信サーバ10は、端末装置5から配信サーバ10へ送信される上り方向の通信量を削減するので、端末装置5との通信経路における帯域を確保し、遅延量のズレの削減を図ることができる。
また、配信サーバ10は、例えば、端末装置5との通信経路における遅延量と、端末装置3、4との通信経路における遅延量とのズレが第2の閾値以上である場合は、以下の処理を実行する。すなわち、配信サーバ10は、端末装置5に対して送信する画像の画質を他の端末装置3、4へ送信する画像の画質よりも低い値に設定する。例えば、配信サーバ10は、画像の圧縮率を上げるなどの対策を行うことで、画質の調整を行う。このため、配信サーバ10は、配信サーバ10から端末装置5へ送信される下り方向の通信量を削減するので、端末装置5との通信経路における遅延量のズレの削減を図ることができる。
また、配信サーバ10は、例えば、端末装置5との通信経路における遅延量と、端末装置3、4との通信経路における遅延量とのズレが第4の閾値以上である場合は、以下の処理を実行する。すなわち、配信サーバ10は、端末装置5に対して画像を送信する頻度を他の端末装置へ画像を送信する頻度よりも低く設定する。このため、配信サーバ10は、配信サーバ10から端末装置5へ送信される下り方向の通信量を大幅に削減するので、端末装置5との通信経路における遅延量のズレの削減を更に図ることができる。
これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例2として本発明に含まれる他の実施例を説明する。
(1)閾値について
上述した配信サーバ10は、複数の閾値を用いて、各端末装置3〜5との通信経路における遅延量のズレを削減する対策を選択した。しかしながら、実施例はこれに限定されるものではない。例えば、配信サーバ10は、1つの閾値を用いて、マウス位置割込み通知、画像の解像度、フレームレートのいずれか1つのみを実行するか否かを判定してもよい。また、配信サーバ10は、上述した対策以外にも、任意の対策を講じることで、通信経路における遅延量のズレを削減してもよい。
なお、配信サーバ10は、遅延量同士の比較により遅延量のズレを算出した。しかしながら、実施例はこれに限定されるものではなく、例えば、配信サーバ10は、端末装置3との通信経路における遅延量がフレームレートを超えた場合は、端末装置3に対して送信する画像のフレームレートを半分に削減してもよい。また、配信サーバ10は、各遅延量の平均、標準偏差、最小値等を基準となる遅延量としてもよい。
なお、上述した各種閾値は、あくまで一例であり、通信システム1の構成に応じて、任意の閾値を設定することができる。また、上述した各種閾値は、配信サーバ10の外部から変更可能な閾値とすることも可能である。また、例えば、配信サーバ10は、時間帯や画像を送信する端末装置の数に応じて、閾値を可変としてもよい。
(2)送信時刻テーブルについて
上述した配信サーバ10は、全ての端末装置3〜5へ画像を送信する際に、各端末装置3〜5との遅延量のズレを算出した。しかしながら、実施例はこれに限定されるものではない。例えば、配信サーバ10は、所定の時間間隔で、各端末装置3〜5へ送信する画像にマークを付して送信するとともに、画像の送信先となる端末装置のクライアントIPアドレスと、送信時刻とを対応付けて送信時刻テーブル15に格納する。
また、配信サーバ10は、各端末装置3〜5から、タイムスタンプが付されたマウス位置割込み通知を受信すると、マウス位置割込み通知の送信元となる端末装置のクライアントIPアドレスと対応付けられた送信時刻を送信時刻テーブル15から取得する。そして、配信サーバ10は、取得した送信時刻と、マウス位置割込み通知に付されたタイムスタンプと、クライアント管理テーブル14が記憶する時刻ズレ値とを用いて、遅延量を算出し、算出した遅延量を比較することで、遅延量のズレを算出する。このように、配信サーバ10は、各端末装置3〜5ごとに、通信経路の遅延量のズレを算出してもよい。かかる場合、配信サーバ10は、基準となる遅延量をあらかじめ記憶し、各端末装置3〜5の遅延量と基準となる遅延量とを比較することで、遅延量のズレをそれぞれ算出してもよい。
(3)配信サーバ10の機能構成について
上述した配信サーバ10の機能構成は、あくまで一例であり、配信サーバ10として同様の処理を実行できるのであれば、任意の構成を採用することができる。例えば、配信サーバ10は、収集部16の機能を分割してもよい。また、配信サーバ10は、収集部16の機能を取得部17、算出部18に発揮させてもよい。また、配信サーバ10は、画質制御部19、画像生成部20、操作制御部21の機能を有する配信制御部を有してもよい。
(4)データについて
上述した配信サーバ10は、各端末装置3〜5に画像を送信した。しかしながら、実施例はこれに限定されるものではない。例えば、配信サーバ10は、画像と同時に音声を配信してもよく、または、画像の代わりに音声のみを配信してもよい。
(5)プログラム
上記の実施例で説明した配信サーバ10が発揮する機能は、予め用意された配信プログラムをコンピュータが実行することで実現してもよい。そこで、以下では、図13を用いて、上記の配信サーバ10と同様の機能を有する配信プログラムを実行するコンピュータの一例について説明する。
図13は、配信プログラムを実行するコンピュータの一例を説明する図である。図13に例示されたコンピュータ100は、ROM(Read Only Memory)110、HDD(Hard Disk Drive)120、RAM(Random Access Memory)130、CPU(Central Processing Unit)140がバス160で接続される。また、図13に例示されたコンピュータ100は、パケットを送受信するためのI/O(Input Output)150を有する。
HDD120は、クライアント管理テーブル14と同様のデータが格納されたクライアント管理テーブル121と、送信時刻テーブル15と同様のデータが格納された送信時刻テーブル122を記憶する。また、RAM130には、配信プログラム131があらかじめ保持される。CPU140が配信プログラム131をRAM130から読み出して実行することによって、図13に示す例では、配信プログラム131は、配信プロセス141として機能するようになる。なお、配信プロセス141は、図5に示した収集部16、取得部17、算出部18、画質制御部19、画像生成部20、操作制御部21と同様の機能を発揮する。
なお、本実施例で説明した配信プログラムは、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM(Compact Disc Read Only Memory)、MO(Magneto Optical Disc)、DVD(Digital Versatile Disc)などのコンピュータで読取可能な記録媒体に記録される。また、このプログラムは、コンピュータによって記録媒体から読み出されることによって実行することもできる。
1 通信システム
2 ネットワーク
3〜5 端末装置
10 配信サーバ
11 記憶部
12 通信部
13 配信処理実行部
14 クライアント管理テーブル
15 送信時刻テーブル
16 収集部
17 取得部
18 算出部
19 画質制御部
20 画像生成部
21 操作制御部

Claims (8)

  1. 複数の端末装置に画像データを送信する情報処理装置において、
    各端末装置が計時する時刻と前記情報処理装置が計時する時刻とのズレを記憶する記憶部と、
    各端末装置へ前記画像データを送信するデータ送信部と、
    各端末装置が前記画像データを受信した時刻を示す情報を取得する取得部と、
    前記端末装置ごとに、前記データ送信部が前記画像データを送信した時刻と前記取得部が取得した情報が示す時刻との差分、および、前記記憶部が記憶する時刻のズレを用いて、前記端末装置へ画像データを送信する経路の遅延量を算出する算出部と、
    前記算出部が各端末装置について算出した遅延量同士を比較して遅延量のズレを識別し、識別した遅延量のズレに応じて、各端末装置と送受信するデータ量を制御する制御部と、
    を有することを特徴とする情報処理装置。
  2. 前記遅延量を測定するための測定用パケットを各端末装置へ送信する測定用パケット送信部と、
    各端末装置から前記測定用パケットを受信した時刻を示す情報が格納された応答を受信する受信部と
    前記測定用パケット送信部が前記測定用パケットを送信してから前記受信部が前記応答を取得するまでの時間を前記端末装置ごとに測定する測定部と、
    前記受信部が受信した応答に格納された情報が示す時刻と前記測定用パケット送信部が前記測定用パケットを送信した時刻との差分から、前記測定部が測定した時間の半分を減算した値を前記端末装置ごとに算出し、当該算出した値を前記端末装置が計時する時刻と前記情報処理装置が計時する時刻とのズレとして前記記憶部に格納する格納部と
    を有することを特徴とする請求項1に記載の情報処理装置。
  3. 前記データ送信部は、全ての端末装置に対して画像データを送信する場合は、各画像データに所定の識別子を付して各端末装置に送信し、
    前記取得部は、前記識別子が付加された画像データを受信した端末装置から、前記所定の識別子が付加されたデータを受信した時刻を示す情報が付加された割込み通知を取得することを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記制御部は、ある端末装置について識別した遅延量のズレが第1の閾値以上であり、かつ、該第1の閾値より大きい第2の閾値より小さい場合は、当該端末装置に対し、前記情報処理装置へ割込み通知を送信する頻度を低下させるよう指示することを特徴とする請求項1〜3のいずれか1つに記載の情報処理装置。
  5. 前記制御部は、ある端末装置について識別した遅延量のズレが前記第2の閾値以上であり、かつ、該第2の閾値より大きい第3の閾値より小さい場合は、当該端末装置に対して送信する画像データの画質を、他の端末装置に対して送信する画像データの画質よりも低く設定することを特徴とする請求項4に記載の情報処理装置。
  6. 前記制御部は、ある端末装置について識別した遅延量のズレが前記第3の閾値以上である場合は、当該端末装置に対して画像データを送信する頻度を、他の端末装置に対して画像データを送信する頻度よりも低く設定することを特徴とする請求項5に記載の情報処理装置。
  7. 複数の端末装置へデータを送信する情報処理装置が、
    各端末装置へ前記データを送信し、
    各端末装置が前記データを受信した時刻を示す情報を取得し、
    前記端末装置ごとに、前記端末装置が計時する時刻と前記情報処理装置が計時する時刻とのズレを記憶する記憶装置から時刻のズレを読出し、前記データを送信した時刻と前記得した情報が示す時刻との差分、および、前記記憶装置から読出した時刻のズレを用いて、前記端末装置へデータを送信する経路の遅延量を算出し、
    端末装置について前記算出した遅延量同士を比較して遅延量のズレを識別し、
    前記識別した遅延量のズレに応じて、各端末装置と送受信するデータ量を端末装置ごとに制御する
    処理を実行することを特徴とする配信方法。
  8. コンピュータに、
    複数の端末装置へデータを送信し、
    各端末装置が前記データを受信した時刻を示す情報を取得し、
    前記端末装置ごとに、前記端末装置が計時する時刻と前記コンピュータが計時する時刻とのズレを記憶する記憶装置から時刻のズレを読出し、前記データを送信した時刻と取得した情報が示す時刻との差分、および、前記記憶装置から読出した時刻のズレを用いて、前記端末装置へデータを送信する経路の遅延量を算出し、
    端末装置について前記算出した遅延量同士を比較して遅延量のズレを識別し、
    前記識別した遅延量のズレに応じて、各端末装置と送受信するデータ量を端末装置ごとに制御する
    処理を実行させることを特徴とする配信プログラム。
JP2013142152A 2013-07-05 2013-07-05 情報処理装置、配信方法および配信プログラム Active JP6205912B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013142152A JP6205912B2 (ja) 2013-07-05 2013-07-05 情報処理装置、配信方法および配信プログラム
US14/306,306 US9471093B2 (en) 2013-07-05 2014-06-17 Controlling data amounts distributed to terminal devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013142152A JP6205912B2 (ja) 2013-07-05 2013-07-05 情報処理装置、配信方法および配信プログラム

Publications (2)

Publication Number Publication Date
JP2015015656A JP2015015656A (ja) 2015-01-22
JP6205912B2 true JP6205912B2 (ja) 2017-10-04

Family

ID=52133638

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013142152A Active JP6205912B2 (ja) 2013-07-05 2013-07-05 情報処理装置、配信方法および配信プログラム

Country Status (2)

Country Link
US (1) US9471093B2 (ja)
JP (1) JP6205912B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016185261A1 (en) * 2015-05-21 2016-11-24 Andrew Wireless Systems Gmbh Synchronizing multiple-input/multiple-output signals in telecommunications systems
JP6803563B2 (ja) * 2017-06-06 2020-12-23 パナソニックIpマネジメント株式会社 テレビ会議装置
CN111416839B (zh) * 2020-02-26 2022-09-23 平安科技(深圳)有限公司 集群环境定时任务处理方法、系统、装置及存储介质

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4569042A (en) * 1983-12-23 1986-02-04 At&T Bell Laboratories Time measurements in a transmission path
US6940831B1 (en) * 1999-11-29 2005-09-06 Matsushita Electric Industrial Co., Ltd Wireless communications system
JP3696806B2 (ja) * 2001-06-19 2005-09-21 富士通株式会社 通信性能測定装置
JP4402619B2 (ja) * 2005-06-02 2010-01-20 日本電信電話株式会社 マルチキャスト通信フロー制御方法および装置
JP4331702B2 (ja) * 2005-06-16 2009-09-16 日本電信電話株式会社 片道転送遅延時間推定装置、方法、およびプログラム
US7912498B2 (en) * 2006-03-31 2011-03-22 Motorola Solutions, Inc. Adaptive buffering to reduce audio truncation
US8121115B2 (en) * 2006-07-10 2012-02-21 Telefonaktiebolaget Lm Ericsson (Publ) Compressed delay packet transmission scheduling
US8345561B2 (en) * 2006-08-22 2013-01-01 Rueters America Inc. Time monitor
KR100846344B1 (ko) * 2007-01-05 2008-07-15 삼성전자주식회사 이동통신 시스템에서 전송 제어 프로토콜의 전송 지연을줄이기 위한 장치 및 방법
US8634326B2 (en) * 2007-02-02 2014-01-21 Telefonaktiebolaget L M Ericsson (Publ) Method and node for the control of a connection in a communication network
US8416788B2 (en) * 2007-04-26 2013-04-09 Microsoft Corporation Compression of data packets while maintaining endpoint-to-endpoint authentication
JP2009177591A (ja) 2008-01-25 2009-08-06 Mitsubishi Electric Corp 同期表示システム
WO2009131507A1 (en) * 2008-04-25 2009-10-29 Telefonaktiebolaget L M Ericsson (Publ) Method for determining the round trip time
US8266317B2 (en) * 2008-06-02 2012-09-11 International Business Machines Corporation Reducing idle time due to acknowledgement packet delay
JP5136334B2 (ja) 2008-09-29 2013-02-06 日本電気株式会社 リモートデスクトップシステム、クライアント装置、サーバ、通信方式選択方法、プログラム及び記録媒体
US9882831B2 (en) * 2009-01-16 2018-01-30 Mainline Net Holdings Limited Maximizing bandwidth utilization in networks with high latencies and packet drops using transmission control protocol
US8718482B1 (en) * 2009-11-10 2014-05-06 Calix, Inc. Transparent clock for precision timing distribution
US9571406B2 (en) * 2011-10-25 2017-02-14 Vmware, Inc. Network congestion management based on communication delay
US9112603B2 (en) * 2011-11-22 2015-08-18 Electronics And Telecommunications Research Institute Apparatus and method for measuring a delay
US9148382B2 (en) * 2012-02-15 2015-09-29 Ciena Corporation Adaptive Ethernet flow control systems and methods
US8934452B2 (en) * 2012-07-17 2015-01-13 Alcatel Lucent Method, apparatus and computer readable medium for timing alignment in overlaid heterogeneous wireless networks
US8976750B1 (en) * 2013-01-16 2015-03-10 Sprint Communications Company L.P. Delivering precision time protocol frequency and phase synchronization over a network without on-path support
US20140337505A1 (en) * 2013-05-08 2014-11-13 Htc Corporation Method for data transmission and corresponding electronic device

Also Published As

Publication number Publication date
JP2015015656A (ja) 2015-01-22
US20150012773A1 (en) 2015-01-08
US9471093B2 (en) 2016-10-18

Similar Documents

Publication Publication Date Title
JP6957215B2 (ja) 情報処理装置、情報処理方法及びプログラム
KR102326282B1 (ko) 대역폭에 적응적인 대쉬 기반 컨텐츠 제공 장치 및 방법
JP6486377B2 (ja) ビデオ送信
CN104581188A (zh) 用于ip视频信号同步的方法和装置
AU2022252735B2 (en) Method and apparatus for synchronizing applications' consumption of remote data
US11202110B2 (en) Information processing apparatus, control method of the same, and storage medium
JP6205912B2 (ja) 情報処理装置、配信方法および配信プログラム
JP2014182793A (ja) エンコーダ、映像処理サーバ、映像処理システム、エンコード方法およびそのプログラム
JP2017069849A (ja) 映像制御装置、映像配信システムおよび映像制御方法
JP2019139443A (ja) 通信装置、通信方法、及びプログラム
US20170134690A1 (en) Multi-display apparatus
KR101795537B1 (ko) 네트워크 환경 적응형 클라우드 스트리밍 서비스 제공시스템 및 그 방법
US20150172154A1 (en) Minimizing symmetrical latency impact by jitter buffer for tdm ces
JP5994944B2 (ja) 情報処理装置、方法、及びプログラム
JP2014038159A (ja) 画像処理装置、画像処理方法、プロジェクタ、画像投影システム、プログラム及び記録媒体
Montagud et al. Design, development and assessment of control schemes for IDMS in a standardized RTCP-based solution
KR101974077B1 (ko) Rtp 패킷을 이용한 재생 영상의 시간 표시 방법
JP6193569B2 (ja) 受信装置、受信方法、及びプログラム、撮像装置、撮像方法、及びプログラム、送信装置、送信方法、及びプログラム
JP2020005063A (ja) 処理装置及びその制御方法、出力装置、同期制御システム、並びにプログラム
JP2017535172A (ja) ビデオカメラシステムにおけるデータレートの設定
JP2020022106A (ja) 情報処理装置、情報処理方法、及びプログラム
JP2020017897A (ja) 端末装置、会議システム、端末装置の制御方法、及びプログラム
US11621023B2 (en) Media recording system
US20230155949A1 (en) Communication apparatus, control method for communication apparatus, and storage medium
JP2020127082A (ja) 画像送信装置および画像表示装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160405

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170308

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170821

R150 Certificate of patent or registration of utility model

Ref document number: 6205912

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150