JP2019029791A - 通信装置、制御方法、およびプログラム - Google Patents

通信装置、制御方法、およびプログラム Download PDF

Info

Publication number
JP2019029791A
JP2019029791A JP2017146336A JP2017146336A JP2019029791A JP 2019029791 A JP2019029791 A JP 2019029791A JP 2017146336 A JP2017146336 A JP 2017146336A JP 2017146336 A JP2017146336 A JP 2017146336A JP 2019029791 A JP2019029791 A JP 2019029791A
Authority
JP
Japan
Prior art keywords
data
transfer
communication apparatus
communication device
stream
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.)
Pending
Application number
JP2017146336A
Other languages
English (en)
Inventor
浩二 中禮
Koji Churei
浩二 中禮
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 JP2017146336A priority Critical patent/JP2019029791A/ja
Publication of JP2019029791A publication Critical patent/JP2019029791A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Abstract

【課題】 通信装置が、受信したデータの再生、あるいはデータに基づく処理を実行する時刻まで余裕があるか考慮することで、当該時刻にデータの再生、あるいはデータに基づく処理を実行できるように転送処理を行うことを目的とする。
【解決手段】 受信した第一のデータと第二のデータの各々に対応する基準値に基づいて、第一のデータよりも第二のデータのデータ転送を優先して行う場合であっても、第一のデータの再生、あるいは第一のデータに基づく処理を実行する実行時刻と、第一のデータの受信時刻との差分が所定の値より小さい場合は、当該第一のデータのデータ転送を第二のデータのデータ転送より優先的に実行する。
【選択図】 図3

Description

