JP5744554B2 - 情報処理装置、情報処理方法、及びプログラム - Google Patents

情報処理装置、情報処理方法、及びプログラム Download PDF

Info

Publication number
JP5744554B2
JP5744554B2 JP2011024433A JP2011024433A JP5744554B2 JP 5744554 B2 JP5744554 B2 JP 5744554B2 JP 2011024433 A JP2011024433 A JP 2011024433A JP 2011024433 A JP2011024433 A JP 2011024433A JP 5744554 B2 JP5744554 B2 JP 5744554B2
Authority
JP
Japan
Prior art keywords
data
redundant
packet
symbol
information processing
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
JP2011024433A
Other languages
English (en)
Other versions
JP2012165211A (ja
JP2012165211A5 (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2011024433A priority Critical patent/JP5744554B2/ja
Publication of JP2012165211A publication Critical patent/JP2012165211A/ja
Publication of JP2012165211A5 publication Critical patent/JP2012165211A5/ja
Application granted granted Critical
Publication of JP5744554B2 publication Critical patent/JP5744554B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Detection And Prevention Of Errors In Transmission (AREA)

Description

本発明は、誤り訂正データを生成する情報処理技術に関する。
近年、インターネット等の通信網の発達により、動画像データのような比較的大きなデータを、通信回線を介して送信することが一般的になっている。通信回線を介してデータを送信する際には、伝送エラーが発生する可能性があるため、従来よりエラー訂正技術が用いられている。エラーへの対処方法としては、たとえば再送制御やFEC(Forward Error Correction)といった方法が知られている。特に、リアルタイム性を重視したシステムやアプリケーションプログラムでは、FECが一般的に使われている。FECは、保護対象データから予め冗長データを生成しておき、それを保護対象データと一緒に送信することでエラー耐性を高める技術である。FECの例としては例えば、リード・ソロモン符号FECと呼ばれる方法がある(非特許文献1参照)。
とりわけ、特にライブ映像等のリアルタイム性を必要とするデータの送信のためには、RTP(A Transport Protocol for Real-Time Applications, RFC 3550, IETF)と呼ばれるプロトコルを用いるのが一般的である。RTPは、高速かつ軽量な伝送プロトコルであるUDP/IP(User Datagram Protocol/Internet Protocol)上に実装されることを想定している。UDPでは、高速、軽量である代わりにパケットロス等に対するエラー耐性が低い。従って、上位層においてエラー訂正を行うことがより重要となる。
特許文献1の方法では、複数のシンボルで構成されるデータブロックから、複数の冗長シンボルが生成される。各シンボルは別々のデータパケットに格納され、各冗長シンボルは別々のFECパケットに格納される。そして、データパケットと冗長パケットとが別々に送信される。この方法によれば、それぞれのデータブロックについて、FECパケットの数分だけのロスパケットを回復することができる。
特開平11−136220号公報
特許文献1の方法によれば、誤り訂正データの生成にかかる処理負荷が大きくなってしまう可能性がある。すなわち、通信においては、連続的なパケットロスであるバーストエラーが発生しやすい。バーストエラー耐性を高めるためにはFECパケットの数を増やす必要がある。特許文献1の方法によれば、1つのデータブロックについての冗長シンボルが別々のFECパケットに格納される。すなわち、FECパケットの数を増やすと、1つのデータブロックについての冗長シンボルの数も増えることとなる。
一方で冗長度が高いと送信データ量が増えるため、輻輳エラーが発生しやすくなる。冗長度を抑えるためには、FECパケットの数に対するデータパケットの数を増やす必要がある。ところで、特許文献1の方法によれば1つのデータブロックについてのシンボルは別々のデータパケットに格納される。したがって、冗長度を抑える場合には、1つのデータブロックについてのシンボルの数は増加する。このように、シンボルの数及び冗長シンボルの数が増加すると、シンボルから冗長シンボルを計算するための処理負荷が大きくなってしまうことがある。
本発明は、誤り訂正データの生成に必要な処理負荷を低減することを目的とする。
本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。すなわち、
ータパケットを取得する取得手段と、
記データパケットの誤り訂正用の冗長パケットを生成する生成手段であって、
K個のデータパケットに対してM個の冗長パケットを生成する場合において、
第k番目(1≦k≦K)のデータパケットを8ビット以上のサイズのシンボルに分割した場合の第i番目のシンボルをシンボルS k,i とし、当該シンボルS k,i をD等分した場合の第d番目の分割データをS k,i (d)と表し、
第m番目(1≦m≦M)の冗長パケットを8ビット以上の前記サイズのシンボルに分割した場合の第i番目のシンボルを冗長シンボルR m,i とし、当該冗長シンボルR m,i をD等分した場合の第d番目の分割冗長データをR m,i (d)と表す場合に、
前記分割データS 1,i (d),…,S K,i (d)のうちD個ずつを連結して、(K/D)個の連結データT 1,i (d),…,T K/D,i (d)を生成し、
前記連結データT 1,i (d),…,T K/D,i (d)から、(M/D)個の冗長データU 1,i (d),…,U M/D,i (d)を生成し、
前記冗長データU 1,i (d),…,U M/D,i (d)のそれぞれをD個ずつに分割して得られる分割冗長データR 1,i (d),…,R M,i (d)を組み合わせることで前記冗長パケットを生成する生成手段と、
前記生成手段により生成された前記冗長パケットを前記データパケットと共に出力する出力手段とを有することを特徴とする。
誤り訂正データの生成に必要な処理負荷を低減できる。
実施例1に係るサーバ100及びクライアント120のブロック図。 各実施例に係る処理を実行可能なコンピュータの構成例を示す図。 FECパケット生成部104が行う処理のフローチャート。 実施例1に係るFECパケット生成方法を示す図。 FECヘッダの構造例を示す図。 実施例2に係る処理のフローチャート。 リード・ソロモン符号FECの生成方法を示す図。 従来技術に係るFECパケット生成方法を示す図。
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施例において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。以下の実施例においてデータシンボル、冗長シンボル、部分シンボル、連結シンボル、冗長部分シンボル、冗長データ、及び分割冗長データのビット長は2Z1(Z1は0以上の整数)で表される。また、分割数Dも2Z2(Z2は0以上の整数)で表される。しかしながらビット長及び分割数Dが2Z1ではない場合にも、以下の実施例を修正して適用できることは、当業者には明らかであろう。また、以下の実施例では映像データパケットに対する冗長データパケットを生成する場合について説明する。しかしながらデータの種類は映像データに限られず、文書データ、音声データなどでもよい。
[実施例1]
実施例1では、FECとして、リード・ソロモン符号FECを用いる場合について説明する。リード・ソロモン符号FECは、CDやDVDなどの記憶装置や、衛星通信、地上デジタル放送等の通信分野でも使われている誤り訂正方法で、ガロア体の元を使って符合語(冗長シンボル)を生成するのが特徴である。まず、従来技術におけるリード・ソロモン符号化を図7を用いて説明する。
図7(A)におけるM1〜M40は保護対象データを40個のシンボルに分割したものである。シンボルとは、複数のビットからなるビット列である。リード・ソロモン符号FECにおいては、以下で説明するように複数のシンボルから冗長シンボルが生成される。リード・ソロモン符号化における1シンボルのビット数は規定されていないが、コンピュータの仕様上、8ビットの倍数であることが多い。本実施例においては、1シンボルは8ビットであるものとして説明する。また、40個のシンボルの集合をブロックと呼ぶ。各ブロックごとに、冗長シンボルを生成するための計算が行われる。すなわち、各ブロックごとに、以下で説明する生成シンドロームに従う冗長データの算出が行われる。
F1〜F8は冗長シンボルを表す。すなわち、40個のシンボルM1〜M40から冗長シンボルF1〜F8が生成される。従来技術においては、40個のシンボルM1〜M40と冗長シンボルF1〜F8とが、1つのパケットとして送信される。冗長シンボルF1〜F8は生成シンドロームと呼ばれる多項式から生成する。図7(B)において、S1〜S8は生成シンドロームを表す。αのべき乗はガロア体の元を表している。また、生成シンドロームはS1〜S8で構成される。S1は各シンボルの排他的論理和であり、S2〜S8は、各シンボルとαのべき乗との積の、排他的論理和である。
冗長シンボルF1〜F8は、生成シンドロームS1〜S8が0になるように生成される。また、冗長シンボル数の半分の値が、誤り訂正可能なシンボル数となる。図7(A)の例では、40個の保護対象データシンボルのうち、任意の4シンボルのエラーを訂正することができる。誤りがあるシンボルが特定できている場合には、最大8シンボルまで訂正することができる。
特許文献1の方法によれば、40個のシンボルM1〜M40と冗長シンボルF1〜F8とが、48個のパケットのそれぞれに含められる。図8に特許文献1の方法について示す。図8において、1ブロックを構成するシンボルM1〜M40は、別々のパケット1〜40に含められている。また、8個の冗長シンボルF1〜F8も、別々のFECパケット1〜8に含められている。すなわち、保護対象パケットのヘッダを除くペイロード部分が1400バイトである場合、1シンボルは8ビット(1バイト)だから、1つの保護対象パケットは1400個のシンボルを含む。
以下に、図面を参照しながら、実施例1について説明する。図1に示されるように、本実施例に係る情報処理装置であるサーバ100は、映像入力部101、映像符号化部102、映像パケット生成部103、FECパケット生成部104、及びパケット送信部105とを備える。以下、サーバ100はネットワークカメラであるものとして説明する。しかしながら他の実施例において、サーバ100は、通信を行うことができる一般的なコンピュータであってもよい。なお、本実施例のサーバ100は、データパケットを復元するための復元パケットを生成する、生成装置として動作する。本実施例のサーバ100は、データパケットと、データパケットから生成された復元パケットとを送信する。これらのパケットを受信したクライアントは、データパケットが破損又は欠損している場合に、復元パケットを用いてデータパケットを修復することができる。
映像入力部101は、映像データを取得する。例えば映像入力部101は撮像部を備えてもよく、映像入力部101は、この撮像部が撮像した映像データを取得しうる。もっとも、映像入力部101が取得するデータは映像データには限られず、音声データやテキストデータなどを入力してもよい。
映像符号化部102は、映像入力部101が取得した映像データを符号化する。例えば映像符号化部102は、映像データに対して離散コサイン変換及び量子化処理を行うことにより、映像データを圧縮符号化しうる。符号化方式は任意の方法でよく、例えばJPEG符号化、MPEG−2符号化、又はMPEG−4符号化などを用いることができる。また映像符号化部102は、映像入力部101が取得した映像データがアナログデータである場合には、A/D変換処理によって映像データをデジタル化することができる。もっとも、映像符号化部102による符号化は本実施例において必須ではない。例えば後述する映像パケット生成部103は、映像入力部101が取得した映像データをパケット化してもよい。
映像パケット生成部103は、映像符号化部102が符号化した映像データをパケット化する。例えば映像パケット生成部103は、通信に適したサイズへと、映像データをパケット化しうる。映像パケット生成部103が生成するパケットは、通常、複数のシンボルを含む。FECパケット生成部104は、映像パケット生成部103で生成されたK個(通常はK≧2)の映像パケットを用いて、冗長パケットで構成されるM個(M≧1、通常はM≧2)のFECパケット(冗長パケット)を生成する。以下で、N=K+Mとする。FECパケット生成部104が行う処理の詳細については後述する。
パケット送信部105は、映像パケット生成部103が生成した映像パケット及びFECパケット生成部104が生成したFECパケットを、クライアントに送信する。本実施例においてパケット送信部105は、インターネット110を経由してパケットを送信する。しかしながら、送信経路はインターネットに限られず、パケット送信部105は例えば無線通信路のような任意の送信経路を介してパケットを送信することができる。
クライアント120は、パケット受信部121、誤り訂正部122、映像復号化部123、及び映像再生部124を備える。本実施例においてクライアント120は、サーバ100より送信された映像データを受信するための通信機能を備えたクライアントである。例えばクライアント120は、一般のコンピュータ、テレビ、ストレージ装置などでありうる。
パケット受信部121は、サーバ100のパケット送信部105から送信された映像パケット及びFECパケットを受信する。誤り訂正部122は、パケット受信部121が受信した映像パケットに、破損又は欠損があるか否かを判定する。映像パケットに破損又は欠損が見つかった場合、誤り訂正部122は、FECパケットを用いて映像パケットを回復することが可能か否かを判定する。回復が可能である場合誤り訂正部122は、FECパケットを用いて映像パケットを回復する。誤り訂正部122が行う処理は、既知の誤り訂正技術に従って行うことができる。
映像復号化部123は、パケット受信部121が受信した映像パケット又は、誤り訂正部122が回復した映像パケットを、復号化する。映像復号化部123は、映像符号化部102が行った符号化処理に対応する復号化処理を行う。例えば映像符号化部102が離散コサイン変換及び量子化を行っている場合、映像復号化部123は逆量子化及び逆離散コサイン変換処理を行う。映像復号化部123は、D/A変換によってデジタルデータをアナログデータに変換してもよい。映像再生部124は、映像復号化部123が復号化した映像データを再生する。映像再生部124は例えば、ディスプレイ機能を持つ表示デバイスなどでありうる。
次に、FECパケット生成部104についてより詳しく説明をする。図3は、FECパケット生成部104が行う処理のフローチャートである。まず、ステップS301においてFECパケット生成部104は、通信情報308を取得し、この通信情報に従って冗長度及び最大バーストエラー訂正能力を決定する。ここでいう通信情報とは、サーバ100が行う通信の状況を示す情報である。通信情報とは例えば、利用可能帯域幅や過去の最大バーストエラー長等である。この通信情報は、サーバ100とクライアント120とが行う通信の状況を示す情報であってもよい。
利用可能帯域幅の取得方法としては、どのような方法でも用いることができる。利用可能帯域幅の取得方法の例としては、TFRC(TCP Friendly Rate Control)のスループット方程式が挙げられる。TFRCのスループット方程式は、RTTやエラーレート等の情報から、セッションが利用可能な帯域幅を算出するための方程式であり、一般的に広く知られている。その他にも、主にTCPで用いられるAIMD(Additive Increase Multiplicative Decrease)と呼ばれる取得方法などもある。
過去の最大バーストエラー長を取得する方法についても、どのような方法でも用いることができる。例えば、映像パケットを受信するクライアント120は、エラーパケット解析を行い、過去のある一定期間の最大バーストエラー長を計測しうる。クライアント120が計測結果をサーバ100に通知することで、サーバ100は過去の最大バーストエラー長を取得することができる。その他にも、クライアントからのRR(Receiver Report)に含まれるエラーパケット数等から、過去の最大バーストエラー長を推測することもできる。この場合RRは、非常に短い期間についてのRRであってもよい。
冗長度の算出方法としては、どのような方法でも用いることができる。通常は、利用可能帯域幅が大きいほど冗長度が大きくなるように、冗長度は計算される。また、通信のエラーレートが大きいほど冗長度が大きくなるように、冗長度は計算される。本実施例においては、K個のパケットからM個の冗長パケットが生成されるが、この場合冗長度はM/Kで表される。したがって一例として、M/Kがエラーレート以上となるように、M及びKの値は定められうる。この場合、例えばクライアント120からのRRから、サーバ100はエラーレートを知ることができる。別の具体的な例としては、映像のビットレートと冗長データのビットレートとの合計が利用可能帯域幅よりも小さくなるように、冗長度が決定されてもよい。
最大バーストエラー訂正能力は、過去の最大バーストエラー長に従って計算されうる。例えば最大バーストエラー訂正能力は過去の最大バーストエラー長に一致してもよいし、過去の最大バーストエラー長に所定の係数を乗じて得られる値に一致してもよい。本実施例においては、K個のパケットからM個の冗長パケットが生成されるが、この場合バーストエラー訂正能力はM(パケット)となる。したがって通常Mは、サーバ100がデータを送信する際の、パケットを単位とした場合の最大バーストエラー長以上となるように定められる。
ステップS302でFECパケット生成部104は、ブロック長を算出する。本実施例においては、ブロック長を算出する前に、1つの連結シンボルがいくつのパケットから抽出されるのかが決定されている。1つの連結シンボルがD個のパケットから抽出される場合、分割数がDであるものとする。分割数は例えば、ユーザによって予め設定されていてもよい。
分割数Dと、ステップS301で算出された冗長度及び最大バーストエラー訂正能力とに従って、FECパケット生成部104はブロック長を算出する。具体的には以下の式(3)に従って、FECパケット生成部104はブロック長K(単位:パケット)を算出しうる。
K = (M×(100/r))/D …(2)
式(2)において、Dは分割数を、rは冗長度を(%)を、Mは最大バーストエラー訂正能力(単位:パケット)を、それぞれ示す。
次にステップS303でFECパケット生成部104は、映像パケット生成部103(入力手段)が入力したK個の映像パケット309を取得し、K個の映像パケット309から部分シンボルを抽出する。さらにステップS304においてFECパケット生成部104が備える連結部(不図示)は、部分シンボルを結合して連結シンボルを生成する(連結手段)。具体的には、第k番目(1≦k≦K)の映像パケットの第i番目のシンボルをシンボルSk,iとする場合に、FECパケット生成部104はシンボルSk,iのそれぞれをD等分して、部分シンボルSk,i(1),….Sk,i(D)を抽出する。そしてFECパケット生成部104は部分シンボルS1,i(d),…,SK,i(d)のうちD個ずつを連結して、(K/D)個の連結シンボルT1,i(d),…,TK/D,i(d)を生成する。
より具体的な一例としては、FECパケット生成部104は、部分シンボルSD(x−1)+1,i,…,SDx,i(d)(1≦x≦K/D)を連結して連結シンボルTx,i(d)を生成してもよい。
ステップS305でFECパケット生成部104は、1ブロックに含まれる全ての部分シンボルが抽出されたか否かを判定する。まだ抽出されていない部分シンボルがある場合には、処理はステップS303に戻る。全ての部分シンボルが抽出されている場合には、処理はステップS306に進む。映像パケットが可変長パケットである場合には、それぞれの映像パケットの長さは互いに異なるかもしれない。この場合、それぞれの映像パケットの長さが等しくなるように、短い映像パケットに対してパディングを行ってもよい。
ステップS306でFECパケット生成部104は、以上のように生成された連結シンボルを用いて生成シンドロームを算出する。ステップS307においてFECパケット生成部104が備える生成部(不図示)は、生成シンドロームを用いて冗長データを生成する(生成手段)。さらにFECパケット生成部104が備える組立部(不図示)は、冗長データを分割して分割冗長データを生成し、分割冗長データを有するFECパケット310を生成する(組立手段)。
具体的にはFECパケット生成部104は、連結シンボルT1,i(d),…,TK/D,i(d)から、(M/D)個の冗長データU1,i(d),…,UM/D,i(d)を生成する。この生成処理は、図7に示されるような生成シンドロームに従って行えばよい。そしてFECパケット生成部104は、冗長データU1,i(d),…,UM/D,i(d)のそれぞれをD個ずつに分割して、分割冗長データを生成する。さらにFECパケット生成部104は、部分冗長シンボルR1,i(d),…,RM,i(d)のそれぞれが生成された分割冗長データとなるように、FECパケットを組み立てる。ここで、第m番目(1≦m≦M)のFECパケットの第i番目のシンボルを冗長シンボルRm,iと表し、冗長シンボルRm,iをD等分した場合の第d番目の部分冗長シンボルをRm,i(d)と表す。こうして生成されたFECパケットは、パケット送信部105(出力手段)によって冗長パケットとして出力される。
より具体的な一例としては、FECパケット生成部104は、部分冗長シンボルRD(y−1)+1,i(d),…,RDy,i(d)(1≦y≦M/D)のそれぞれが分割冗長データUy,i(d)(1),…,Uy,i(d)(D)となるように、FECパケットを組み立ててもよい。ここで、冗長データUy,i(d)をD等分して得られる分割冗長データをUy,i(d)(1),…,Uy,i(d)(D)と表すものとする。
次に、ステップS303〜S307において複数のデータパケットからFECパケットを生成する方法について、図4を参照して詳しく説明する。図4においては説明のために1シンボルが8ビットで構成されているが、1シンボルを構成するビット数は任意でありうる。
図4(A)は、従来のFECパケット生成方法を示す。この例では、1シンボルが1パケットから抽出される。具体的にはFECパケット生成部104は、映像パケット生成部103が生成した映像パケットを受け取る。そしてFECパケット生成部104は、それぞれの映像パケットのペイロード部分を8ビット毎に分割することにより、ペイロードデータを複数のシンボルに変換する。すなわち1つの映像パケットのペイロードは、1番目のシンボルからx番目のシンボルまでの、x個のシンボルに分割される。
図4(A)の例では、FECパケット生成部104は、映像パケット生成部103からy個の映像パケットを連続して受け取る。そしてFECパケット生成部104は、y個の映像パケットから、z個のFECパケットを生成する。具体的にはFECパケット生成部104は、以下のようにFECパケットを生成しうる。
まずFECパケット生成部104は、y個の映像パケットのそれぞれについての1番目のシンボルを用いて、z個のFECパケットのシンボルを生成する。FECパケット生成部104は、図7に示される生成シンドロームに従って、y個のシンボルからz個の冗長データを生成しうる。生成されたz個の冗長データのそれぞれは、1番目の冗長シンボルとして、z個のFECパケットのそれぞれに格納される。同様にFECパケット生成部104は、y個の映像パケットのそれぞれについての2番目のシンボルを用いて、z個の冗長データを生成する。生成されたz個の冗長データのそれぞれは、2番目の冗長シンボルとして、z個のFECパケットのそれぞれに格納される。同じようにFECパケット生成部は、3番目〜x番目のシンボルから冗長データを生成し、生成された冗長データを3番目〜x番目の冗長シンボルとして、FECパケットのそれぞれに格納する。
図4(A)の例において、1つのブロックは、y個のシンボルで構成される。すなわちy個の映像パケットには、x個のブロックが含まれる。1ブロックからは上述のように、z個の冗長データが生成される。冗長データの数は、要求される訂正能力に応じて設定されうる。上述のようの冗長データのそれぞれは別々のFECパケットに含まれるため、z個のFECパケットが生成されることになる。
図4(B)は、本実施例におけるFECパケット生成方法のうちの1つを示す。この例では、1つの連結シンボルは2つの映像パケットから抽出される。すなわち、FECパケット生成部104は、y個の映像パケットのそれぞれのペイロード部分を4ビット毎に分割する。説明のためにここでは、分割された4ビットのデータを部分シンボルと呼ぶ。すなわち、1個の映像パケットは2x個の部分シンボルに分割される。
続けてFECパケット生成部104は、y個の映像パケットのそれぞれについての1番目の部分シンボルを用いて、z/2個の冗長データを生成する。具体的にはまずFECパケット生成部104は、y個の部分シンボルからy/2個の連結シンボルを生成する。すなわち、2つの部分シンボルを連結して1つの連結シンボルを生成する。例えば1番目の映像パケットの部分シンボルと2番目の映像パケットの部分シンボルとを連結して、1つの連結シンボルを生成することができる。また、3番目の映像パケットの部分シンボルと4番目の映像パケットの部分シンボルとを連結して1つの連結シンボルを生成することができる。こうしてFECパケット生成部104は、y/2個の連結シンボルを生成する。上述のように、1つのシンボルは8ビットであり、1つの部分シンボルは4ビットであり、1つの連結シンボルは8ビットである。
そしてFECパケット生成部104は、図7に示される生成シンドロームに従って、生成されたy/2個の連結シンボルから、z/2個の冗長データを生成する。1つの冗長データは8ビットである。さらにFECパケット生成部104は、生成されたz/2個の冗長データを、z個の分割冗長データに分割する。具体的には、8ビットの冗長データのそれぞれを2つに分割し、4ビットの分割冗長データとすればよい。z個の分割冗長データのそれぞれは、1番目の部分冗長シンボルとして、z個のFECパケットのそれぞれに格納される。
y個の映像パケットのそれぞれについての2番目以降の部分シンボルからも、同様に分割冗長データが生成される。このようにして、y個の映像パケットから、z個のFECパケットが生成される。図4(B)の例において1つのブロックは、y/2個の連結シンボルで、すなわちy個の部分シンボルで構成される。またy個の映像パケットには、2x個のブロックが含まれる。1ブロックからは上述のように、z/2個の冗長データが、すなわちz個の分割冗長データが生成される。
図4(C)は、本実施例におけるFECパケット生成方法のうちの1つを示す。この例では、1つの連結シンボルは4つの映像パケットから抽出される。すなわち、FECパケット生成部104は、y個の映像パケットのそれぞれのペイロード部分を2ビット毎に分割する。この例では、分割された2ビットのデータを部分シンボルと呼ぶ。すなわち、1個の映像パケットは4x個の部分シンボルに分割される。
その後FECパケット生成部104は、図4(B)に示される場合と同様に、FECパケットを生成する。すなわちFECパケット生成部104は、y個の映像パケットのそれぞれについての1番目の部分シンボルを用いて、z/4個の冗長データを生成する。具体的にはFECパケット生成部104は、y個の部分シンボルからy/4個の連結シンボルを生成し、生成されたy/4個の連結シンボルから、z/4個の冗長データを生成する。さらにFECパケット生成部104は、生成されたz/4個の冗長データを、z個の分割冗長データに分割する。z個の分割冗長データのそれぞれは、1番目の部分冗長シンボルとして、z個のFECパケットのそれぞれに格納される。
y個の映像パケットのそれぞれについての2番目以降の部分シンボルからも、同様に分割冗長データが生成される。このようにして、y個の映像パケットから、z個のFECパケットが生成される。図4(C)の例において1つのブロックは、y/4個の連結シンボルで、すなわちy個の部分シンボルで構成される。またy個の映像パケットには、4x個のブロックが含まれる。1ブロックからは上述のように、z/4個の冗長データが、すなわち4個の分割冗長データが生成される。
ここで、冗長度と最大バーストエラー訂正能力が同条件である場合の、冗長データを計算するための計算量を、図4(A)〜(C)に示される例について比較してみる。以下では、冗長度が20%、最大バーストエラー訂正能力が8パケットとなるように、冗長データを生成するものとする。
ところで、リード・ソロモン符号化における計算量は以下のようになる。
エンコード・デコード時の計算量:O(k・m・log(n))…(1)
デコード時の逆行列の計算量:O(k )…(2)
ここで、kは生成シンドロームにおける保護対象データのシンボル数であり、mは生成シンドロームにおける冗長データのシンボル数である。また、nはkとmとの和である。以後、リード・ソロモン符号化のパラメータを(n,k)で表現する。この場合n=N/D、k=K/Dとなるが、このことを具体例を挙げて以下で説明する。
まず図4(A)に示される例(D=1)では、最大バーストエラー訂正能力が8パケットであるから、1つの映像パケット群に対して、FECパケットは8パケット必要である。冗長度が20%なので、40個の映像パケットに対して8個のFECパケットが生成される。また、上述のように1ブロックについて生成された冗長シンボルのそれぞれは異なる1つのFECパケットに配置されるため、1ブロックから8個の冗長シンボルを生成することになる。また、冗長度が20%なので、1ブロックには40個のシンボルが含まれる。すなわち式(1)において、n=48、k=40、m=8である。したがって、計算量O=320×(4+log3)となる。対数logの底は2であり、以下でもlogの底は2である。
次に図4(B)に示される例(D=2)では、最大バーストエラー訂正能力が8パケットであるから、1つの映像パケット群に対して、FECパケットは8パケット必要である。冗長度が20%なので、40個の映像パケットに対して8個のFECパケットが生成される。上述のように、それぞれのFECパケットには1つの分割冗長データが配置される。すなわち、1ブロックからは8つの分割冗長データが生成される。分割冗長データは4ビット、冗長データは8ビットであるから、1ブロックから4個の冗長データを生成することになる。また、冗長度が20%なので、1ブロックには20個のシンボルが含まれる。すなわち式(1)において、n=24、k=20、m=4である。また、上述のように図4(B)に示される例では、図4(A)に示される例と比べて、40個の映像パケットに含まれるブロックの数は2倍である。式(1)は1つのブロックについての計算量であるから、このことを考慮すると、計算量O=2×80×(3+log3)となる。
最後に図4(C)に示される例(D=4)では、最大バーストエラー訂正能力が8パケットであるから、1つの映像パケット群に対して、FECパケットは8パケット必要である。冗長度が20%なので、40個の映像パケットに対して8個のFECパケットが生成される。上述のように、それぞれのFECパケットには1つの分割冗長データが配置される。すなわち、1ブロックからは8つの分割冗長データが生成される。分割冗長データは2ビット、冗長シンボルは8ビットであるから、1ブロックから2個の冗長データを生成することになる。また、冗長度が20%なので、1ブロックには10個のシンボルが含まれる。すなわち式(1)において、n=12、k=10、m=2である。また上述のように図4(B)に示される例では、図4(A)に示される例と比べて、40個の映像パケットに含まれるブロックの数は4倍である。また、式(1)は1つのブロックについての計算量であるから、このことを考慮すると、計算量O=4×20×(2+log3)となる。
図4(A)に示される例の計算量Oと、図4(B)に示される例の計算量Oとを比べると、FECパケットを算出する際の計算量は4分の1以下になっていることが分かる。デコード時の計算量も含めると、その差はさらに大きくなる。
最後に、FECパケットのヘッダ例を図5に示す。501のSNbaseには、対応する映像パケット群のうち、最も小さいパケットについてのシーケンス番号が格納される。502のmには、1シンボルを構成するビット数が格納される。503のdには、シンボルの分割数が格納される。504のfには、FECパケット群に含まれる各パケットの順番を識別するための番号が格納される。505のnには、対応する映像パケット群に含まれるシンボル数と冗長シンボル数との和が格納される。506のkには、対応する映像パケット群に含まれるシンボル数が格納される。なお、図5に示されるヘッダは一例に過ぎず、本実施例に係るFECパケットは異なるヘッダを有してもよい。
以上説明してきたように、本実施例によれば、FECパケットを算出する際に、従来より少ない計算量で、同等の冗長度及び同等のバーストエラー耐性を実現することができる。
<実施例2>
実施例1では、分割数Dはユーザによって予め設定されていた。しかしながらこの分割数Dは、さまざまな方法で決定することができる。例えば、1フレームに含まれるパケット数から分割数Dを決定することができる。また、RTTやクライアント側におけるバッファリング時間等があらかじめ分かっている、あるいはある程度予測できる場合には、それらの情報を利用して決定してもよい。もっとも、分割数Dの決定方法は特に限定されない。実施例2では、分割数Dを決定する方法の一例について、図6のフローチャートを参照して説明する。本実施例では、受信クライアント側から送信されるフィードバック情報を用いて、分割数Dが動的に変更される。
ステップS601においてサーバ100のパケット受信部(不図示)は、クライアント120からフィードバック情報を受信したかどうかを確認する。フィードバック情報は例えば、RTCPパケットとして送信されることができる。このRTCPパケットは例えば、AVP(Audio-Visual Profile)を拡張したAVPF(IETF−RFC4585)でありうる。AVPFは、AVPと比べてより迅速な統計的フィードバックを提供することができる。パケット受信部がフィードバック情報を受信していない場合、処理はステップS602に進む。パケット受信部がフィードバック情報を受信している場合、処理はステップS603に進む。
ステップS602〜ステップS608で、上述のn,k、及び分割数Dが決定される。以下の処理で、分割数Dの初期値は1であるものとする。ステップS602でサーバ100のパケット受信部は、フィードバック情報が受信されるのを待つか否かを判定する。例えばサーバ100のパケット送信部105による情報送信が行われている間、パケット受信部はフィードバック情報を待ってもよい。また、サーバ100のパケット送信部105による情報送信が終了してから所定の時間、パケット受信部はフィードバック情報を待ってもよい。パケット受信部がフィードバック情報を待つ場合、処理はステップS601に戻る。パケット受信部がフィードバック情報を待たない場合、処理は終了する。
S603においてサーバ100の制御部(不図示、制御手段)は、ステップS601で受信したフィードバック情報から、エラーレート及び最大バーストエラー長を取得する。これらは、クライアント120が受信データについてエラー解析を行うことにより得られた情報である。
S604においてサーバ100の制御部は、ステップS603で取得されエラーレートから冗長度を決定する。この冗長度は、クライアント120におけるエラー回復のために必要な最小限の値でありうる。冗長度の決定は、周知の技術に従って行うことができる。例えば、A(%)のデータに誤りが存在する場合には、制御部は、冗長度をA(%)以上にすればよい。
S605においてサーバ100の制御部は、最大バーストエラー長及び冗長度から、リード・ソロモン符号化におけるパラメータn(データシンボル数と冗長シンボル数との和)及びk(データシンボル数)を仮決定する。n及びkの決定は実施例1で説明した通りに行えばよい。例えば最大バーストエラー長がB(パケット)の場合、冗長シンボル数(n−k)をB以上にすればよい。また、冗長度がA(%)の場合、100(n−k)/kをA以上にすればよい。
S606においてサーバ100の制御部は、ステップS605又はステップS607で仮決定されたn及びkを、予め定められた閾値Nmax及びKmaxと比較する。閾値Nmax及びKmaxは、サーバ100の処理能力を示す値でありうる。すなわち、サーバ100の処理能力がより大きい場合には、閾値Nmax及びKmaxはより大きく設定されうる。もっとも、比較はnとNmaxとの間でのみ行われてもよいし、kとKmaxとの間でのみ行われてもよい。ここで、n=N/Dであり、k=k/Dである。そして、n≦Nmaxかつk≦Kmaxである場合、制御部は値(n,k,D)の組をFECパケット生成部104に送信する。その後処理はステップS601に戻り、ステップS601でサーバ100のパケット受信部は次のフィードバック情報を待つ。
ステップS606においてn>Nmaxまたはk>Kmaxである場合、処理はステップS607に進む。ステップS607でサーバ100の制御部は、部分シンボル長が所定値(又は所定値以下)であるか否かを判定する。この所定値とは部分シンボル長の最低値であり、例えば1ビットでありうる。部分シンボル長は、(シンボル長/D)である。部分シンボル長が所定値(以下)ではない場合、処理はステップS608に進む。部分シンボル長が所定値(以下)である場合、制御部は値(n,k,D)の組をFECパケット生成部104に送信する。その後処理はステップS601に戻り、ステップS601でサーバ100のパケット受信部は次のフィードバック情報を待つ。もっとも、部分シンボル長が所定値(以下)である場合、制御部は、n≦Nmaxかつk≦Kmaxである(n,k,D)の組が発見できないことを示すエラーを出力してもよい。
ステップS608でサーバ100の制御部は、分割数Dを2倍にする。この場合、実施例1で説明したように、nは半分になり、kも半分になる。その後、処理はステップS606に戻る。
本実施例の方法によれば、通信状態やクライアント120の処理能力等に応じて、適応的にシンボルの分割数を決定することができる。本実施例では、エラーレート及び最大バーストエラー長がフィードバック情報に含まれていた。しかしながらクライアント120が、求められる冗長度を計算し、フィードバック情報としてサーバ100に送信してもよい。またサーバ100は、エラーレートに基づいて冗長度を決定する代わりに、冗長データと映像データの合計が利用可能帯域幅を超えないように、冗長度を決定しても良い。
<その他の実施例>
以上、実施例を詳述したが、本発明は例えば、システム、装置、方法、プログラム若しくは記録媒体(記憶媒体)等として実現されうる。例えば、複数の機器(例えば、ホストコンピュータ、インタフェース機器、撮像装置、及びwebアプリケーション等)から構成されるシステムに本発明を適用してもよい。また、一つの機器からなる装置に本発明を適用してもよい。
図2に、上述の実施例に係る処理を実現しうるコンピュータの構成例を示す。図2においてCPU901は、コンピュータ全体の動作をコントロールする。例えばCPU901は、一次記憶902に格納されたプログラムの実行等を行う。一次記憶902は、主にRAM等のメモリであり、二次記憶903に記憶されたプログラム等を読み込んで格納する。二次記憶903は、例えばハードディスク、CD−ROM等がこれに該当する。本実施形態では、実施形態の処理手順を実現するプログラムは二次記憶903に格納し、プログラム実行時に一次記憶902に読み込んで、CPU901が実行処理を行う。
入力デバイス904とはコンピュータに情報を入力するデバイスであって、例えばマウスやキーボード等がこれに該当する。入力デバイス904を用いることにより、ユーザがコンピュータに情報を入力することが可能であってもよい。出力デバイス905とはコンピュータが情報を出力するデバイスであって、モニタ及びプリンタを含む。読込デバイス906は、外部の情報を取得するためのデバイスである。読込デバイス906は、メモリカードリーダ及びネットワークカードを含む。バス908は、上述の各部を接続し、データのやりとりを可能とする。
また本発明は、以下のようにしても実現されうる。すなわち、前述した実施例の機能を実現するソフトウェアのプログラムを、システムあるいは装置に直接あるいは遠隔から供給する。そしてそのシステムあるいは装置のコンピュータが、供給されたプログラムコードを読み出して実行すればよい。この場合のプログラムとは、コンピュータが読み取り可能なプログラムであり、以上の実施例について図示したフローチャートに対応している。
従って、本発明の処理をコンピュータで実現するために、コンピュータにインストールされるプログラムコード自体も本発明を実現する。つまり、本発明には、本発明の処理を実現するためのコンピュータプログラム自体も含まれる。この場合プログラムは、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ、等の形態をとってもよい。
プログラムを供給するための記録媒体としては、以下に示す媒体がある。例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などである。
プログラムの供給方法としては、以下に示す方法も可能である。すなわち、クライアントコンピュータのブラウザからインターネットのホームページに接続する。そして、本発明のコンピュータプログラムそのもの(又は圧縮され自動インストール機能を含むファイル)をハードディスク等の記録媒体にダウンロードしてもよい。また、本発明のプログラムを構成するプログラムコードが複数のファイルに分割されている場合に、それぞれのファイルを異なるホームページからダウンロードしてもよい。つまり、本発明の処理をコンピュータで実現するためのプログラムファイルをユーザに提供するWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化し、CD−ROM等の記憶媒体に格納してユーザに配布することもできる。この場合、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせてもよい。すなわちユーザは、この鍵情報を使用することによって暗号化されたプログラムをコンピュータにインストールすることができる。
またコンピュータが読み出したプログラムを実行することによって、前述した実施例の機能が実現される。さらにこのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ってもよい。OSの処理によっても、前述した実施例の機能が実現されうる。
さらに、記録媒体から読み出されたプログラムは、コンピュータに挿入された機能拡張ボード又はコンピュータに接続された機能拡張ユニットが備えるメモリに書き込まれてもよい。メモリに書き込まれたプログラムが実行されることによっても、前述した実施例の機能が実現されうる。すなわち、このプログラムの指示に基づき、機能拡張ボード又は機能拡張ユニットが備えるCPUなどが実際の処理の一部または全部を行ってもよい。
(他の実施形態)
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。

Claims (6)

  1. ータパケットを取得する取得手段と、
    記データパケットの誤り訂正用の冗長パケットを生成する生成手段であって、
    K個のデータパケットに対してM個の冗長パケットを生成する場合において、
    第k番目(1≦k≦K)のデータパケットを8ビット以上のサイズのシンボルに分割した場合の第i番目のシンボルをシンボルS k,i とし、当該シンボルS k,i をD等分した場合の第d番目の分割データをS k,i (d)と表し、
    第m番目(1≦m≦M)の冗長パケットを8ビット以上の前記サイズのシンボルに分割した場合の第i番目のシンボルを冗長シンボルR m,i とし、当該冗長シンボルR m,i をD等分した場合の第d番目の分割冗長データをR m,i (d)と表す場合に、
    前記分割データS 1,i (d),…,S K,i (d)のうちD個ずつを連結して、(K/D)個の連結データT 1,i (d),…,T K/D,i (d)を生成し、
    前記連結データT 1,i (d),…,T K/D,i (d)から、(M/D)個の冗長データU 1,i (d),…,U M/D,i (d)を生成し、
    前記冗長データU 1,i (d),…,U M/D,i (d)のそれぞれをD個ずつに分割して得られる分割冗長データR 1,i (d),…,R M,i (d)を組み合わせることで前記冗長パケットを生成する生成手段と、
    前記生成手段により生成された前記冗長パケットを前記データパケットと共に出力する出力手段とを有することを特徴とする情報処理装置。
  2. 前記Mの値は、前記情報処理装置がパケットを単位としてデータを送信する際の最大バーストエラー長以上であり、
    前記M/Kの値は前記情報処理装置がデータを送信する際のエラーレート以上であり、
    前記K/Dの値が前記情報処理装置の処理能力を示す所定値以下であるように、前記M、K及びDの値を決定する決定手段をさらに有することを特徴とする、請求項に記載の情報処理装置。
  3. 前記決定手段は、前記情報処理装置によるデータの送信先であるクライアントからの通知に基づいて、前記最大バーストエラー長及び前記エラーレートを取得することを特徴とする、請求項に記載の情報処理装置。
  4. 情報処理装置が行う情報処理方法であって、
    前記情報処理装置の取得手段が、データパケットを取得する取得工程と、
    記情報処理装置の生成手段が、前記データパケットの誤り訂正用の冗長パケットを生成する生成工程であって、
    K個のデータパケットに対してM個の冗長パケットを生成する場合において、
    第k番目(1≦k≦K)のデータパケットを8ビット以上のサイズのシンボルに分割した場合の第i番目のシンボルをシンボルS k,i とし、当該シンボルS k,i をD等分した場合の第d番目の分割データをS k,i (d)と表し、
    第m番目(1≦m≦M)の冗長パケットを8ビット以上の前記サイズのシンボルに分割した場合の第i番目のシンボルを冗長シンボルR m,i とし、当該冗長シンボルR m,i をD等分した場合の第d番目の分割冗長データをR m,i (d)と表す場合に、
    前記分割データS 1,i (d),…,S K,i (d)のうちD個ずつを連結して、(K/D)個の連結データT 1,i (d),…,T K/D,i (d)を生成し、
    前記連結データT 1,i (d),…,T K/D,i (d)から、(M/D)個の冗長データU 1,i (d),…,U M/D,i (d)を生成し、
    前記冗長データU 1,i (d),…,U M/D,i (d)のそれぞれをD個ずつに分割して得られる分割冗長データR 1,i (d),…,R M,i (d)を組み合わせることで前記冗長パケットを生成する生成工程と、
    前記情報処理装置の出力手段が、前記生成工程により生成された前記冗長パケットを前記データパケットと共に出力する出力工程とを有することを特徴とする情報処理方法。
  5. 前記Mの値は、前記情報処理装置がパケットを単位としてデータを送信する際の最大バーストエラー長以上であり、
    前記M/Kの値は前記情報処理装置がデータを送信する際のエラーレート以上であり、
    前記K/Dの値が前記情報処理装置の処理能力を示す所定値以下であるように、前記M、K及びDの値を決定する決定工程をさらに有することを特徴とする、請求項4に記載の情報処理方法。
  6. コンピュータを、請求項1乃至の何れか1項に記載の情報処理装置が有する各手段として機能させるための、コンピュータプログラム。
JP2011024433A 2011-02-07 2011-02-07 情報処理装置、情報処理方法、及びプログラム Expired - Fee Related JP5744554B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011024433A JP5744554B2 (ja) 2011-02-07 2011-02-07 情報処理装置、情報処理方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011024433A JP5744554B2 (ja) 2011-02-07 2011-02-07 情報処理装置、情報処理方法、及びプログラム

Publications (3)

Publication Number Publication Date
JP2012165211A JP2012165211A (ja) 2012-08-30
JP2012165211A5 JP2012165211A5 (ja) 2014-03-27
JP5744554B2 true JP5744554B2 (ja) 2015-07-08

Family

ID=46844172

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011024433A Expired - Fee Related JP5744554B2 (ja) 2011-02-07 2011-02-07 情報処理装置、情報処理方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP5744554B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0787099A (ja) * 1993-09-14 1995-03-31 Toshiba Corp Atm網における誤り制御方法
JP3614907B2 (ja) * 1994-12-28 2005-01-26 株式会社東芝 データ再送制御方法及びデータ再送制御システム
JP2007074152A (ja) * 2005-09-05 2007-03-22 Nippon Telegr & Teleph Corp <Ntt> 品質測定方法及び装置及び符号誤り訂正方法及びシステム及びプログラム
JP2007324876A (ja) * 2006-05-31 2007-12-13 Ntt Communications Kk データ送信装置、データ受信装置、データ送信方法、データ受信方法、及びプログラム
JP4356742B2 (ja) * 2006-12-25 2009-11-04 ソニー株式会社 データ通信システム、データ送信装置およびデータ送信方法

Also Published As

Publication number Publication date
JP2012165211A (ja) 2012-08-30

Similar Documents

Publication Publication Date Title
CN101272495B (zh) 用于传输基于分组的图像帧的方法和装置
US7971129B2 (en) Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems
CN110943800B (zh) 数据包的发送方法、装置及***、存储介质、电子装置
US7779336B2 (en) Assembling forward error correction frames
CN106937134B (zh) 一种数据传输的编码方法、编码发送装置及***
Tsai et al. Sub-packet forward error correction mechanism for video streaming over wireless networks
US8621320B2 (en) Per-image forward error correction
TW200849877A (en) A method to support forward error correction for real-time audio and video data over internet protocol networks
JP5724879B2 (ja) 品質制御装置、動画送信システム、品質制御方法および記録媒体
JP2005136546A (ja) 送信装置および方法、記録媒体、並びにプログラム
KR100994521B1 (ko) 정보 처리 장치 및 방법, 및 컴퓨터·프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체
JP2010246120A (ja) ホームネットワークにおいてインターネットプロトコルテレビを使用して通信するための装置及び方法
US9516390B2 (en) Scaling video delivery
US9774353B2 (en) Generating apparatus, generating method and recording medium
US10051266B2 (en) Apparatus and method for transmitting and receiving hybrid packets in a broadcasting and communication system using error correction source blocks and MPEG media transport assets
JP5344541B2 (ja) データ送信装置、送信方法及びプログラム
Hussain et al. Adaptive video-aware forward error correction code allocation for reliable video transmission
KR101259659B1 (ko) 중요도에 따라 손실 복원율을 차별화하는 비균일 랩터 코딩방법
JP6343855B2 (ja) Mac層のレベルにおいてデータ伝送のリソースを最適化する方法、及びその方法を実施する装置
JP2007324876A (ja) データ送信装置、データ受信装置、データ送信方法、データ受信方法、及びプログラム
JP5744554B2 (ja) 情報処理装置、情報処理方法、及びプログラム
Belda et al. Hybrid FLUTE/DASH video delivery over mobile wireless networks
JP5743350B2 (ja) データ送信装置、前方誤り訂正方法、及びプログラム
JP2011199647A (ja) 誤り訂正符号化装置及び方法及びプログラム及び誤り訂正復号化装置及び方法及びプログラム
Lecuire Unequal error protection under bitrate constraint for video streaming over internet

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140206

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140912

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140919

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141118

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150430

R151 Written notification of patent or utility model registration

Ref document number: 5744554

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees