(57)【要約】【課題】  再生時刻のパターンがいずれの異常パターンに該当しても、映像と音声を同期再生することができるシステム、装置、方法およびプログラムを提供する。【解決手段】  このシステムは、映像情報と音声情報とを受信し、映像と音声とを再生する情報処理システムであり、受信した映像情報と音声情報とを順に蓄積する蓄積手段と、蓄積手段に受信順に蓄積された映像情報および音声情報に含まれる映像および音声の再生時刻を示す再生時刻情報に基づき、再生時刻のパターンを認識する処理を実行する認識手段と、認識手段からのパターン認識結果に基づき、蓄積手段に蓄積された映像情報および音声情報に対し、認識されたパターンに応じて再生時刻情報を補正する処理手段とを含む。【選択図】  図８
2017224928.tif 000002
【特許請求の範囲】
【請求項１】
映像情報と音声情報とを受信し、映像と音声とを再生する情報処理システムであって、
受信した前記映像情報と前記音声情報とを順に蓄積する蓄積手段と、
前記蓄積手段に受信順に蓄積された前記映像情報および前記音声情報に含まれる映像および音声の再生時刻を示す再生時刻情報に基づき、前記再生時刻のパターンを認識する処理を実行する認識手段と、
前記認識手段からのパターン認識結果に基づき、前記蓄積手段に蓄積された前記映像情報および前記音声情報に対し、認識されたパターンに応じて前記再生時刻情報を補正する処理手段とを含む、情報処理システム。
【請求項２】
前記認識手段が前記再生時刻のパターンを認識する処理に用いる所定のパターン認識アルゴリズムに適用するパターン認識パラメータを記憶する記憶手段を含む、請求項１に記載の情報処理システム。
【請求項３】
前記認識手段は、前記パターン認識アルゴリズムとして、ニューラルネットワークを用いて前記再生時刻のパターンを認識する処理を実行する、請求項２に記載の情報処理システム。
【請求項４】
前記パターン認識アルゴリズムに適用するパターン認識パラメータの入力を受け付け、入力されたパターン認識パラメータを前記記憶手段に記憶させる管理手段をさらに含む、請求項２または３に記載の情報処理システム。
【請求項５】
前記処理手段は、前記認識手段が実行する前記再生時刻のパターンを認識する処理とは非同期に、前記再生時刻情報を補正する処理を実行する、請求項１〜４のいずれか１項に記載の情報処理システム。
【請求項６】
映像情報と音声情報とを受信し、映像と音声とを再生する情報処理装置であって、
受信した前記映像情報と前記音声情報とを順に蓄積する蓄積手段と、
前記蓄積手段に受信順に蓄積された前記映像情報および前記音声情報に含まれる映像および音声の再生時刻を示す再生時刻情報に基づき、前記再生時刻のパターンを認識する処理を実行する認識手段と、
前記認識手段からのパターン認識結果に基づき、前記蓄積手段に蓄積された前記映像情報および前記音声情報に対し、認識されたパターンに応じて前記再生時刻情報を補正する処理手段とを含む、情報処理装置。
【請求項７】
映像情報と音声情報とを受信し、映像と音声とを再生する情報処理方法であって、
受信した前記映像情報と前記音声情報とを順に蓄積手段に蓄積するステップと、
前記蓄積手段に受信順に蓄積された前記映像情報および前記音声情報に含まれる映像および音声の再生時刻を示す再生時刻情報に基づき、前記再生時刻のパターンを認識する処理を実行するステップと、
前記認識する処理におけるパターン認識結果に基づき、前記蓄積手段に蓄積された前記映像情報および前記音声情報に対し、認識されたパターンに応じて前記再生時刻情報を補正するステップとを含む、情報処理方法。
【請求項８】
請求項７に記載の情報処理方法に含まれる各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像情報と音声情報とを受信し、映像と音声とを再生する情報処理システム、情報処理装置、情報処理方法およびその処理をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
スマートフォンやタブレット端末等の通信端末と、プロジェクタやテレビ等の表示装置とを無線接続し、通信端末の画面や音声を表示装置側で再生する技術(Miracast)が知られている。このMiracastでは、映像や音声の伝送にMPEG(Moving Picture Experts Group)-2と呼ばれるデータ圧縮方式の規格が採用されており、この規格では、映像と音声がPES(Packetized Elementary Stream)パケットの形式で送信されるようになっている。
【０００３】
このPESパケットには、ヘッダに、PTS(Presentation Time Stamp)という映像や音声データの再生時刻を示す情報が含まれている。このため、PESパケットを受信した表示装置は、PTSが示す時刻になったときに映像データや音声データを再生し、これにより、映像と音声の同期再生を実現することができる。
【０００４】
このPTSは、何らの原因により、本来設定されるべき値より小さい値（異常値）が設定されることがある。すると、データを受信しても、そのPTSが、時系列的に前のデータのPTSより小さいため、過去に再生されているべきものとして、その受信したデータを再生することができない。
【０００５】
例えば、複数のストリームを切り替えて１つの放送番組を構成することを目的として、切り替え前後でPCR(Program Clock Reference)とPTSが連続するように補正する技術が提案されている（特許文献１参照）。この技術により、PTSの連続性を確保することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
受信したPESパケットを順に並べると、正常であれば、PTSのパターンが、PTSの値がほぼ等間隔で小さい順に並び、単調増加するものとなる。しかしながら、上記の異常値が設定されると、これとは異なったパターンとなる。
【０００７】
このパターンとしては、上記の切り替え時という特定のタイミングで異常値が発生するパターンを挙げることができる。これは一例であり、そのほか、RTP(Real-time Transport Protocol)という伝送プロトコルを用いてPESパケットをRTPパケットとして送信する場合のRTPパケットの再送により、PTSが逆転するパターンがある。また、RTPパケットの着順が逆転した場合や、通信端末の不具合等で通信端末がPTSを頻繁に逆転させる場合や、前のPTSとの差分（間隔）が一時的に異常となる場合等のときのパターンも、これに該当する。
【０００８】
従来の上記技術では、１つの異常パターンにしか対応することができず、映像と音声を同期再生することができない場合があるという問題があった。
【０００９】
本発明は、上記の問題に鑑みてなされたものであり、再生時刻のパターンが複数の異常パターンの何れに該当しても、映像と音声を同期再生することができるシステム、装置、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の課題を解決し、目的を達成するために、本発明は、映像情報と音声情報とを受信し、映像と音声とを再生する情報処理システムであって、受信した映像情報と音声情報とを順に蓄積する蓄積手段と、蓄積手段に受信順に蓄積された映像情報および音声情報に含まれる映像および音声の再生時刻を示す再生時刻情報に基づき、再生時刻のパターンを認識する処理を実行する認識手段と、認識手段からのパターン認識結果に基づき、蓄積手段に蓄積された映像情報および音声情報に対し、認識されたパターンに応じて再生時刻情報を補正する処理手段とを含む、情報処理システムを提供する。
【発明の効果】
【００１１】
本発明によれば、再生時刻のパターンが複数の異常パターンの何れに該当しても、映像と音声を同期再生することができる。
【図面の簡単な説明】
【００１２】
【図１】パケット構造について説明する図。
【図２】正常系のPTSパターンを示す図。
【図３】異常系のPTSパターンを示す図。
【図４】PTSの補正方法について説明する図。
【図５】本実施形態の情報処理システムの全体構成を示した図。
【図６】情報処理システムが備える情報処理装置のハードウェア構成を示した図。
【図７】情報処理システムが備える通信端末の機能構成の一例を示したブロック図。
【図８】情報処理装置の機能構成の一例を示したブロック図。
【図９】蓄積部の構造について説明する図。
【図１０】記憶部の構造について説明する図。
【図１１】RTPパケットを受信する処理の流れを示したフローチャート。
【図１２】TSパケットを構成する処理の流れを示したフローチャート。
【図１３】PESパケットを構成する処理の流れを示したフローチャート。
【図１４】パターン認識範囲、ステップ数、PTS調整について説明する図。
【図１５】パターン認識処理の初期化の流れを示したフローチャート。
【図１６】パターン認識処理の流れを示したフローチャート。
【図１７】順伝播型ニューラルネットワークの構造を説明する図。
【図１８】PTSの補正処理の一例を示したフローチャート。
【図１９】補正前処理について説明する図。
【図２０】補正方法３におけるオフセットの計算方法について説明する図。
【図２１】補正方法５におけるオフセットの計算方法について説明する図。
【図２２】PTS補正について説明する図。
【図２３】補正方法３について説明する図。
【図２４】補正方法４について説明する図。
【図２５】PTSの補正処理の別の例を示したフローチャート。
【図２６】情報処理装置の機能構成の別の例を示したブロック図。
【発明を実施するための形態】
【００１３】
本実施形態の情報処理システムは、映像情報および音声情報を映像データおよび音声データとし、そのデータを圧縮して送受信する。データを圧縮する方式としては、MPEG-1、MPEG-2、MPEG-4等があり、いずれの方式であってもよいが、以下、MPEG-2を使用するものとする。このMPEG-2では、映像データおよび音声データを複数に分解し、パケットとして送受信される。
【００１４】
情報処理システムの構成、個々の装置のハードウェア、機能構成、実行する処理を説明する前に、図１を参照して、パケットの構造について説明する。映像データおよび音声データは、パケット（PESパケット）のペイロードと呼ばれる、ヘッダ等の付加的情報を除いたデータ本体を格納する部分に格納される。  
【００１５】
PESパケットは、映像データをペイロードにもつ映像PESパケットと、音声データをペイロードにもつ音声PESパケットの２種類がある。PESパケットのヘッダには、映像データや音声データの再生時刻を示す情報であるPTSが含まれる。
【００１６】
映像データや音声データは、通常、時系列に送受信され、PTSがほぼ等間隔で大きい値になる（単調増加する）が、何らかの原因により、PTSが前のデータより小さい値になる（逆転する）場合がある。すると、映像や音声を正しく再生することができなくなる。
【００１７】
PESパケットは、このまま送信されるのではなく、固定長パケットに分割される。そして、ヘッダが付加され、TS(Transport Stream)パケットが構成される。TSは、映像と音声を多重化する方式を規定したものである。分割された固定長パケットは、TSパケットのペイロードに格納され、ヘッダには、ペイロードに含まれるデータの種類（映像や音声等）を示すパケット識別子(PID)が格納される。
【００１８】
TSパケットも、ここまま送信されるのではなく、RTPパケットのペイロードにいくつか格納され、RTPパケットにて送信される。RTPは、映像や音声等のデータをリアルタイムに配送するためのプロトコルである。RTPパケットも、ヘッダが付加され、そのヘッダには、送信されるパケットに付与される通し番号（シーケンス番号）が含まれる。このRTPパケットは、再送の仕組みを持たないが、再送されると、シーケンス番号が逆転し、PESパケットのPTSも逆転する。
【００１９】
送信側は、以上であるが、受信側では、RTPパケットを受信し、そのペイロードからTSパケットを取り出す。そして、取り出したTSパケットからPESパケットを構成する。送信側では、図１に示す上のデータから下に向けてパケットを構成したが、受信側では、その逆の、下のRTPパケットから上に向けてデータを構成する。
【００２０】
次に、PESパケットを時系列に並べた場合のPTSのパターンについて説明する。PTSは、正常時には図２に示すように、時間経過とともに単調増加する。例えば、データの伝送速度であるフレーム速度が３０fpsであれば、約３３msec間隔で増加していく。フレーム速度がその倍の６０fpsであれば、約16.6msec間隔で増加していく。
【００２１】
このようなPTSが時間経過とともに単調増加するパターン以外の場合、PTSに異常が発生したと考えられる。この異常パターンは、いくつかのパターンに分類される。１つ目は、図３（ａ）に示すような、特定のタイミングでPTSが前のパケットの値より小さい値となる場合である。特定のタイミングとしては、受信側である対向機の動画のリピート時等を挙げることができる。
【００２２】
２つ目は、図３（ｂ）に示すような、頻繁にPTSが上下する場合である。PTSの時間的な連続性が保たれていないことから、対向機の不具合である。特定の音声コーデックを指定した場合等に、このように不連続になる場合がある。これも、対向機の不具合である。
【００２３】
このようなPTSが設定される原因としては、対向機のソフトウェア、OS(Operating System)、ドライバ、ファームウェア、ボードのいずれかの不具合と考えられる。これらの部品は、メーカが多様化している現在では、部品毎にメーカが異なり、原因も対向機の種類ごとに異なるため、完全に解消するのは難しい。
【００２４】
３つ目は、図３（ｃ）に示すような、特に決まったタイミングではなく、PTSが前のパケットの値より小さい値となる場合である。このようなPTSが設定される原因としては、RTPパケットの再送が挙げられる。RTPは、再送の仕組みを持たないが、対向機の不具合により再送される場合がある。
【００２５】
４つ目は、図３（ｄ）に示すような、頻繁ではないが、PTSが上下する場合である。コンピュータネットワークでは、パケットは、それぞれ独立して経路上を伝送されるため、到着順が逆転する場合がある。RTPパケットの着順が逆転すると、図３（ｄ）に示すPTS逆転が発生する。なお、Miracastでは、パケットがピア・ツー・ピア(P2P)で伝送されるため、このような経路上でのパケット着順の逆転は発生しない。
【００２６】
５つ目は、図３（ｅ）に示すような、前のPESパケットのPTSとの間隔が広く、異常値となる場合である。具体的に言うと、３０fpsの映像パケットは、約３３msec間隔で送信され、PTSも約３３msec間隔で増加していくが、送信間隔とPTS間隔が１００msec等の大きい値になることがある。こういった異常値が発生すると、映像や音声の遅延が発生する。
【００２７】
上記の１つ目のPTS異常に対しては、図４（ａ）に示すようにオフセットを計算して、逆転以降のPTSにオフセットを加算することで、PTSを補正することができる。オフセットは、PTS異常発生時に、本来あるべきPTSと、実際のPTSの差分を計算することにより得ることができる。実際、本来あるべきPTSの正確な値は不明であるが、PTSが単調増加することから、パケット受信時までの経過時間を用いて推定し、その推定した値を採用することができる。このような補正方法を以下、補正方法３(method3)として参照する。
【００２８】
上記の２つ目のPTS異常に対しては、PTSが頻繁に上下することから、PTSを正確に補正することができない。この場合、映像と音声を同期させて再生することが困難であるため、同期処理をOFFにすることで対処する。このような補正方法を以下、補正方法２(method2)として参照する。
【００２９】
上記の３つ目のPTS異常に対しては、再送されたパケットによりPTSの逆転が生じることから、再送されたパケットを破棄することで対処する。このようなパケットの破棄という補正方法を以下、補正方法４(method4)として参照する。
【００３０】
上記の４つ目のPTS異常に対しては、パケットの到着順が逆転することでPTSの逆転が生じることから、着順が逆転したパケットを破棄することで対処する。この場合も、パケットの破棄という補正方法であるため、上記の補正方法４となる。
【００３１】
上記の５つ目のPTS異常に対しては、図４（ｂ）に示すようにPTS間隔が広がった分、遅延するため、オフセットを計算してPTSからオフセットを減算することで、PTSを補正することができる。計算したオフセットの符号を反転させ、加算することで、PTSを補正してもよい。この補正により、遅延の発生を防止することができる。ただし、PESパケットの到着自体も遅延しているので、補正後のPTSが示す時刻は、すでに経過している。これでは、補正後のPTSを含むPESパケットは再生されないことになってしまう。
【００３２】
そこで、PTSの補正と同時に、デコーダのクロックの時刻補正も行い、時刻自体をオフセット分だけ戻す。これにより、補正後のPTSを含むPESパケットを正しく再生することができる。このような補正方法を以下、補正方法５(method5)として参照する。
【００３３】
PTSが正しい場合は、補正の必要はない。しかしながら、上記の補正する場合と統一的に扱うため、PTS異常がない場合は、PTSを補正しない補正方法１(method1)と表現する。
【００３４】
図５を参照して、本実施形態の情報処理システムの全体構成について説明する。情報処理システムは、これに限られるものではないが、通信端末１０と、情報処理装置１１とを含んで構成される。通信端末１０と、情報処理装置１１とは、Wi-Fi Allianceにより策定されたMiracastを利用し、一対一の無線通信により接続される。
【００３５】
通信端末１０は、映像を表示し、音声を出力することができ、その表示している映像および出力している音声を、映像データおよび音声データとして取得（キャプチャ）する。通信端末１０は、そのキャプチャした映像および音声をエンコーダにより符号化し、それをパケット化し、RTPパケットとして情報処理装置１１に送信する。
【００３６】
通信端末１０は、映像を表示し、音声を出力し、それらをキャプチャし、符号化してパケットとして送信することができる装置であれば、いかなる装置であってもよい。通信端末１０としては、スマートフォン、タブレット端末、PC、PDA(Personal Digital Assistant)等を挙げることができる。
【００３７】
情報処理装置１１は、通信端末１０から受信したRTPパケットをキュー(RTPパケットキュー)に蓄積し、そのキューの先頭のRTPパケットから順に、図１に示したTSパケットを取り出し、TSパケットキューに蓄積する。情報処理装置１１は、TSパケットキューの先頭のTSパケットから順にPESパケットを構成し、PESパケットキューに蓄積する。
【００３８】
情報処理装置１１は、PESパケットのPTSを調べ、図３に示したようなPTSが異常値を示す場合、PTSを補正する。異常値を示さないPESパケットについては補正しない。そして、情報処理装置１１は、PESパケットキューの先頭のPESパケットから順にデコーダに渡し、PESパケットのペイロードに含まれる符号化された映像データおよび音声データを復号する。デコーダは、PTSを参照し、適切なタイミングで復号された映像データおよび音声データを出力し、映像および音声を再生する。このように適切なタイミングで映像データおよび音声データを出力し、再生するので、映像と音声の再生の同期を実現することができる。
【００３９】
情報処理装置１１は、これらの機能を有する装置であれば、いかなる装置であってもよく、例えば、PC、電子黒板、プロジェクタ、テレビ等を挙げることができる。
【００４０】
図６を参照して、情報処理装置１１のハードウェア構成について説明する。通信端末１０のハードウェア構成は、情報処理装置１１と同様のものとすることができるので、ここではその説明を省略する。情報処理装置１１としては、上記の装置のいずれでも用いることが可能であるが、ここではPCとして、そのハードウェア構成を説明する。
【００４１】
情報処理装置１１は、ハードウェアとして、CPU２０、ROM２１、RAM２２、HDD２３、通信I/F２４、入出力I/F２５、入力装置２６、表示装置２７、音声出力装置２８を備えている。CPU２０、ROM２１、RAM２２、HDD２３、通信I/F２４、入出力I/F２５は、バス２９に接続され、バス２９を介して互いに情報をやりとりする。
【００４２】
CPU２０は、ROM２１やHDD２３に記憶されたプログラムを読み出し、実行する。プログラムとしては、OS、ブートプログラム、ファームウェア、デコーダを含むことができる。また、プログラムとしては、上記の通信端末１０からのRTPパケットの受信、TSパケットの取り出し、PESパケットの構成、PTSが異常値であるかの判定、PTSの補正等を行うプログラムを含むことができる。
【００４３】
RAM２２は、CPU２０がプログラムを実行するための作業空間を与える。HDD２３は、上記のプログラムを記憶するほか、後述する各種のパラメータ等を記憶し、管理する。ここではHDD２３を使用する例を示しているが、これに限られるものではなく、SSD(Solid State Drive)等の記憶装置を用いてもよい。通信I/F２４は、無線通信により通信端末１０との通信を可能にし、その通信を制御する。
【００４４】
入出力I/F２５は、入力装置２６、表示装置２７、音声出力装置２８を接続し、入力装置２６からの情報の入力、表示装置２７への映像データの出力、音声出力装置２８への音声データの出力を制御する。入力装置２６は、キーボードやマウス等の情報の入力を受け付ける装置で、表示装置２７は、CRT(Cathode Ray Tube)、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ等の映像データを表示する装置である。音声出力装置２８は、スピーカ等の音声データを出力する装置である。
【００４５】
この例では、情報処理装置１１が表示装置２７や音声出力装置２８を備えているが、これらは別個の機器として構成されていてもよい。この場合、無線通信やケーブル等により接続し、情報処理装置１１が映像データや音声データを送信し、それらの機器に映像を表示させ、音声を出力させることができる。
【００４６】
図７を参照して、通信端末１０の機能構成について説明する。通信端末１０も、情報処理装置１１と同様、CPU、ROM、RAM、HDDあるいはSSD等を備える。このため、HDD等に記憶したプログラムをCPUが実行することにより、各機能部を生成し、各機能部により各種の機能を実現することができる。
【００４７】
通信端末１０は、機能部として、映像や音声を、映像データおよび音声データとして取得する取得部３０と、取得された映像データ等を符号化する符号化部３１と、符号化された映像データ等をパケット化し、RTPパケットとして情報処理装置１１に送信する通信部３２とを備える。
【００４８】
取得部３０は、上述した映像、音声をキャプチャして、映像データおよび音声データを取得する。符号化部３１は、映像データおよび音声データを、所定のアルゴリズムを適用して符号化する。符号化は、コーデックと呼ばれるソフトウェアを使用し、データを圧縮する処理である。通信部３２は、符号化されたデータをパケット化してRTPパケットとし、そのRTPパケットを情報処理装置１１に送信する。
【００４９】
次に、図８を参照して、情報処理装置１１の機能構成について説明する。情報処理装置１１も、通信端末１０と同様、HDD２３等に記憶したプログラムをCPU２０が実行することにより、各機能部を生成し、各機能部により各種の機能を実現することができる。
【００５０】
情報処理装置１１は、機能部として、通信部４０、処理部４１、蓄積部４２、認識部４３、記憶部４４、復号部４５、再生部４６を備える。
【００５１】
通信部４０は、通信端末１０からRTPパケットを受信する。処理部４１は、通信部４０が受信したRTPパケットを蓄積部４２に順に蓄積させる。蓄積部４２は、上述したRTPパケットキュー、TSパケットキュー、PESパケットキューとして機能する。処理部４１は、蓄積部４２に順に蓄積されたRTPパケットを順に取り出し、TSパケットを構成して順に蓄積させる。また、処理部４１は、蓄積部４２に蓄積されたTSパケットを順に取り出し、PESパケットを構成する。処理部４１は、PESパケットを構成する過程で、記憶部４４にそのPESパケットのパケット情報を保存する。パケット情報は、PESパケットのPTSを含む。構成したPESパケットは、蓄積部４２に順に蓄積される。
【００５２】
認識部４３は、記憶部４４に保存されたパケット情報を参照し、PTSのパターンを認識する処理を実行し、そのパターン認識結果を記憶部４４に保存する。ここでは、処理部４１が記憶部４４にパケット情報を保存し、認識部４３が記憶部４４に記憶されたパケット情報を参照するようにしているが、これに限られるものではない。認識部４３が蓄積部４２に蓄積されたPESパケットを参照し、PTSのパターンを認識する処理を実行してもよい。
【００５３】
処理部４１は、認識部４３が記憶部４４に保存したパターン認識結果を参照し、PTSのパターンが、図３に示すような異常値をもつ異常パターンに該当するか否かを判断する。処理部４１は、異常パターンであると判断した場合、パターンに応じて異常値を示すPTSを補正する。
【００５４】
処理部４１は、蓄積部４２に蓄積されたPESパケットを順に取り出し、復号部４５に出力する。復号部４５は、PESパケットのペイロードに格納された符号化された映像データおよび音声データを復号する。そして、復号部４５は、復号した映像データおよび音声データを、PTSを参照して適切なタイミングで再生部４６に出力する。再生部４６は、復号された映像データを表示装置２７に出力して表示させ、復号された音声データを音声出力装置２８に出力して音声を出力させる。映像データおよび音声データは、このようにして出力タイミングが制御されているため、映像と音声の再生の同期を実現することができる。
【００５５】
図９を参照して、蓄積部４２の構造について説明する。蓄積部４２は、３つのキューを備える。すなわち、PESパケットを入れるPESパケットキュー５０と、TSパケットを入れるTSパケットキュー５１と、RTPパケットを入れるRTPパケットキュー５２である。
【００５６】
通信部４０は、RTPパケットを受信すると、処理部４１に渡し、処理部４１が、蓄積部４２のRTPパケットキュー５２に順に入れる。処理部４１は、RTPパケットキュー５２の先頭から順にRTPパケットを取り出し、RTPパケットからTSパケットを構成し、TSパケットキュー５１に順に入れる。TSパケットを構成したRTPパケットは破棄される。
【００５７】
処理部４１は、TSパケットキュー５１の先頭からTSパケットを順に取り出し、PESパケットを構成し、PESパケットキュー５０に入れる。このPESパケットの構成に使用されたTSパケットは削除される。PESパケットキュー５０に入れられたPESパケットは、PESパケットキュー５０の先頭から順に復号部４５に出力される。
【００５８】
処理部４１は、PESパケットを構成している間、パケット情報を記憶部４４に保存し、認識部４３がPTSのパターンを認識する処理を実行する。パケット情報は、PESパケットのヘッダ情報と、PESパケットの構成に使用されたパケットのヘッダ情報等で、PTSを含む。
【００５９】
図９では、蓄積部４２が、１つのPESパケットキュー５０と、１つのTSパケットキュー５１と、１つのRTPパケットキュー５２とを備える例を示したが、これらのキューは、映像と音声のそれぞれにつき用意される。
【００６０】
図１０を参照して、記憶部４４に記憶されるパラメータ等について説明する。記憶部４４は、パラメータとして、映像・音声通信パラメータ６０と、PTSパターン認識パラメータ（ウェイト）６１と、PTSパターン認識パラメータ（バイアス）６２と、パケット情報６３とを記憶する。また、記憶部４４は、PTSパターン認識結果６４と、PTS補正パラメータ６５とをさらに記憶する。
【００６１】
映像・音声通信パラメータ６０は、映像を表示させるにあたって、単位時間に処理させるフレーム（静止画像）の数であるフレームレート等の情報である。この情報は、事前に決められていてもよいし、映像データおよび音声データの送信を開始するときに、送信側と受信側のネゴシエーションによって決定されてもよい。ネゴシエーションは、送信側である通信端末１０と、受信側である情報処理装置１１との間で情報を相互に交換する作業である。
【００６２】
PTSパターン認識パラメータは、パターン認識において使用される初期化パラメータである。これは、採用されるパターン認識アルゴリズムによって異なり、事前に与えられる。
【００６３】
ここでは、PTSパターン認識パラメータとして、重み（ウェイト）とバイアスが値として指定されている。これらの値は、後述するPTSパターン認識アルゴリズムの１つである順伝播型ニューラルネットワークに用いられる。順伝播型ニューラルネットワークは、ネットワークにループする結合を持たず、入力ノードから中間ノードを介して出力ノードへ単一方向へのみ信号が伝播するネットワークである。
【００６４】
パケット情報６３は、処理部４１により保存されるパケットに関わる情報である。パケット情報６３の各行は、PESパケットに係る情報で、ヘッダ情報と、PESパケットの構成に使用したパケットのヘッダ情報等から構成される。図１０に示す例では、PESパケットのヘッダ情報として、データの種類を表すID(stream_id)と、PTSが記憶され、PESパケットを構成するために用いたRTPパケットのシーケンス番号(RTP_sequence_number)とが記憶されている。また、RTPパケットを伝送したフレーム(Ethernetフレーム等)の受信開始からの通し番号(frame_number)と経過時刻(time)も記憶されている。ちなみに、Noは、テーブル上でデータを一意に識別するためのIDである。
【００６５】
RTPシーケンス番号は、PESパケットを構成するために２以上のRTPパケットを使用する可能性があるため、２以上の値からなる可能性がある。ここでは、パケット情報６３が、記憶部４４に記憶され、PTSパターン認識の入力情報として使用されているが、これに限られるものではない。このように記憶部４４にテーブルとして記憶するのではなく、認識部４３が、蓄積部４２から直接パケット情報を取得するように構成されていてもよい。
【００６６】
PTSパターン認識結果６４は、認識部４３がPTSのパターンを認識する処理を実行した結果であり、記憶部４４に記憶される。PTSパターン認識結果６４の各行は、パケット情報６３のどこからどこまでのパケットがパターン認識の対象になったかを示す情報を記憶する。start_frame_numberが、開始パケットのシーケンス番号を示し、end_frame_numberが、終了パケットのシーケンス番号を示す。methodは、認識されたパターンが採用すべきPTS補正方法を示す。
【００６７】
PTS補正パラメータ６５は、PTSを補正する際に使用するパラメータである。PTS補正パラメータ６５のoffset値は、後述する補正方法３(method=3)および補正方法５(method=5)で使用するパラメータである。PTSの補正は、PTS値にこのoffset値を加算することにより行うことができる。
【００６８】
図１１を参照して、情報処理装置１１がRTPパケットを受信する処理について説明する。ステップ１１００から処理を開始し、ステップ１１０５で、通信部４０が、通信端末１０からRTPパケットを受信する。通信部４０は、受信したRTPパケットを処理部４１に渡す。
【００６９】
ステップ１１１０で、処理部４１は、RTPパケットを受け取り、蓄積部４２のRTPパケットキュー５２にそのRTPパケットを入れる。そして、ステップ１１１５で、処理部４１は、RTPパケット受信イベントを発生させ、ステップ１１２０で、この処理を終了する。このイベントは、RTPパケットをRTPパケットキュー５２に入れたことを通知するイベントである。
【００７０】
図１２を参照して、情報処理装置１１がTSパケットを構成する処理について説明する。ステップ１２００から処理を開始し、ステップ１２０５で、処理部４１が、RTPパケット受信イベントを検知する。ステップ１２１０で、処理部４１は、パケットの処理を進める。具体的には、処理部４１は、RTPパケットキュー５２からRTPパケットを取り出し、取得する。そして、ステップ１２１５で、処理部４１は、RTPパケットのペイロードのデータからTSパケットを構成する。
【００７１】
ステップ１２２０では、処理部４１は、構成したTSパケットを、蓄積部４２のTSパケットキュー５１に入れる。そして、処理部４１は、TSパケットを構成するのに使用したRTPパケットを、RTPパケットキュー５２から破棄する。ステップ１２２５では、処理部４１は、TSパケット構成イベントを発生させ、ステップ１２３０で、この処理を終了する。このイベントは、TSパケットをTSパケットキュー５１に入れたことを通知するイベントである。
【００７２】
図１３を参照して、情報処理装置１１がPESパケットを構成する処理について説明する。ステップ１３００から処理を開始し、ステップ１３０５で、処理部４１が、TSパケット構成イベントを検知する。ステップ１３１０で、処理部４１が、TSパケットキュー５１にTSパケットがPESパケットを構成できる程度に集まっているかを判断する。集まっている場合、ステップ１３１５へ進み、集まっていない場合、ステップ１３４０へ進み、この処理を終了する。
【００７３】
ステップ１３１５では、処理部４１が、TSパケットキュー５１からTSパケットを取り出し、取得する。そして、ステップ１３２０で、処理部４１が、TSパケットからPESパケットを構成する。ステップ１３２５では、処理部４１は、構成したPESパケットを、蓄積部４２のPESパケットキュー５０に入れる。
【００７４】
ステップ１３３０で、処理部４１は、記憶部４４に記憶されたパケット情報を、PESパケットキュー５０に入れたPESパケットのパケット情報に更新する。そして、処理部４１は、構成に使用したTSパケットを、TSパケットキュー５１から破棄する。ステップ１３３５で、処理部４１は、パケット情報更新イベントを発生させ、ステップ１３４０でこの処理を終了する。このイベントは、パケット情報を更新したことを通知するイベントである。
【００７５】
処理部４１は、PESパケットキュー５０からPESパケットを取り出し、復号部４５に出力するが、その前に、認識部４３が、PTSのパターンを認識する処理を実行する。また、処理部４１は、認識部４３が実行したパターン認識処理の結果に基づき、認識されたパターンに応じてPTSを補正する。
【００７６】
PTSのパターンを認識する処理では、ある範囲のPESパケットのPTSをパターン認識の対象とする。その範囲は、PTSパターン認識範囲として参照されるが、大きいほどパターン認識結果が良好となる。多くのPTSを使用してパターン認識を実行することができるからである。しかしながら、この場合、PESパケットを多く蓄積（バッファリング）しなければならない。多くバッファリングすると、映像・音声の再生遅延の原因となる。
【００７７】
そこで、PTSパターン認識範囲は、適切な範囲に設定されていなければならない。このPTSパターン認識範囲について、図１４を参照して説明する。例えば、３０fpsのフレームレートの映像の場合、１秒バッファリングするのに、３０のPESパケットをバッファリングする必要がある。バッファリングによる遅延を防止するには、第１の方法として、バッファリングするPESパケット数を減らす方法が挙げられる。また、第２の方法として、バッファリングを行わず、パケット情報のみ記憶しておき、復号部４５にPESパケットを出力して再生を継続し、認識結果が出たところで途中からPTSの補正を開始する方法を挙げることができる。ここでは、第１の方法について説明し、第２の方法については後述する。
【００７８】
図１４には、PTSが０から７までのPESパケットが７つ並んでいるのが示されている。PTSパターン認識範囲は、３つのPESパケットを含む破線で示される範囲とされている。その範囲の認識処理が終了したところで、図１４に示すように、時間的後方にずらし、新たな認識範囲について認識処理を実行する。このずらす長さを、ステップ数として指定する。なお、ステップ数は、１以上、PTSパターン認識範囲以下の数値である。この例では、PTSパターン認識範囲が、破線で囲まれる、３つのPESパケットを含む範囲であるため、ステップ数は、１以上、３以下の数値となる。図１４に示す例では、ステップ数が２とされている。
【００７９】
ステップ数は少ないと、パターン認識処理を実行する回数が増加する。これに対し、ステップ数が多く、例えばPTSパターン認識範囲と同じである場合、直前のPTSパターン認識範囲との境界値付近で大きな変化が発生したときに、パターン認識できない可能性がある。そこで、ステップ数は、PTSパターン認識範囲より若干少ない程度の大きさが望ましい。
【００８０】
なお、ステップ数がPTSパターン認識範囲より小さい場合、図１４に示すように、ずらす前と後のPTSパターン認識範囲で重複する部分が生じる。この場合、ずらす前のPTSパターン認識範囲のパターン認識結果と、ずらした後のPTSパターン認識範囲のパターン認識結果とが異なるとき、重複する範囲についてどちらの結果を採用すればよいかという問題が生じる。いずれの結果を用いてもよいが、ここでは、ずらす前のパターン認識結果を採用するものとする。
【００８１】
認識部４３は、PTSパターン認識範囲のPTSをパターン認識処理の入力として使用するが、同じPTSパターン認識パラメータで認識するためには、PTS値が一定範囲内になければならない。具体的には、PTSパターン認識パラメータが０から２の範囲である場合、PTSは、図１４に示すように単調増加するため、そのままの値を入力すると、認識部４３が想定する値域（０〜２）を超えてしまう。
【００８２】
そこで、認識部４３は、PTSを入力として使用する前に、PTSパターン認識範囲の最初（先頭）の値が０になるように、図１４のかっこ内に示すような前処理を実行する。
【００８３】
認識部４３がPTSのパターンを認識する処理を実行するにあたって、認識部４３は初期化処理（前処理）を実行する。図１５を参照して、この初期化処理について説明する。ステップ１５００から初期化処理を開始し、ステップ１５０５では、映像・音声通信パラメータ６０を記憶部４４から取得する。入力データ(PTS)の調整に使用するためである。
【００８４】
例えば、フレームレートが３０fpsの場合と、６０fpsの場合とでは、データ量が異なり、６０fpsの場合の方が多い。６０fpsの場合を、３０fpsの場合と同じ時間で認識処理を実行しようとすると、同じデータ量に調整する必要がある。前処理により、このように同じデータ量に調整するために、映像・音声通信パラメータ６０を取得する。
【００８５】
ステップ１５１０では、PTSパターン認識パラメータ６１、６２を記憶部４４から取得する。PTSパターン認識パラメータ６１、６２を使用することで、この認識処理を初期化することができる。パターン認識処理には、様々な手法が提案されており、採用する手法によって初期化の手法が異なる。例えば、パターン認識アルゴリズムとして、順伝播型ニューラルネットワーク(feedforward neural network)を用いる場合、図１０に示すPTSパターン認識パラメータ６１、６２がニューラルネットワークの初期化パラメータとして与えられる。すなわち、重みとバイアスの値である。
【００８６】
ステップ１５１５では、取得したPTSパターン認識パラメータ６１、６２を使用し、初期化処理を行う。初期化処理では、例えば順伝播型ニューラルネットワークで使用する関数において、PTSパターン認識パラメータ６１、６２を係数として設定する処理等を行う。この処理が終了したところで、ステップ１５２０において初期化処理を終了する。
【００８７】
図１６を参照して、PTSパターン認識処理について説明する。ステップ１６００から処理を開始し、ステップ１６０５では、認識部４３が、処理部４１が発生させたパケット情報更新通知イベントを検知する。
【００８８】
ステップ１６１０では、認識部４３が、PTSパターン認識範囲内にパケット情報が全てあるかを確認する。PTSパターン認識範囲が、３つのPESパケットを含む範囲である場合、それら３つのPESパケットのパケット情報があるかを確認する。２つのPESパケットしかPESパケットキュー５０に入っていない場合、PESパケットが１つ不足するので、そのパケット情報が集まっていないことになる。全てある場合は、ステップ１６１５へ進み、不足する場合は、ステップ１６４５へ進み、この処理を終了する。
【００８９】
ステップ１６１５では、認識部４３は、記憶部４４からパケット情報を取得する。そして、ステップ１６２０で、認識部４３は、パケット情報の前処理を実施する。前処理は、図１５を参照して説明したPTSパターン認識範囲内の最初のPTSが０になるように、PTSを調整する処理である。
【００９０】
ステップ１６２５では、認識部４３は、所定のアルゴリズムを使用してPTSパターンを認識する処理を実行する。パターン認識には、様々な手法が提案されており、例えば、順伝播型ニューラルネットワーク、サポートベクタマシン等を挙げることができる。順伝播型ニューラルネットワークは、多層パーセプトロンとも呼ばれ、その詳細については後述する。
【００９１】
サポートベクタマシン(SVM)は、教師あり学習を用いたパターン認識モデルの１つである。SVMは、多数の学習データを用い、２つのクラスに分類する際のその境界近傍に位置する点を基準とし、その距離が最大となる位置に識別境界を設定し、２つのクラスを識別する識別器を構成する。複数のSVMを組み合わせて用いることで、多くのクラスの識別器を構成することができる。SVMは、良く知られたパターン認識モデルであるため、その詳細については説明を省略する。
【００９２】
ステップ１６３０では、認識部４３が、実行した処理の結果を、パターン認識結果として記憶部４４に保存する。ステップ１６３５では、PTSパターン認識範囲をステップ数分ずらし、その範囲を更新する。そして、ステップ１６４０で、PTSパターン認識完了通知を処理部４１に通知する。処理部４１に通知したところで、ステップ１６４５へ進み、この処理を終了する。
【００９３】
このPTSパターン認識処理は、映像と音声のそれぞれにつき実施する。なお、PTSパターン認識処理は、映像と音声で同時にパターン認識するように構成されていてもよいし、同時でなくてもよい。
【００９４】
図１７を参照して、順伝播型ニューラルネットワークについて説明する。図１７は、順伝播型ニューラルネットワークの構造を例示した図である。例えば、１秒分のPESパケットを用い、PTSのパターンを認識する処理を例に挙げる。フレームレートが３０fpsの映像の場合、３０のPESパケットのPTSからパターンを認識する処理を実行する。
【００９５】
順伝播型ニューラルネットワークは、入力層７０と、中間層（隠れ層）７１、７２と、出力層７３から構成される。このニューラルネットワークは、入力層７０を層数にカウントしないことから、３つの層から構成される。各層は、入力された値を処理するユニットを複数備えている。図１７に示す例では、入力層７０は６０のユニット、中間層７１は６０のユニット、中間層７２も６０のユニット、出力層７３は５つのユニットを備えている。
【００９６】
入力層７０の複数のユニットは、３０のPESパケットのPTSを入力値として受け取り、中間層７１の複数のユニットへ出力値を渡す。入力層７０の複数のユニットから出力された値xは、ユニット毎の重みwを掛け合わせて合計され、バイアスbが加算される。この値を合計値uとすると、このuは、次の式１のように表すことができる。
【００９７】
【数１】
2017224928.tif 000003
【００９８】
これは、中間層７１から中間層７２へ出力値を渡す場合も、中間層７２から出力層７３へ出力値を渡す場合も同様である。図１７では、重みwをw(l)j,iと表記している。w(l)j,i中、lは層を表し、iは前の層のindex、jは後の層のindexを示す。また、図１７では、バイアスbをb(l)jと表記している。これらの重みとバイアスの値は、学習済みの値が与えられるものとする。
【００９９】
合計値uは、活性化関数fにより変換され、変換後の値zが、次の層の各ユニットへの入力値となる。値zは、次の式２で表される。
【０１００】
【数２】
2017224928.tif 000004
【０１０１】
活性化関数fとしては、正規化線形関数やソフトマックス関数を用いることができる。中間層７１、７２のユニットにおける活性化関数には、単純で、最終的に良好な結果を得ることができる正規化線形関数を用いることができる。正規化線形関数f(u)は、次の式３で表される。
【０１０２】
【数３】
2017224928.tif 000005
【０１０３】
出力層７３の活性化関数には、一般的に中間層７１、７２で使用する活性化関数とは違うものを用い、この例では、多クラスに分類することから、ソフトマックス関数を用いることができる。ソフトマックス関数f(u)は、次の式４で表される。式４中、Kは、出力層７３のユニットの全数で、kは、出力層７３において何番目のユニットであるかを示す数である。
【０１０４】
【数４】
2017224928.tif 000006
【０１０５】
ニューラルネットワークでは、出力の目標値（正解値）と、実際の出力値との間の関係を、誤差関数で表す。機械学習によりこの誤差関数を最小化する。誤差関数としては、次の式５で表される交差エントロピー関数Eを用いることができる。式５中、Wは、全ての重みとバイアスをまとめた行列、Nは、全データの数、dは、出力の目標値である。yは、当該ニューラルネットワークの出力値（図１７に示す例では、第４層のzの値）である。
【０１０６】
【数５】
2017224928.tif 000007
【０１０７】
図１７に示す例では、入力層７０に、PTSパターン認識範囲のPTSを入力し、出力層７３で各PTSパターンに対応する補正方法のいずれかが出力されるものとする。ここでは、補正方法は、５種類の方法とし、各方法については後述する。入力層７０には、PTSとPESパケットの受信時刻の組が３０セット分入力されるものとする。
【０１０８】
例えば、入力層７０に[x1,x2,x3,…,x60]=[(t1,pts1),(t2,pts2),(t3,pts3),…,(t30,pts30)]=[(0,0),(1,1),(2,2),…,(29,29)]=[0,0,1,1,2,2,…,29,29]とPTSの正常値を入力する。すると、この場合は補正の必要がないため、出力層７３からは、補正なし（補正方法１：method1）が出力される。すなわち、出力層７３からは、[z1,z2,z3,z4,z5]=[1,0,0,0,0]に近い値が出力される。
【０１０９】
また、入力層７０に[x1,x2,x3,…,x60]=[(0,0),(1,1),(2,2),(3,3),(4,0),(5,1),(6,2),(7,3),…,(29,35)]=[0,0,1,1,2,2,3,3,4,0,5,1,6,2,7,3,…,29,25]とPTSの異常値を入力すると、PTSが逆転しており、補正が必要であるため(補正方法３：method3)、出力層７３において[z1,z2,z3,z4,z5]=[0,0,1,0,0]に近い値が出力される。
【０１１０】
このようにして、順伝播型ニューラルネットワークを使用してPTSのパターンを認識し、その認識結果に基づき、補正方法１〜５のうちの何れの補正方法を採用するかを決定することができる。
【０１１１】
図１８を参照して、PTSを補正する処理について説明する。ステップ１８００からこの処理を開始し、ステップ１８０５で、処理部４１が、パターン認識完了イベントを検知する。そして、ステップ１８１０で、処理部４１が、認識部４３が保存したパターン認識結果を記憶部４４から取得する。ステップ１８１５では、処理部４１は、蓄積部４２に蓄積されたPTSパターン認識範囲内のPESパケットを取得する。
【０１１２】
ステップ１８２０では、処理部４１は、PTSの補正前処理を行い、ステップ１８２５で、処理部４１は、各PESパケットにつき、PTSを補正する。ステップ１８３０では、処理部４１は、補正したPTSを含むPESパケットを復号部４５、すなわちデコーダに出力する。そして、処理部４１は、出力したPESパケットを蓄積部４２から削除する。
【０１１３】
これらの一連の処理が完了すると、ステップ１８３５へ進み、認識部４３が使用したパケット情報を記憶部４４から削除してパケット情報を更新し、ステップ１８４０で、この処理を終了する。このPTSを補正する処理は、映像と音声のそれぞれに対して実施する。この処理では、映像と音声で同時に補正してもよいし、同時でなくてもよい。
【０１１４】
図１７に示すステップ１８２０の補正前処理について、図１９を参照して説明する。この補正前処理は、各PESパケットにつきPTSを補正する際に必要となるPTS補正パラメータを計算する処理である。ステップ１９００からこの処理を開始し、ステップ１９０５では、認識部４３からのパラメータ認識結果が補正方法２であり、かつデコーダの設定が同期OFFであるかを判断する。補正方法２で、かつ同期OFFである場合、ステップ１９１０へ進み、補正方法２以外である場合、あるいは補正方法２であっても、同期OFFでない場合は、ステップ１９１５へ進む。
【０１１５】
ステップ１９１０では、デコーダの設定を同期ONにし、ステップ１９１５へ進む。ステップ１９１５では、補正方法が補正方法１または補正方法４であるかを判断する。補正方法１または補正方法４である場合、ステップ１９６０へ進み、この処理を終了する。補正方法１は、補正を行わない方法であり、補正方法４は、パケットを破棄する処理であるため、事前処理は不要だからである。
【０１１６】
ステップ１９２０では、補正方法が補正方法２であるかを判断する。補正方法２である場合、ステップ１９２５へ進み、デコーダの設定を同期OFFにする。補正方法２は、同期OFFにして対処する方法だからである。補正方法２ではない場合、ステップ１９３０へ進み、補正方法が補正方法３であるかを判断する。補正方法３である場合、ステップ１９３５へ進み、オフセットを計算する。補正方法３は、PTSにオフセットを加算して補正する方法だからである。そして、ステップ１９４０で、計算したオフセットを保存する。
【０１１７】
ステップ１９４５では、補正方法が補正方法５であるため、オフセットを計算する。補正方法５は、PTSにオフセットを減算して補正する方法だからである。ステップ１９５０では、計算したオフセットを保存する。補正方法５では、さらにデコーダのクロックの時刻補正が必要であるため、ステップ１９５５で、この時刻補正を行う。これにより、PTSが過去の時刻を示さないようにすることができる。そして、ステップ１９６０で、補正前処理を終了する。
【０１１８】
図１９に示すステップ１９３５のオフセットの計算処理を、図２０を参照して詳細に説明する。補正方法３は、PTS異常が発生したとき、本来あるべきPTSに補正する方法である。このため、本来あるべきPTSと、実際のPTSの値（異常値）との差分をオフセットとして算出し、それ以降のPTSにこのオフセットを加算することで、本来あるべきPTSに補正することができる。
【０１１９】
ステップ２０００から処理を開始し、ステップ２００５では、PTSパターン認識範囲のPTSの１つを取り出す。ステップ２０１０では、本来あるべきPTSをPTS予測値として計算する。PTSは、経過時間に沿って単調増加するものであるから、異常が発生するまでのPTSの値から予測することにより、PTS予測値を求めることができる。
【０１２０】
ステップ２０１５では、PTS予測値と取り出したPTSとの差分が閾値以上であるかを判断する。閾値以上である場合、PTSに異常が発生しているとして、ステップ２０２０へ進み、オフセットを計算する。オフセットは、PTS予測値と取り出したPTSとの差分から求めることができる。ステップ２０１５で、閾値未満の場合、PTSに異常が発生していないため、また、ステップ２０２０で、オフセットを計算した後、ステップ２０２５へ進み、PTSパターン認識範囲の全てのPTSにつき、上記の閾値以上かどうかを判断したかを確認する。まだ、判断していないPTSがある場合は、ステップ２００５へ戻り、ない場合は、ステップ２０３０へ進み、この処理を終了する。
【０１２１】
図１９に示すステップ１９４５のオフセットの計算処理を、図２１を参照して詳細に説明する。補正方法５は、PTS異常が発生したとき、本来あるべきPTSに補正する方法であるが、オフセットを算出した後、それ以降のPTSにこのオフセットを減算することで、本来あるべきPTSに補正するものである。
【０１２２】
具体的に説明すると、３０fpsの映像パケットは、約３３msec毎に送信され、PTSも約３３msecずつ増加していく。しかしながら、何らの原因により、映像パケットが、例えば１００msec毎に送信され、PTSが１００msecずつ増加することがある。このような異常は、数パケット分のPTSで発生するため、最後に前のPTSとの差分が異常であったPTSと、そのPTSの本来あるべきPTSの値との差分をオフセットとして計算する。そして、それ以降のPTSにこのオフセット分を減算することで、本来あるべきPTSになるように補正することができる。
【０１２３】
ステップ２１００から処理を開始し、ステップ２１０５では、フレームレートの情報を取得するため、映像・音声通信パラメータを取得する。ステップ２１１０では、PTSパターン認識範囲のPTSの１つを取り出す。ステップ２１１５では、取得した映像・音声通信パラメータを使用し、本来あるべきPTSをPTS予測値として計算する。例えば３０fpsの映像パケットであれば、前のPTSに約３３msecを加算していけば、PTS予測値を得ることができる。
【０１２４】
ステップ２１２０では、PTS予測値と取り出したPTSとの差分が閾値以上であるかを判断する。閾値以上である場合、PTSに異常が発生しているとして、ステップ２１２５へ進み、異常値indexリストに調整されたPTSを追加する。このようにして、前のパケットのPTSとの差分が異常なパケットを探索する。
【０１２５】
ステップ２１３０では、PTSパターン認識範囲の全てのPTSにつき、上記の閾値以上かどうかを判断したかを確認する。まだ、判断していないPTSがある場合は、ステップ２１１０へ戻り、ない場合は、ステップ２１３５へ進む。ステップ２１３５では、最後に異常が記録されたパケットのPTSの値と、PTS予測値との差分を計算し、計算した差分の符号を反転させ、それをオフセットとする。すなわち、オフセット＝最後の異常PTSのPTS予測値−最後の異常PTSの値である。このようにして、オフセットを計算したところで、ステップ２１４０へ進み、この処理を終了する。
【０１２６】
図１８に示すステップ１８２５のPTSの補正処理を、図２２を参照して詳細に説明する。ステップ２２００から処理を開始し、ステップ２２０５では、認識部４３からのパターン認識結果において、補正方法が補正方法１または補正方法２かどうかを判断する。補正方法１は、補正なしであり、補正方法２は、同期OFFで対処するため、補正処理を実施しない。このため、ステップ２２３５へ直接進み、この処理を終了する。
【０１２７】
ステップ２２０５で補正方法１または補正方法２以外と判断した場合、ステップ２２１０へ進み、補正方法が補正方法３であるかを判断する。補正方法３である場合、ステップ２２１５へ進み、オフセットを計算し、オフセットを用いてPTSを補正する。補正方法３以外である場合、ステップ２２２０へ進み、補正方法が補正方法４であるかを判断する。補正方法４である場合、ステップ２２２５へ進み、異常値を示すパケットを破棄するといった特有の補正を実施する。
【０１２８】
補正方法４でない場合は、補正方法５であるため、ステップ２２３０へ進み、オフセットを計算し、PTSからオフセットを用いてPTSを補正するとともに、デコードのクロックの時刻補正を実施する。補正が完了したところで、ステップ２２３５へ進み、この処理を終了する。
【０１２９】
図２２に示すステップ２２１５およびステップ２２３０におけるPTSの補正を、図２３を参照して詳細に説明する。ステップ２３００から処理を開始し、ステップ２３０５では、図１８に示す補正前処理において算出したオフセットを取得する。ステップ２３１０では、取得したオフセットを用い、PTSに加算することによりPTSを補正する。図２１においてオフセットの符号を反転させているので、ここでは加算して補正している。補正が完了したところで、ステップ２３１５へ進み、この処理を終了する。
【０１３０】
図２２に示すステップ２２２５における補正について、図２４を参照して詳細に説明する。ステップ２４００から処理を開始し、ステップ２４０５では、PTS予測値と取り出したPTSとの差分が閾値以上であるかを判断する。閾値以上である場合、ステップ２４１０へ進み、閾値以上となる異常値を示すPTSを含むPESパケットを破棄する。パケットを破棄した場合、蓄積部４２からそのパケットを削除し、デコーダには出力しない。閾値より小さい場合、あるいはパケットを破棄した後、ステップ２４１５へ進み、この処理を終了する。
【０１３１】
PTSパターン認識処理は、比較的時間がかかる処理である。PTSパターン認識処理の結果を使用する補正前処理が全て終了してからPTS補正を開始すると、時間がかかり、映像・音声の再生に遅延が生じる可能性がある。そこで、図２５に示すように、１つのフローではなく、認識処理および補正前処理のフローとPTS補正のフローとに分け、非同期に実施することができる。このような非同期の処理とすることで、上述した認識結果が出たところでPTS補正を開始して、映像・音声の再生遅延を防止することができる。
【０１３２】
しかしながら、非同期に実施すると、PTSが補正されないまま、PESパケットがデコーダに出力されることになり、パターン認識中にPTS異常のPESパケットが発生すると、その間、映像・音声が正しく再生されなくなる。そこで、パターン認識処理に時間がかかり過ぎないように、適切なアルゴリズムやパラメータを選択することで、このような映像・音声が正しく再生されない時間を減少させることができる。なお、図２５に示す各ステップについては、図１８を参照して既に説明したので、ここではその説明を省略する。
【０１３３】
図２６は、情報処理装置１１の別の機能構成を示したブロック図である。図２６に示す例では、機能部として、通信部４０、処理部４１、蓄積部４２、認識部４３、記憶部４４、復号部４５、再生部４６に加えて、管理部４７をさらに備えている。通信部４０、処理部４１、蓄積部４２、認識部４３、記憶部４４、復号部４５、再生部４６については、既に説明したので、ここでは、管理部４７についてのみ説明する。
【０１３４】
管理部４７は、通信端末１０からのパターン認識アルゴリズムに適用するパターン認識パラメータの入力を受け付け、入力されたパターン認識パラメータを記憶部４４に記憶させる。このパラメータの追加や修正等により、パターン認識の精度を高め、認識されるパターンの種類を増やすことができる。
【０１３５】
通信端末１０の通信部３２は、ユーザによる操作を受けて、例えば新規のPTSパターン認識パラメータを情報処理装置１１に送信する。この送信には、映像・音声通信とは別のプロトコルを使用する。例えば、HTTP(Hyper Text Transfer Protocol)等である。
【０１３６】
情報処理装置１１の通信部４０は、そのパラメータを受信し、管理部４７に渡す。管理部４７は、記憶部４４のPTSパターン認識パラメータを保存する保存領域に、受け取ったパラメータを追加し、PTSパターン認識パラメータを更新する。情報処理装置１１は、この更新されたPTSパターン認識パラメータを用いて、PTSパターン認識処理およびPTS補正を実施することにより、新たなPTS異常パターンを認識してPTS補正を行い、映像と音声の同期再生を実現することができる。
【０１３７】
この管理部４７を備えることで、新たなPTS異常パターンが確認されたときに、容易にシステムを更新し、対応することが可能となる。
【０１３８】
これまで本発明を、情報処理システム、情報処理装置、情報処理方法およびプログラムとして上述した実施の形態をもって説明してきたが、本発明は上述した実施の形態に限定されるものではない。本発明は、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【０１３９】
したがって、上記のプログラムは、インストール可能な形式または実行可能な形式のファイルでフロッピー（登録商標）ディスク、CD(Compact Disk)、CD-R(Compact Disk Read Only Memory)、DVD(Digital Versatile Disk)、SDメモリカード(SD Memory Card)、USBメモリ(Universal Serial Bus Memory)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成することができる。また、上記のプログラムは、インターネット等のネットワーク経由で提供または配布するように構成されていてもよい。さらに、上記のプログラムを他の各種ソフトウェアとともにROM等に予め組み込んで提供するように構成してもよい。
【０１４０】
上記の実施形態では、上記の各機能部は、CPU２０がHDD２３等に記憶されたプログラムを読み出して実行することにより、各機能部を実現するプログラムがRAM２２上にロードされ、上記の各機能部が生成されている。しかしながら、これに限られるものではなく、例えば各機能部のうちの少なくとも一部が専用のハードウェア回路（例えば半導体集積回路）で実現されていてもよい。
【符号の説明】
【０１４１】
１０…通信端末、１１…情報処理装置、２０…CPU、２１…ROM、２２…RAM、２３…HDD、２４…通信I/F、２５…入出力I/F、２６…入力装置、２７…表示装置、２８…音声出力装置、２９…バス、３０…取得部、３１…符号化部、３２…通信部、４０…通信部、４１…処理部、４２…蓄積部、４３…認識部、４４…記憶部、４５…復号部、４６…再生部、４７…管理部、５０…RTPパケットキュー、５１…TSパケットキュー、５２…PESパケットキュー、６０…映像・音声通信パラメータ、６１、６２…PTSパターン認識パラメータ、６３…パケット情報、６４…PTSパターン認識結果、６５…PTS補正パラメータ、７０…入力層、７１、７２…中間層、７３…出力層
【先行技術文献】
【特許文献】
【０１４２】
【特許文献１】特許第５３５２５４５号公報
【図１】
2017224928.tif 000008
【図２】
2017224928.tif 000009
【図３】
2017224928.tif 000010
【図４】
2017224928.tif 000011
【図５】
2017224928.tif 000012
【図６】
2017224928.tif 000013
【図７】
2017224928.tif 000014
【図８】
2017224928.tif 000015
【図９】
2017224928.tif 000016
【図１０】
2017224928.tif 000017
【図１１】
2017224928.tif 000018
【図１２】
2017224928.tif 000019
【図１３】
2017224928.tif 000020
【図１４】
2017224928.tif 000021
【図１５】
2017224928.tif 000022
【図１６】
2017224928.tif 000023
【図１７】
2017224928.tif 000024
【図１８】
2017224928.tif 000025
【図１９】
2017224928.tif 000026
【図２０】
2017224928.tif 000027
【図２１】
2017224928.tif 000028
【図２２】
2017224928.tif 000029
【図２３】
2017224928.tif 000030
【図２４】
2017224928.tif 000031
【図２５】
2017224928.tif 000032
【図２６】
2017224928.tif 000033