本発明は、通信装置のデータ転送に関する。
音声データや映像データ含むEthernetフレームを受信した通信装置が、受信したEthernetフレームに含まれる再生時刻の情報に基づいて、受信した音声データ等を当該再生時刻に再生する通信規格としてIEEE802.1BA規格が存在する。以下、IEEE802.1BA規格をAVB(Audio Video Bridging Systems)規格と呼ぶ。AVB規格では、音声データ等はストリームとして送信され、音声データ等を送信する通信装置が、ストリーム毎に識別子や優先度等を設定し、事前に相手装置に通知する。
特許文献1には、優先度が高いデータを受信した通信装置が、当該データをMAC(Media Access Controller)内の受信バッファとは別に設けられた処理バッファに格納することが開示されている。また、処理バッファに格納されたデータの処理を、通常バッファに格納されたデータの処理より優先的に実行することが開示されている。
特開2007―88709号公報
通信装置は受信した音声データ等を再生時刻に再生するために、ストリーム毎の優先度を通知されると、当該優先度に基づいて、優先度が高い音声データ等を優先度が低い音声データ等より優先的にデータ転送を行う。データ転送とは、通信装置が受信した音声データ等を自装置で再生する場合であれば、当該再生に際して通信装置内のメモリ間で行われるデータ転送を指す。また、通信装置が受信した音声データ等を他の通信装置で再生する場合であれば、通信装置から他の通信装置へのデータ転送を指す。このような通信装置が、再生時刻まで余裕がない音声データ等であるデータAと、再生時刻まで余裕があり、データAより優先度が高い音声データ等であるデータBを受信したとする。この場合、通信装置は優先度の高いデータBを、再生時刻まで余裕がないデータAより優先的にデータ転送する。そのため、受信した際に再生時刻まで余裕がない音声データ等(例えば、上記のデータB)を再生時刻に再生できない虞があった。
上記を鑑み、本発明は、通信装置が、受信したデータの再生、あるいはデータに基づく処理を実行する時刻まで余裕があるか考慮することで、当該時刻にデータの再生、あるいはデータに基づく処理を実行できるように転送処理を行うことを目的とする。
上記目的を達成するため、本発明に係る通信装置は、他の通信装置から、第一のデータと第二のデータとを受信する受信手段と、前記第一のデータと前記第二のデータとのデータ転送を行う転送手段と、前記第一のデータと前記第二のデータとの各々に対応する基準値を取得する第一の取得手段と、前記第一のデータの再生あるいは前記第一のデータに基づく制御を実行する実行時刻と、前記受信手段による前記第一のデータの受信時刻との第一の差分を取得する第二の取得手段と、前記第一の取得手段により取得した前記基準値に従ってデータ転送を行うと、前記第一のデータよりも前記第二のデータを優先して前記転送手段がデータ転送を行う場合であっても、前記第一の差分が第一の値よりも小さい場合には、前記第二のデータよりも前記第一のデータを優先してデータ転送を行うように前記転送手段を制御する制御手段と、を有する。
本発明によれば、通信装置が、受信したデータの再生、あるいはデータに基づく処理を実行する時刻まで余裕があるか考慮することで、当該時刻にデータの再生、あるいはデータに基づく処理を実行できるように転送処理を行うことができる。
通信装置101のハードウェア構成を示す図である。 通信装置101がEthernetフレームを受信する際に保持する優先度テーブル115のフォーマットである。 通信装置101がEthernetフレームを受信する際に実行するフローチャートである。
以下、添付の図面を参照して実施形態を詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示した構成に限定されるものではない。
図1は、本実施形態に係る通信装置101のハードウェア構成を示す図である。
本実施形態において、通信装置101は通信ネットワークを介し、IEEE802.1BA規格(Audio Video Bridging(AVB) Systems)に準拠して、受信した音声データや映像データを再生する通信装置である。IEEEとは、Institute of Electrical and Electronics Engineersの略である。以下、IEEE802.1BA規格をAVB規格と呼ぶ。
まず、本実施形態において通信装置101が実行する処理を簡単に説明する。
通信装置101は、他の通信装置から音声データや映像データを含むEthernetフレームを受信する。通信装置101は、当該音声データや映像データをストリームとして受信する。他の通信装置は、ストリーム毎に識別子(ストリームID)、クラス、優先度、必要な帯域幅を設定し、これらの情報を通信装置101にストリーム広告を用いて通知する。
ストリームIDとは、他の通信装置から送信される複数のストリームを一意に識別できる情報である。ストリームIDは、ストリームを送信する他の通信装置のMACアドレスと、他の通信装置から送信される複数のストリームを一意に識別するための識別子からなる情報である。MACアドレスとは、Media Access Control Addressのことである。
またクラスとは、ストリームについて、当該ストリームの音声データや映像データが他の通信装置から送信されてから、通信装置101が再生するまでにかけてよい許容時間の最大値を示す情報である。AVB規格にはクラスA、クラスBの二種類のクラスがある。クラスAでは2ms以内、クラスBでは50ms以内に当該許容時間を収めることを要求される。
優先度は、他の通信装置が通信装置101に送信するデータの種類に基づいて、当該データのストリームに設定される情報である。例えば他の通信装置が音声データと映像データを通信装置101に送信する場合、音声データのストリームが映像データのストリームより高い優先度を設定される。あるいは、映像データのストリームが音声データのストリームより高い優先度を設定されてもよい。なお、優先度は他に、ユーザ指示によって設定されてもよいし、他の通信装置と通信装置101の接続状態に基づいて設定されてもよい。本実施形態において優先度は0から7の八段階で設定され、0が優先度最低、7が優先度最高となる。
必要な帯域幅とは、他の通信装置が音声データや映像データを送信するにあたって必要とする最大の帯域幅についての情報である。
本実施形態において、ストリーム広告を受信した通信装置101は、ストリーム広告に含まれるクラス、優先度に基づいて、ストリーム毎に対応する処理優先度を設定する。処理優先度とは、通信装置101でデータ転送を実行する際の優先度であって、優先度が高いストリームは処理優先度も高く設定される。また、クラスAのストリームは、クラスBのストリームより処理優先度が高く設定されてもよい。なお、データ転送とは受信したEthernetフレームに含まれる音声データや映像データを通信装置101が備えるハードウェア内で転送することや、通信装置101が他の通信装置に転送することを指す。また通信装置101は、ストリームID、クラス、優先度、処理優先度を、後述の優先度テーブル115に保持する。本実施形態において、処理優先度は1が最もデータ転送の優先度が高く、以降数字が増えるとデータ転送を実行する際の優先度も下がる。
また、AVB規格に準拠した通信装置101は他の通信装置から音声データや映像データを含むEthernetフレームを受信すると、当該Ethernetフレームに含まれる再生時刻の情報に基づいて当該再生時刻に音声データや映像データを再生する。再生時刻に再生できない音声データや映像データは破棄される。
本実施形態において通信装置101は、他の通信装置からEthernetフレームを受信すると、後述のタイマ126を用いて受信時刻を検出する。そして、受信したEthernetフレームに含まれる再生時刻まで余裕があるか、後述の優先制御判定部116が判定し、余裕がない場合は受信したEthernetフレームのデータ転送を優先的に行う。通信装置101は優先的にデータ転送を行うEthernetフレームに含まれるデータを、後述のDMAC113が優先的に転送するように制御する。
コントローラ102は、通信装置101に搭載され、通信装置101の制御を実行するものである。
メインメモリ103は、ROMやRAM等のメモリにより構成され、コントローラ102に内蔵されるメインCPU105、サブCPU109、サブCPU110が実行するアプリケーションプログラムが格納されている。CPUはCentral Processing Unitの、ROMはRead Only Memoryの、RAMはRandom Access Memoryの夫々略である。また、通信装置101内で扱われる各種データのバッファメモリとしての役割を担う。なお、メインメモリ103として、ROM、RAM等のメモリの他に、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、DVDなどの記憶媒体を用いてもよい。また、メインメモリ103が複数のメモリ等を備えていてもよい。
コントローラ102の内部は、複数のドメインに分かれている。本実施形態では、コントローラ102の内部は主処理部104と通信処理部108の二つに内部が分かれているが、さらに多数のドメインによる構成であってもよいし、一つのドメインによる構成であってもよい。
主処理部104は、メインCPU105、メインバス106、メモリコントローラ107を含む。
メインCPU105は、通信装置101全体のアプリケーション制御を担う。例えば、通信装置101がプロジェクタやテレビ等の画像出力装置であれば、画像処理や画像出力に関する制御を行う。
メインバス106は、メインCPU105や通信処理部108からメインメモリ103へのアクセスやデータ転送に使用される。またメインCPU105が通信処理部108へアクセスする際にも使用される。
メモリコントローラ107は、メインバス106を介してメインメモリ103へのアクセス制御に使用される。
通信処理部108は、サブCPU109、サブCPU110、ローカルバス111、ローカルメモリ112、DMAC113、MAC123、タイマ126を含む。DMACは、Direct Memory Access Controllerの略である。またMACは、Media Access Controllerの略である。
サブCPU109、サブCPU110は通信処理を実行する。夫々のサブCPUは、メインメモリ103に格納されたプログラムを内蔵するキャッシュメモリにロードして、プログラムを実行する。また、ローカルバス111を介して、主処理部104や通信処理部108内の各ブロックへアクセスすることが可能である。サブCPU109、サブCPU110の少なくとも一方は、MAC123からEthernetフレームを受信したことを通知されると、レジスタ部114にEthernetフレームに含まれる映像データや音声データの転送リクエストを書き込む。なお、MAC123もしくはサブCPU109または110がEthernetフレームを受信したことをメインCPU105に通知し、メインCPU105がレジスタ部114への転送リクエストの書き込みを行ってもよい。
ローカルバス111は、サブCPU109およびサブCPU110からローカルメモリ112、DMAC113、または主処理部104に対するアクセスやデータの移動に使用される。
ローカルメモリ112には、通信インタフェース部(以下、通信I/F部)127を介して受信したデータが格納される。また、サブCPU109およびサブCPU110のワークメモリとして使用される。各CPUはメインメモリ103よりローカルメモリ112へのアクセスの方が高速に実行可能である。
DMAC113は、メインメモリ103、ローカルメモリ112、MAC123間のデータ転送を実行することが可能である。各ハードウェア間のデータ転送は、メインCPU105またはサブCPU109、サブCPU110のいずれかからの指示により開始する。なお、DMAC113が実行するデータ転送はDMA(Direct Memory Access)転送である。DMA転送は、メモリ間で行われるデータ転送で、CPUを介することなく行われる。
DMAC113は、レジスタ部114、優先度テーブル115、優先制御判定部116、アクセス制御部117、転送コントローラ118を含む。
レジスタ部114は、メインCPU105、サブCPU109、サブCPU110からアクセスが可能である。夫々のCPUは、DMAC113へデータ転送を指示する場合に、レジスタ部114のリクエスト用の領域へ転送リクエストを書き込む。レジスタ部114は書き込まれた転送リクエストを転送コントローラ118に通知する。また夫々のCPUは、すでにリクエストしたデータ転送のステータスを確認するために、用意された領域を読み出すことで、データ転送の完了やエラーによる転送中止などのステータスを知ることが出来る。
優先度テーブル115はRAM等のメモリにより実現され、通信装置101が受信するストリーム毎に対応するデータ転送の処理優先度を保持する。具体的には、他の通信装置から受信したストリーム広告に基づいてストリームID毎に、クラス、優先度、データ転送の処理優先度を格納し、保持する。また優先度テーブル115にはストリームID毎に、当該ストリームIDを有するストリームのEthernetフレームの再生時刻と、当該フレームを受信した受信時刻との差分値が所定の値以上か否かを格納し、保持する。あるいは差分値そのものが保持されてもよい。
なお、所定の値は通信装置101がEthernetフレームを受信してから、当該Ethernetフレームに含まれる音声データや映像データの再生を開始するまでにかかる時間に基づいて決定する。通信装置101は、音声データや映像データの再生を開始するまでにかかる時間について、演算で求めてもよいし、あるいは同じストリームのEhernetフレームを前回受信した際に再生までにかかった時間を保持していてもよい。あるいは、所定の値はユーザによって設定されてもよいし、通信装置101にプリセットされていてもよい。また、通信装置101が受信するデータ量に基づいて決定されてもよい。なお、所定の値はストリーム毎に設定されてもよい。
保持されている処理優先度はサブCPU109やサブCPU110、優先制御判定部116から管理される。本実施形態において、ストリームIDなどの登録または削除はサブCPU109やサブCPU110から実行され、優先度テーブル115に登録されている処理優先度の変更は優先制御判定部116から実行されるものとする。転送コントローラ118が実行するデータ転送として優先度テーブル115に登録されているストリームのEthernetフレームに含まれる映像データや音声データがデータ転送される際は、優先度テーブル115が保持する処理優先度が適用される。具体的には、処理優先度が高いストリームのEthernetフレームに含まれる映像データや音声データは、処理優先度の低いストリームのEthernetフレームに含まれる映像データや音声データより優先的にデータ転送される。
なお、本実施形態では優先度テーブル115は、ストリームID毎の、クラス、優先度、データ転送の処理優先度、差分値に関する情報を保持しているが、これらの全てを保持しなくてもよい。例えばストリームのクラスや優先度を保持せず、データ転送の処理優先度と差分値のみを保持してもよい。あるいは、これらの情報に加えて、あるいは代えて、Ethernetフレームの送信元のMACアドレスやベンダー固有の情報などを保持してもよい。
優先制御判定部116は、受信したEthernetフレームのストリームIDを取得する。また、後述の転送コアから通知される当該Ethernetフレームの再生時刻と、後述のタイマ126から通知される受信時刻の差分値を算出する。あるいは優先制御判定部116がタイマ126から受信時刻を取得してもよい。優先制御判定部116は、算出した差分値と所定の値との比較結果に基づいて、優先度テーブル115が保持する差分値を更新すると共に、優先度テーブル115が保持する処理優先度を変更するか判定する。当該判定の詳細は後述の図3で説明する。なお、所定の値はストリーム毎に設定可能で、各CPUからレジスタ部114に設定される。
アクセス制御部117は、転送コントローラ118が実行するデータ転送の転送元や転送先に応じて、ローカルバス111を介して転送コントローラ118がアクセスする機能ブロックを変更する。また、データ転送が並列に実行されている際のデータ転送の制御を実行する。本実施形態では、データ転送が並列に実行されている際は、優先度テーブル115が保持する処理優先度に基づいてローカルバス111へのアクセス帯域を変更するものとする。例えば、処理優先度の高いストリームのEthernetフレームに含まれる映像データや音声データのデータ転送1と、処理優先度の低いストリームのEthernetフレームに含まれる映像データや音声データのデータ転送2が並列に実行されているとする。この場合、データ転送1とデータ転送2が映像データや音声データを転送する際のデータ長を優先度テーブル115が保持する処理優先度に基づいて制限することで、データ転送の制御を実行する。具体的には、処理優先度の高いデータ転送1は長いデータ長毎に映像データや音声データを転送する。また、処理優先度の低いデータ転送2は短いデータ長毎に映像データや音声データを転送することで、データ転送1で転送される映像データや音声データのデータ転送を優先的に実行することができる。
転送コントローラ118は、レジスタ部114から通知された転送リクエストを基にデータ転送を実行する。転送コントローラ118は、転送制御部119および転送コア120、転送コア121、転送コア122を含む。通信装置101は少なくとも二つの転送コアを有していればよい。あるいは少なくとも転送コア二つ分の役割を果たす転送コアを有していればよい。
転送制御部119は、レジスタ部114から通知される転送リクエストに基づいて、複数の転送コアの内の一つに対しデータ転送の開始を指示する。転送制御部119は、データ転送を完了した転送コアから転送完了を示す通知を受信すると、レジスタ部114にデータ転送が完了したことを示す情報を書き込む。また、転送制御部119はデータ転送に何らかのエラーが発生した転送コアからエラー発生を示す通知を受信すると、データ転送にエラーが発生したことを示す情報をレジスタ部114に書き込んでよい。
転送コア120、転送コア121、転送コア122は転送制御部119からの指示に基づきデータ転送を実行する。実行するデータ転送が、優先度テーブル115に登録されているストリームのEthernetフレームに含まれる映像データや音声データのデータ転送であった場合、当該フレームのストリームIDと再生時刻を取得し、優先制御判定部116へ通知する。また、各転送コアは受信したEthernetフレームのストリームIDや再生時刻に基づいた処理優先度の判定を行うために内部に当該フレームを一時的に格納するバッファを持つ。
転送コア120、転送コア121、転送コア122が転送した映像データや音声データはメインメモリ103に転送される。そして出力部130や出力部130に含まれるデコーダーで当該データの再生が行われる。出力部130は、例えばモニタ画面やスピーカーなどである。具体的には、映像データや音声データをデコーダーでデコードし、モニタ画面やスピーカーなどを介して、映像データや音声データに基づいた出力を行う。これにより、モニタ画面では映像データに基づいた画面表示が行われ、スピーカーでは音声データに基づいた音声出力が行われる。通信装置101は、音声データや映像データが含まれていたEthernetフレームに含まれていた再生時刻に、これらのデータの再生を行う。なお、再生時刻に再生できないデータは破棄される。
通信装置101は、受信した音声データや映像データに対して、デコードや出力を行う必要があるため、これらのデータを含むEthernetフレームを受信した際に再生時刻まで余裕がないと、再生時刻にこれらのデータを再生できない場合がある。
MAC123は、通信I/F部127を介して、他の通信装置から外部ネットワークを介してEthernetフレームの送受信を行う。またMAC123は、送信用FIFO124および受信用FIFO125を有する。
MAC123は、DMAC113から送信用のEthernetフレームが転送されてきた場合は、当該フレームを送信用FIFO124へ一旦格納し、DMAC113から転送されてきた順序で通信I/F部127へ転送する。一方、通信I/F部127を介してEthernetフレームを受信すると、MAC123は受信用FIFO125へ当該フレームを格納し、サブCPU109またはサブCPU110へフレームを受信したことを通知する。なお、Ethernetフレームを受信したことはメインCPU105に通知してもよい。送信用FIFO124、受信用FIFO125は、数フレーム分のEthernetフレームが格納可能な領域が確保されている。
タイマ126は、時刻を計時しており、時刻情報を検出することの出来るモジュールである。本実施形態において、タイマ126はEthernetフレームの受信時刻を検出し、優先制御判定部116へ通知する。タイマ126は、MAC123がEthernetフレームを受信したタイミングで受信時刻を通知してもよいし、受信したEthernetフレームが何れかの転送コアに格納されたタイミングで通知してもよい。あるいは優先制御判定部116がタイマ126から受信時刻を取得してもよい。また、サブCPU109など他のモジュールがアクセスすることにより受信時刻を取得してもよい。
通信I/F部127は、通信ケーブルを介して通信装置101を外部ネットワークに接続する。Ethernetフレームの送受信は全て、MAC123および通信I/F部127を介して行われる。
図2に、通信装置101がEthernetフレームを受信する際に保持する優先度テーブル115のフォーマットを示す。
優先度テーブル115には、ストリームID毎にクラス、優先度、データ転送の処理優先度、差分値に関する情報が格納される。通信装置101は、他の通信装置から受信したストリーム広告に基づいて優先度テーブル115にストリームID、クラス、優先度を格納し保持することで、ストリームを登録する。
ストリームIDは、通信装置101が受信するストリームを一意に識別するための情報である。クラスとは、ストリームについて、当該ストリームの音声データや映像データが他の通信装置から送信されてから、通信装置101が再生するまでにかけてよい許容時間の最大値を示す情報である。優先度は、他の通信装置が通信装置101に送信するデータの種類に基づいて、当該データのストリームに設定される情報である。データ転送の処理優先度は、通信装置101がストリームのクラスや優先度に基づいて決定する。差分値に関する情報は、通信装置101が受信したEthernetフレームの再生時刻と、当該フレームを受信した受信時刻との差分値に関する情報である。
図3に、通信装置101がEthernetフレームを受信する際に実行する処理のフローチャートを示す。本フローチャートは、通信装置101がメインメモリ103に記憶されたアプリケーションプログラムを実行することで実現され、通信装置101が通信I/F部127を介して外部ネットワークに接続されると開始する。
まず、通信装置101は、Ethernetフレームを受信したか判定する(ステップS301)。通信装置101はEthernetフレームを受信していないと判定すると(ステップS301のNo)、ステップS301に戻る。通信装置101はEthernetフレームを受信したと判定すると(ステップS301のYes)、ステップS302に進む。当該判定は、通信装置101のMAC123がEthernetフレームを受信し、サブCPU109またはサブCPU110へ当該フレームの受信を通知したことに基づいて行う。あるいは、Ethernetフレームを受信したMAC123がメインCPU105に通知したことに基づいて判定してもよい。
次に通信装置101は、MAC123から受信したEthernetフレームの読み出しを行う(ステップS302)。具体的には、まずEthernetフレームの受信を通知されたサブCPU109またはサブCPU110がレジスタ部114に転送リクエストを書き込む。メインCPU105がEthernetフレームの受信を通知された場合は、メインCPU105がレジスタ部114に転送リクエストを書き込んでもよい。続いてレジスタ部114が当該転送リクエストを転送コントローラ118に通知することで、Ethernetフレームの読み出しを行う。転送リクエストを通知された転送コントローラ118は、MAC123から受信したEthernetフレームを読みだす。
ステップS302で受信したEthernetフレームの読み出しを行った通信装置101は、ステップS303に進み、受信したEthernetフレームのストリームが、優先度テーブル115に登録されているか判定する。具体的には受信したEthernetフレームのヘッダに含まれるストリームIDを取得し、優先度テーブル115に既に登録されているか判定する。受信したEthernetフレームのストリームが優先度テーブル115に登録されていないと判定されると(ステップS303のNo)、ステップS309に進む。なお、受信したEthernetフレームのストリームが優先度テーブル115に登録されていない場合とは、受信したEthernetフレームがAVB規格のEthernetフレームでない場合を含む。受信したEthernetフレームのストリームが優先度テーブル115に登録されていると判定されると(ステップS303のYes)、ステップS304に進む。
通信装置101は、ステップS304において、受信したEthernetフレームの再生時刻と受信時刻の差分値を取得し、優先度テーブル115の差分値に関する情報を変更する。具体的には、受信したEthernetフレームに含まれる再生時刻と、タイマ126が通知する当該フレームの受信時刻との差分値を取得する。そして、当該差分値が所定の値以上か所定の値より小さいか比較し、当該比較の結果に基づいて優先度テーブル115の差分値に関する情報を更新する。本実施形態においては、当該差分値が所定の値以上の場合は、図2の差分値にOKの情報を入れ、当該差分値が所定の値より小さい場合は、図2の差分値にNGの情報を入れる。例えばストリームID6のストリームのEthernetフレームの差分値が所定の値より小さかったとする。通信装置101は、ストリームID6の差分値に関する情報をOKからNGに更新する。なお、新たに取得した差分値に関する情報が既に優先度テーブル115に格納されている差分値に関する情報と同じ場合は、差分値に関する情報を更新しなくてもよい。
続いて通信装置101は、受信したEthernetフレームの再生時刻と受信時刻の差分値が所定の値より小さいか判定する(ステップS305)。当該判定は、ステップS304で行った比較の結果に基づいて行ってもよいし、ステップS304で更新した優先度テーブル115の差分値に関する情報を参照することで行ってもよい。なお、ステップS305はステップS304で受信したEthernetフレームの再生時刻と受信時刻の差分値を比較した際に行ってもよい。通信装置101は差分値が所定の値より小さいと判定すると(ステップS305のYes)、ステップS306に進む。一方通信装置101は差分値が所定の値以上であると判定すると(ステップS305のNo)、ステップS309に進む。
通信装置101はステップS306に進むと、受信したEthernetフレームのストリームより処理優先度が一つ高いストリームの状態を確認する。図2を用いて具体的に説明する。例えば受信したEthernetフレームのストリームが、ストリームID6のストリームだった場合、そのデータ転送の処理優先度は4である。処理優先度が一つ高いストリームは、データ転送の処理優先度が3である、ストリームID5のストリームになる。そこで、通信装置101はストリームID5のストリームの状態を確認する。ストリームの状態を確認するとは、ストリームの差分値が所定の値以上か確認することである。本実施形態においては差分値に関する情報にOKの情報が格納されているか確認することになる。
次に通信装置101はステップS307に進み、データ転送の処理優先度を変更するか判定する。具体的にはステップS306で、処理優先度が一つ高いストリームの差分値に関する情報にOKの情報が格納されていた場合、通信装置101はデータ転送の処理優先度を変更すると判定する。つまり、処理優先度が一つ高いストリームの再生時刻までに十分な余裕がある場合は、処理優先度を低下させても問題ないとして、データ転送の処理優先度を変更すると判定する。一方、通信装置101は、処理優先度が一つ高いストリームの差分値に関する情報にNGの情報が格納されていた場合、つまり再生時刻までに十分な余裕がない場合は、データ転送の処理優先度を変更しないと判定する。なお、優先度テーブル115にストリームが登録されてから、当該ストリームに含まれるEthernetフレームを所定の数以上受信していない場合は、データ転送の処理優先度を変更しなくてもよい。また、ストリーム毎に処理優先度変更を行うか行わないかが予め設定されていてもよい。当該設定は、ユーザの指示に基づいて設定されてもよいし、ストリームに含まれるデータの種類や、クラス、優先度などに基づいて設定されてもよい。例えば、緊急度の高いストリームやユーザの安全性に関わるストリームは処理優先度を変更しないように設定されてもよい。通信装置101はデータ転送の処理優先度を変更すると判定すると(ステップS307のYes)、ステップS308に進む。一方、通信装置101はデータ転送の処理優先度を変更しないと判定すると(ステップS307のNo)、ステップS309に進む。
なお、ステップS307の判定の際に、処理優先度が一つ高いストリームの情報を必要としない場合は、ステップS306をスキップしてもよい。
通信装置101はステップS308で、データ転送の処理優先度を変更する。具体的には、受信したEthernetフレームのストリームの処理優先度と、処理優先度が一つ高いストリームの処理優先度を入れ替える。あるいは、受信したEthernetフレームのストリームの処理優先度が、処理優先度が一つ高いストリームの処理優先度より高くなるように変更してもよい。もしくは、受信したEthernetフレームのストリームの処理優先度が、優先度テーブル115に登録されているストリームの中で最も高くなるように変更してもよい。例えば、ストリームID6のデータ転送の処理優先度を変更する場合、処理優先度が一つ高いストリームID5とデータ転送の処理優先度を入れ替える。すなわち、ストリームID6のデータ転送の処理優先度を4から3に変更し、ストリームID5のデータ転送の処理優先度を3から4に変更する。通信装置101はデータ転送の処理優先度を変更すると、ステップS309に進む。
なお、ステップS305でYesと判定された場合に、通信装置101はステップS306、ステップS307をスキップして、ステップS308に進んでもよい。
通信装置101は、ステップS309において、優先度テーブル115が保持するデータ転送の処理優先度に基づいたデータ転送を行う。具体的には、転送コントローラ118に格納されているEthernetフレームに含まれる音声データや映像データを、優先度テーブル115のデータ転送の処理優先度に基づいてメインメモリ103へ書き込む。通信装置101は、処理優先度の高いストリームのEthernetフレームに含まれる映像データや音声データを転送する際のデータ長を長くすることで、処理優先度に基づくデータ転送を実行する。あるいは、処理優先度の高いストリームのEthernetフレームに含まれる映像データや音声データのデータ転送を、当該フレームより処理優先度が低いストリームのEthernetフレームに含まれる映像データや音声データの転送より先に行ってもよい。
また、ステップS303でNoと判定されたEthernetフレームについては、優先度テーブル115がデータ転送の処理優先度を保持していないので、受信した順にデータ転送を行う。なお、優先度テーブル115に登録されているストリームに含まれるEthernetフレームと、登録されていないEthernetフレーム間では、先に受信されたフレームが先にデータ転送されてもよい。あるいは、優先度テーブル115に登録されているストリームに含まれるEthernetフレームが先にデータ転送されてもよい。
次に、通信装置101は受信したEthernetフレームがストリーム広告であるか判定する(ステップS310)。通信装置101は受信したEthernetフレームがストリーム広告である場合は(ステップS310のYes)、ステップS311に進む。通信装置101は受信したEthernetフレームがストリーム広告でない場合は(ステップS310のNo)、ステップS312に進む。
通信装置101は、ステップS311において、受信したストリーム広告に基づいて優先度テーブル115にストリームの情報を登録、あるいは更新する。通信装置101は、ストリーム広告に含まれるストリームの情報が、まだ優先度テーブル115に登録されていないストリームに関する情報だった場合、優先度テーブル115に新たなストリームを登録する。一方、通信装置101はストリーム広告に含まれるストリームの情報が、既に優先度テーブル115に登録されているストリームに関する情報だった場合、既存のストリームの情報を、受信したストリーム広告に基づいて更新する。なお、ストリームの情報の更新には、ストリームの情報の削除も含まれる。
次に通信装置101は、通信装置101と外部ネットワークとの接続が切断されたか判定する(ステップS312)。通信装置101は、外部ネットワークとの接続が切断されていないと判定すると(ステップS312のNo)、ステップS301に戻る。通信装置101は、外部ネットワークとの接続が切断されたと判定すると(ステップS312のYes)、本フローチャートを終了する。
以上のように、本実施形態では、通信装置101が受信したEthernetフレームの再生時刻と受信時刻との差分値に基づいてデータ転送の処理優先度を変更する。これにより、再生時刻まで余裕がないEthernetフレームに含まれる音声データや映像データを優先的に再生できる。具体的には、通信装置101が受信したEthernetフレームの再生時刻と受信時刻との差分値に基づいて、再生時刻まで余裕がないフレームの処理優先度を高くすることで、DMAC113からメインメモリ103へのデータ転送が優先的に行われる。DMAC113からデータ転送された音声データや映像データは、メインメモリ103に格納され再生されるため、データ転送が優先的に行われた音声データや映像データを当該データの再生時刻に再生できる。
なお、本実施形態では、図3のステップS305の判定を、通信装置101が受信したEthernetフレームの再生時刻と受信時刻の差分値が所定の値以上か所定の値より小さいかで行った。しかし、これに限らずステップS305の判定を、受信したEthernetフレームの受信時刻に所定の値を加算した再生可能時刻が、当該Ethernetフレームの再生時刻より後の時間であるかで行ってもよい。再生可能時刻が再生時刻より後の時刻である場合は、ステップS305でYesと判定する。一方、再生時刻が再生可能時刻より後の時刻である場合は、ステップS305でNoと判定する。
また、本実施形態において、通信装置101は受信した音声データや映像データに含まれる再生時刻と、受信した受信時刻とで差分値をとった。しかし、これに限らず、現在時刻と、再生時刻との差分値をとってもよい。現在時刻は任意のタイミングで取得される時刻で、通信装置101は当該現在時刻から再生時刻までの差分値を取ることで、再生時刻まで余裕があるか判定してもよい。
なお、本実施形態で通信装置101はAVB規格に準拠して音声データや映像データを受信し再生するとした。しかし、これに限らず受信したデータに含まれる時刻情報に基づいて、当該時刻情報が示す時間に受信したデータを再生したり、データに基づいた制御を実行したりする他の通信規格に準拠して動作してもよい。
また、通信装置101の具体的な例としては、タブレット、スマートフォン、PC、携帯電話、カメラ、ビデオカメラなどが挙げられるが、これらに限定されない。他に、テレビ、ヘッドマウントディスプレイ、プロジェクタ、ディスプレイ、カーナビゲーション装置、スピーカー、車載システムなどが挙げられる。
また、通信装置101は受信したEthernetフレームを他の通信装置に転送する中継装置であってもよい。この場合、通信装置101はEthernetフレームを受信する受信装置が、当該Ethernetフレームに含まれる映像データや音声データを再生時刻に再生するまでに余裕があるかを考慮する。具体的には、通信装置101は自装置がEthernetフレームを受信してから受信装置が再生するまでの許容時間を取得し、自装置がEthernetフレームを受信した受信時刻と再生時刻の差分が許容時間より大きいか判定する。通信装置101は、受信したEthernetフレームを受信装置が再生時刻に再生するまで余裕がない場合は、当該Ethernetフレームを優先的に受信装置に転送する。また、通信装置101が中継装置である場合、通信装置101が実行するデータ転送は具体的に、Ethernetフレームの受信、データ転送、他の通信装置への転送などの処理である。
本実施形態において、通信装置101は受信したストリーム毎の優先度とクラスに基づいて、処理優先度を決定し、当該処理優先度に基づいてデータ転送を優先的に行うとした。しかし、これに限らず、データ転送を行う際の基準値を、処理優先度ではなく、映像データや音声データを受信した受信時刻にしてもよい。具体的には、あるデータのデータ転送を、当該データより遅く受信したデータのデータ転送より優先的に行ってもよい。
本実施形態では、通信装置101は他の通信装置から映像データや音声データを受信し、受信したデータの再生を実行する実行時刻として、当該データに含まれる再生時刻に再生するとした。これらのデータに加えて、あるいは代えて、制御データを受信してもよい。その場合、通信装置101は受信した制御データに基づく制御を行う実行時刻として、当該制御データに含まれる再生時刻に、当該制御データに基づく制御を行う。例えば通信装置101がカメラであった場合、通信装置101は受信した制御データに基づいて再生時刻にシャッターを切るなどの制御を行ってもよい。
本実施形態において、通信装置101は他の通信装置からEthernetフレームを受信するとしたが、複数の他の通信装置からEthernetフレームを受信してもよい。
図3におけるフローチャートの少なくとも一部または全部をハードウェアにより実現してもよい。ハードウェアにより実現する場合、例えば、所定のコンパイラを用いることで、各ステップを実現するためのプログラムからFPGA上に専用回路を生成し、これを利用すればよい。FPGAとは、Field Programmable Gate Arrayの略である。また、FPGAと同様にしてGate Array回路を形成し、ハードウェアとして実現するようにしてもよい。また、ASIC(Application Specific Integrated Circuit)により実現するようにしてもよい。図3に示したフローチャートの各ステップを不図示の複数のCPUもしくは装置で分散して行うようにしてもよい。
以上、実施形態を詳述したが、本発明は例えば、システム、装置、方法、プログラム若しくは記録媒体(記憶媒体)等としての実施態様をとることが可能である。具体的には、複数の機器(例えば、ホストコンピュータ、インタフェース機器、撮像装置、webアプリケーション等)から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
101 通信装置
102 コントローラ
103 メインメモリ
104 主処理部
108 通信処理部
113 DMAC
123 MAC
127 通信インタフェース部

Claims (20)

  1. 通信装置であって、
    他の通信装置から、第一のデータと第二のデータとを受信する受信手段と、
    前記第一のデータと前記第二のデータとのデータ転送を行う転送手段と、
    前記第一のデータと前記第二のデータとの各々に対応する基準値を取得する第一の取得手段と、
    前記第一のデータの再生あるいは前記第一のデータに基づく制御を実行する実行時刻と、前記受信手段による前記第一のデータの受信時刻との第一の差分を取得する第二の取得手段と、
    前記第一の取得手段により取得した前記基準値に従ってデータ転送を行うと、前記第一のデータよりも前記第二のデータを優先して前記転送手段がデータ転送を行う場合であっても、前記第一の差分が第一の値よりも小さい場合には、前記第二のデータよりも前記第一のデータを優先してデータ転送を行うように前記転送手段を制御する制御手段と、
    を有することを特徴とする通信装置。
  2. 前記実行時刻は、前記通信装置が前記第一のデータの再生、あるいは前記第一のデータに基づく制御を実行する時刻であることを特徴とする請求項1に記載の通信装置。
  3. 前記受信手段により受信したデータを保持する第一の保持手段と、
    前記データの再生、あるいは前記データに基づく制御を実行する際に前記データを保持する第二の保持手段と、を有し、
    前記転送手段は、前記第一の保持手段から前記第二の保持手段へ前記データを転送することを特徴とする請求項2に記載の通信装置。
  4. 前記第一の値は、前記通信装置が前記第一のデータを受信してから、前記通信装置が前記第一のデータの再生、あるいは前記第一のデータに基づく制御を実行するまでにかかる時間に基づく値であることを特徴とする請求項2または3に記載の通信装置。
  5. 前記実行時刻は、他の通信装置が前記第一のデータの再生、あるいは前記第一のデータに基づく制御を実行する時刻であることを特徴とする請求項1に記載の通信装置。
  6. 前記転送手段は、前記通信装置から前記第一のデータの再生あるいは前記第一のデータに基づく制御を実行する他の通信装置へ、前記受信手段により受信したデータを転送することを特徴とする請求項5に記載の通信装置。
  7. 前記第一の値は、前記通信装置が前記第一のデータを受信してから、前記他の通信装置が前記第一のデータの再生、あるいは前記第一のデータに基づく制御を実行するまでにかかる時間に基づく値であることを特徴とする請求項5または6に記載の通信装置。
  8. 前記第二のデータの再生あるいは前記第二のデータに基づく制御を実行する実行時刻と、前記受信手段による前記第二のデータの受信時刻との第二の差分を取得する第三の取得手段を有し、
    前記制御手段は、前記第一の差分が前記第一の値以上の場合と、前記第一の差分が前記第一の値より小さく、前記第二の差分が第二の値より小さい場合は、前記第一の取得手段により取得した前記基準値に従ってデータ転送を行い、
    前記第一の差分が前記第一の値より小さく、前記第二の差分が前記第二の値以上の場合は、前記制御手段により前記転送手段を制御することを特徴とする請求項1から7の何れか一項に記載の通信装置。
  9. 前記転送手段により前記第一のデータのデータ転送を優先的に行う場合とは、
    前記第一のデータを第一のデータ長毎にデータ転送し、前記第二のデータを前記第一のデータ長よりも短い第二のデータ長毎にデータ転送する場合であって、
    前記転送手段により前記第二のデータのデータ転送を優先的に行う場合とは、
    前記第二のデータを前記第一のデータ長毎にデータ転送し、前記第一のデータを前記第二のデータ長毎にデータ転送する場合であることを特徴とする請求項1から8の何れか一項に記載の通信装置。
  10. 前記転送手段により前記第一のデータのデータ転送を優先的に行う場合とは、
    前記第一のデータのデータ転送を前記第二のデータのデータ転送より先に行う場合であって、
    前記転送手段により前記第二のデータのデータ転送を優先的に行う場合とは、
    前記第二のデータのデータ転送を前記第一のデータのデータ転送より先に行う場合であることを特徴とする請求項1から8の何れか一項に記載の通信装置。
  11. 前記データ転送は、DMA(Direct Memory Access)転送であることを特徴とする請求項1から10の何れか一項に記載の通信装置。
  12. 前記データのストリームの優先度を受信する受信手段を備えることを特徴とする請求項1から11の何れか一項に記載の通信装置。
  13. 前記受信手段は、前記優先度を含むストリーム広告を受信することを特徴とする請求項12に記載の通信装置。
  14. 前記ストリーム広告は、前記データの識別子と、前記データのクラスを含み、
    前記データの識別子は、前記データを送信する他の通信装置のMACアドレス(Media Access Control Address)と、前記他の通信装置が送信する複数のストリームを識別するための識別子からなる識別子であって、
    前記データのクラスは、前記データが前記他の通信装置から送信されてから、前記データが再生あるいは、前記データに基づいた処理が実行されるまでの許容時間の最大値を示す情報であることを特徴とする請求項13に記載の通信装置。
  15. 前記基準値は前記データのストリームの優先度に基づいて決定される処理優先度であって、前記転送手段は前記処理優先度が高いデータのデータ転送を優先的に行うことを特徴とする請求項12から14の何れか一項に記載の通信装置。
  16. 前記基準値は、前記受信手段によるデータの受信時刻あって、前記転送手段は、前記受信時刻が早いデータのデータ転送を優先的に行うことを特徴とする請求項1から14の何れか一項に記載の通信装置。
  17. 前記実行時刻は、Ethernetフレームに含まれることを特徴とする請求項1から16の何れか一項に記載の通信装置。
  18. 前記通信装置は、IEEE802.1BA規格に基づいて前記データを受信することを特徴とする請求項1から17の何れか一項に記載の通信装置。
  19. 通信装置の制御方法であって、
    他の通信装置から第一のデータと第二のデータとを受信する受信工程と、
    前記第一のデータと前記第二のデータとの各々に対応する基準値を取得する第一の取得工程と、
    前記第一のデータの再生あるいは前記第一のデータに基づく制御を実行する実行時刻と、前記受信工程において前記第一のデータが受信された受信時刻との第一の差分を取得する第二の取得工程と、
    前記第一の取得工程において取得した前記基準値に従って、前記第一のデータと前記第二のデータとのデータ転送を行うと、前記第一のデータより前記第二のデータが優先してデータ転送を行われる場合であっても、前記第一の差分が第一の値より小さい場合には、前記第二のデータよりも前記第一のデータを優先してデータ転送を行うよう制御する制御工程と、
    を有することを特徴とする制御方法。
  20. コンピュータを請求項1から18の何れか一項に記載の通信装置の各手段として機能させるためのプログラム。
JP2017146336A 2017-07-28 2017-07-28 通信装置、制御方法、およびプログラム Pending JP2019029791A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017146336A JP2019029791A (ja) 2017-07-28 2017-07-28 通信装置、制御方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017146336A JP2019029791A (ja) 2017-07-28 2017-07-28 通信装置、制御方法、およびプログラム

Publications (1)

Publication Number Publication Date
JP2019029791A true JP2019029791A (ja) 2019-02-21

Family

ID=65476699

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017146336A Pending JP2019029791A (ja) 2017-07-28 2017-07-28 通信装置、制御方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP2019029791A (ja)

Similar Documents

Publication Publication Date Title
JP4285444B2 (ja) 再生システム、再生装置、受信再生装置、再生方法
JP2006332771A (ja) 制御装置および方法、並びにプログラム
JP2006259898A (ja) I/oコントローラ、信号処理システム、およびデータ転送方法
JP4976654B2 (ja) 通信装置及びコンピュータプログラム
JP2015188204A (ja) 情報処理装置、情報処理方法、およびそのプログラム
US20140372621A1 (en) AirSharing Method, AirSharing Apparatus, and Terminal Device
JP2019029801A (ja) 再生装置、再生装置の制御方法、及び、プログラム
JP2019029791A (ja) 通信装置、制御方法、およびプログラム
JP4498128B2 (ja) 画像記録装置及びコンピュータプログラム
JP2009118354A (ja) 静止画処理装置、静止画処理システム及び静止画処理方法
JP2004048464A (ja) 音声映像データ記録再生装置
JP2007281971A (ja) 通信制御方法、通信制御装置、及び通信制御プログラム
US20140029917A1 (en) Recording device
JP2007102955A (ja) 情報記録装置、撮像装置、および情報記録制御方法、並びにコンピュータ・プログラム
JP5589654B2 (ja) 映像音声再生装置、および映像音声再生方法
JP2005184079A (ja) Avネットワーク対応記録再生装置
JP2015080146A (ja) 情報処理装置、情報処理方法及びプログラム
JP5721790B2 (ja) 通信装置、通信装置の制御方法、プログラムおよびシステム
JP2006245796A (ja) 画像供給装置と情報処理装置及びその制御方法
JP2005063116A (ja) 無線記憶装置、無線記憶システムおよび無線通信方法
KR101612830B1 (ko) 효율적인 기기 검색을 수행하는 차량의 멀티미디어 시스템 및 그 제어 방법
JP2009259060A (ja) ストリームデータ記録再生装置
JP5268477B2 (ja) 情報処理装置およびその制御方法、データ処理システム
JP2007124239A (ja) 画像記憶装置
JP2004134851A (ja) ネットワーク機器、及び、かかるネットワーク機器の制御方法