以下、この発明をその実施の形態を示す図面に基づいて具体的に説明する。
<実施の形態1>
図1は、実施の形態1に係るパケットデータ送受信システムの一構成例を示す図である。
図1に示すように、本実施の形態に係るパケットデータ送受信システムは、データ送信装置100とデータ受信装置200とにより構成されている。また、データ送信装置100から送信されるパケットデータは、ネットワーク300を介して、データ受信装置200へと伝送される。
データ送信装置100は、入力端子1、時刻情報付加部2およびタイマ3とを備えている。
入力端子1には、たとえば188バイトのデータであるトランスポートストリーム(以下、TSと称する)パケットが入力される。また、タイマ3は、データ送信装置100内の内部時刻を計測する装置である。また、時刻情報付加部2は、入力端子1から入力されたTSパケットに、タイマ3の内部時刻を付加する装置である。
ここで、図2に、時刻情報が付加されたTSパケットのデータ構成例を示す。図2に示すデータ構成では、時刻情報が4バイトであり、TSパケットが188バイトである。また、時刻情報は、TSパケットの先頭に付加されている。
データ受信装置200は、記憶部10、時刻情報分離部20、データ読み出しタイミング生成部30、記憶状態検出部40、および時刻情報誤り検出部50を備えている。
記憶部10は、データ送信装置100から出力された、時刻情報が付随するTSパケットを記憶する装置である。
また、時刻情報分離部20は、記憶部10から読み出された時刻情報が付随するTSパケットを、時刻情報とTSパケットの本体部分とに分離する装置である。
また、データ読み出しタイミング生成部30は、データ読み出しタイミング信号を生成するための装置である。ここで、データ読み出しタイミング信号とは、時刻情報分離部20により分離された時刻情報、または時刻情報誤り検出部50の出力信号を基に、時刻情報が付随するTSパケットを記憶部10から読み出すため信号である。
なお、データ読み出しタイミング生成部30は、比較部31、タイマ32、および制御部33とで構成されている。
タイマ32は、データ受信装置200内の内部時刻を計測する装置である。また、比較部31は、時刻情報とタイマ32の内部時刻とを比較するための装置である。また、制御部33は、データ読み出しタイミング信号を生成するための装置である。
記憶状態検出部40は、記憶部10内に記憶されているデータのデータ残量を計測するための装置である。
さらに、時刻情報誤り検出部50は、TSパケットに付随する時刻情報について発生した誤りを検出するための装置である。
次に、図3に、伝送帯域が異なる伝送路上でのTSパケットの様子を示す。
図3の上段は、データ送信装置100の入力端子1に入力されるTSパケットの様子を示している。また、中段は、ネットワーク300上を伝送するTSパケットの様子を示している。また、下段は、データ受信装置200から出力されるTSパケットの様子を示している。
図3に示しているように、入力端子1に入力されるTSパケットのパケット間隔は、通常、各々のパケット間で異なっており、一定ではない。
また、データ受信装置200の後段に接続されている、TSパケット再生装置(図示せず)において、TSパケットを正しく再生するためには、図3に示すように、データ送信装置100に入力されてくる各TSパケット間の間隔と、データ受信装置200から出力される、対応する各TSパケット間の間隔とが、ほぼ等しくなっている(なお、50μs程度の多少の誤差は許容される)ことが必要である。
ところで、データ送信装置100の前段の伝送路の伝送帯域と、データ受信装置200の後段の伝送路の伝送帯域とは、ほぼ同じである(たとえば、IEEE1394S400を用いてデータ伝送を行う場合には、瞬間的には最大400Mbpsの伝送速度でTSパケットが送受信される)。
しかし、ネットワーク300上の伝送帯域は、データ送信装置100の前段の伝送路の伝送帯域等と比較して狭い(たとえば、ネットワーク300に無線LANとしてIEEE802.11aが含まれている場合には、実行スループットで25Mbps程度である)。
したがって、TSパケットが伝送帯域の異なる伝送路を経由する場合には、データ送信装置100の前段とデータ受信装置200の後段とにおいて、各TSパケット間の間隔同士が、一定に保たれなくなる。これは、以下の理由によるものである。
つまり、TSパケットの平均的なビットレートは、VBR(Variable bite rate)を使用した場合でも、一般に伝送路の帯域幅に関係なくほぼ一定である。しかし、TSパケットを伝送する際は、各ネットワーク伝送帯域の差により、一のTSパケットを伝送するのに費やされる時間が変化する。
したがって、TSパケットが伝送されるのに費やされる時間か変化した分、TSパケット間の間隔が変化することになる。そして、当該TSパケット間の間隔が変化した状態で、何の調整も行わなければ、TSパケット間の間隔は、その後においても変化したままとなる。
そこで、データ送信装置100の前段とデータ受信装置200の後段とにおいて、TSパケット間の間隔を復元するために、以下の処理を行う。
まず、ネットワーク300を介して、データ送信装置100から出力されてきたTSパケットをデータ受信装置200が受信する。ここで、データ送信装置100が有する時刻情報付加部2により、当該TSパケットの先頭には、データ送信装置100が有するタイマ3の内部時刻が付加されている(図2参照)。
なお、上述したように、ネットワーク300上の伝送帯域とデータ送信装置100の前段の伝送帯域は異なる。よって、図3に示したように、TSパケット間の間隔が変化する。今の場合、データ送信装置100の前段の伝送帯域が広く、ネットワーク300上の伝送帯域が狭いので、ネットワーク300上の対応する各TSパケット間の間隔の方が小さくなる。
さて、データ受信装置200が、時刻情報が付随するTSパケットを受信すると、当該TSパケットは、記憶部10に記憶される。
ここで、記憶部10のメモリは、複数のセグメント(一のセグメントは、所定のデータ幅を有している)で区画されている。そして、上記TSパケットは、現在設定されている書き込みアドレスに対応する各セグメントに、分割して記憶される。
記憶部10は、上記TSパケットの書き込み処理が完了すると、当該記憶部10は、書き込みアドレスを、次にデータが書き込まれるセグメントに対応するアドレスに設定し直す。
ここで、一回のデータ書き込み処理に要するセグメントの数は、一のセグメントのデータ幅と一のTSパケットのデータ長に基づいて決定される。
たとえば、一のセグメントのデータ幅が8ビットであり、時刻情報が付随する一のTSパケットのデータ長が192バイト(時刻情報が4バイトで、TSパケットの本体部分が188バイト)である場合には、一回のデータを書き込み処理には、192個のセグメントを用意する必要がある。したがって、記憶部10は、次の書き込み処理が行われる前に、毎回、192個のセグメントに対応するアドレスを設定する。
また、上記から分かるように、時刻情報が付随するTSパケットが順次データ受信装置200に受信される度に、記憶部10からデータを読み出さない限り、書き込み状態にあるセグメントの数は増加する。
たとえば、セグメントのデータ幅が8ビットであれば、192バイトのTSパケットを受信する度に、書き込み状態にあるセグメントの数が192個増加する。また、もしTSパケットのデータ長が256バイトならば(時刻情報4バイト、TSパケットの本体部分188バイト、その他の情報64バイト)、当該データ長のTSパケットを受信する度に、書き込み状態にあるセグメントの数は、256個増加する。
さて、データ受信装置200において、予めに設定されているデータ読み出し開始条件が満たされると、記憶部10に記憶されているデータの読み出し処理が開始される。
データ読み出し開始条件としては、たとえば、記憶部10にデータ記憶されており、データ記憶状態にあるセグメント数(以下、データ残量とする)が、所定値になった場合がある。ここで、所定値としては、たとえば、記憶部10の記憶容量の半分に設定することができる。
データ読み出し開始条件が満たされたときの、記憶部10からのデータの読み出し処理は、以下のようにして行われる。
まず、データ読み出し開始条件が満たされると、データ読み出しタイミング生成部30が、記憶部10に対して、データ読み出しタイミング信号を出力する。
記憶部10が、当該データ読み出しタイミング信号を受信する。すると、記憶部10は、現在、記憶部10において設定されている読み出しアドレスに対応するセグメントからデータを読み出す。そして、当該データの読み出しが完了すると、記憶部10は、次にデータが読み出されるべきセグメントに対応する読み出しアドレスを設定し直す。
データ読み出し処理において、まずはじめに、時刻情報を読み出す。
したがって、セグメントのデータ長が8ビットで、今読み出されるべき時刻情報が4バイトの場合には、当該読み出し処理において、4バイトのデータが読み出される(図2の時刻情報の部分)。
次に、記憶部10から読み出された時刻情報は、時刻情報分離部20に入力される。
次に、時刻情報分離部20は、入力された時刻情報を比較部31へと送信する。
ところで、タイマ32は、データ受信装置200に内蔵されたクロックに基づいて、内部時刻を生成する。また、タイマ32は、データ送信装置100のタイマ3と同期しているものとする。
また、タイマ32は、データ読み出し開始条件が満たされ、記憶部10からのデータの読み出し処理が開始されると、時刻の計測を開始する。このとき、タイマ32の初期値としては、読み出し開始条件を満たしたときに記憶部10から読み出された、最初のTSパケットの先頭4バイトに付加された時刻情報の時刻が設定される。
さて、タイマ32の出力(内部時刻)が、比較部31に入力されると、比較部31は、上記において入力された時刻情報と、タイマ32の内部時刻とを比較する。そして、比較部31は、時刻情報が内部時刻と等しくなった場合に、制御信号を制御部33に出力する。
今の場合、内部時刻が最初の時刻情報の時刻に初期設定されていることから、内部時刻は、時刻情報と等しくなっている。したがって、比較部31は、制御部33に対して制御信号を出力する。
データ読み出しタイミング信号が入力されると、記憶部10は、TSパケットを読み出す。TSパケットが188バイト、1回に4バイト読み出すとすれば、47回の読み出しを行う。
読み出されたデータは、時刻情報分離部20に入力される。時刻情報分離部20は、記憶部10から入力された信号を出力する。
制御部33では制御信号が入力されると、記憶部10にデータ読み出しタイミング信号を出力する。記憶部10はデータを出力すると、制御部33に対して読み出し完了信号を出力する。
読み出し完了信号を受信した制御部33は、有効信号を出力する。制御部33は、一度、比較部31から制御信号を受け取ると、1パケット分のデータのデータ読み出しタイミングを出力する。
1パケットは188バイト、1回に読み出しが4バイトなので、47回読み出しタイミング信号を出力する。
1回の読み出し毎に、データ読み出しアドレスを次のデータアドレスに更新する(具体的には、アドレスに「1」を加える)。
最後のデータ読み出した後のアドレス読み出しアドレスは、次のTSパケットに付随した時刻情報のアドレスに更新する。
TSパケット再生装置では、時刻情報分離部20で分離されたTSパケットの本体部分が、入力されてきても、有効信号が入力されない限り、当該TSパケットの本体部分を取り込まない。しかし、一度、有効信号がTSパケット再生装置に入力されると、当該TSパケット再生装置は、有効信号の期間のみ有効なデータとして、当該TSパケットの本体部分を取り込む。
その後、制御部33は、記憶部10に制御信号を送る。記憶部10からは、次の時刻情報が出力され、時刻情報分離部20に入力する。
記憶部10は読み出し処理が完了した後、読み出し完了信号を制御部33に対して出力する。しかし、制御部33は、時刻情報の読み出しに対する読み出し完了信号に対しては、有効信号を出力しない。
時刻情報分離部20は、上記と同様に、送信されてきた時刻情報を比較部31に出力する。
比較部31には、上記で分離された時刻情報が入力される。そして、比較部31では、タイマ32の内部時刻が、入力してきた時刻情報と等しくなるまで、制御部33に制御信号を出力しない(通常、時刻情報が入力してきた時点では、当該時刻情報の時刻に対して、内部時刻の方が小さい)。また、制御部33においても、制御部33から制御信号が入力されるまで、記憶部10に対してデータ読み出しタイミング信号を出力しない。
よって、タイマ32の内部時刻が、比較部31に入力されてきた時刻情報の時刻に達していない状態においては、記憶部10から新たに時刻情報とTSパケットが読み出されることはない。
しかし、タイマ32の内部時刻が増加していくと、タイマ32の内部時刻と比較部31に入力されてきた時刻情報の時刻とが、等しくなる。
タイマ32の内部時刻と入力されてきた時刻情報とが等しくなると、比較部31は、制御部33に対して制御信号を出力する。そして、制御信号を受信した制御部33は、データ読み出しタイミング信号を記憶部10に対して出力すると同時に、有効信号を上述のTSパケット再生装置に対して出力する。
記憶部10は、データ読み出し制御信号を受信すると、次に読み出されるべき、時刻情報が付随する一のTSパケットを、時刻情報分離部20に対して出力する。
また、有効信号を受信したTSパケット再生装置は、有効信号が入力されてくる期間のみ、時刻情報分離部20から出力されるTSパケットの本体部分を取り込む。
以下、上記まで動作を繰り返し行う。
ここで、TSパケットに付随する時刻情報は、データ送信装置100のタイマ3の出力値である。また、データ受信装置200のタイマ32は、当該タイマ3と同期している。よって、制御部33から出力される有効信号は、時刻情報付加部2がタイマ3の出力値をTSパケットに付加する間隔で、生成される。
したがって、有効信号の出力間隔は、データ送信装置100に入力されたTSパケットの入力間隔と同じである。つまり、時刻情報分離部20において分離された各TSパケットの本体部分を、前記有効信号の出力間隔で取り出したとする。すると、データ送信装置100に入力された各TSパケットのパケット間隔と、データ受信装置200から出力される、対応する各TSパケットのパケット間隔が等しくなる(図3の上段および下段参照)。
以上までが、ネットワーク300上において、TSパケットに付随した時刻情報に誤りが発生しないで、当該TSパケットがデータ受信装置200に入力されてきた場合である。
しかし、たとえば、データ送信装置100とデータ受信装置200との間に、壁などの障害物があったとする。そうすると、ネットワーク300に無線LANが含まれているので、当該壁の影響で受信状態が悪くなる。よって、ネットワーク300上において、TSパケットに付随する時刻情報に誤りが発生する可能性が高くなる。そして、当該時刻情報に誤りが発生したTSパケットを、データ受信装置200が受信することになる。
時刻情報に誤りが発生した場合、当該時刻情報が付随するTSパケットのTSパケット再生装置での復元されないばかりでなく、記憶部10からは、後続のTSパケットも読み出されなくなる。
この場合、記憶部10の記憶容量は有限なので、記憶部10内のデータが読み出される前に、データの上書きがされる(オーバーフロー)現象が発生する。当該オーバーフロー現象が発生すると、TSパケットが失われる。以下に詳細に説明する。
図4に、記憶部10に書き込んだTSパケット数の時系列的変化と、読み出したTSパケット数の時系列的変化を示す。図4において、横軸は時間であり、縦軸はTSパケット数である。また、図4(a)は、時刻情報に誤りが発生しなかった場合である。また、図4(b)は、データ送信装置100が2番目に出力したTSパケット(以下、パケットTS2と称する)に付随する時刻情報に誤りが発生した場合である。
なお、図4において、書き込んだTSパケット数の変化を示す折線と、読み出したTSパケット数の変化を示す折線との、同時刻における差は、当該時刻における記憶部10に記憶されているデータのデータ残量を示している。
また、上述のとおり、データ読み出し開始条件は、記憶部10の記憶容量の半分に設定している。よって、図4に示すように、書き込んだTSパケット数が記憶部10の記憶容量の半分に達した時点で、読み出し処理が開始されている。
図4から分かるように、(a)では、記憶データ残量は、所定の範囲内で変動し、データ残量が増加し続けることは無い。
しかし、図4(b)では、パケットTS2の時刻情報が誤っているので、タイマ32の内部時刻とパケットTS2に付随する時刻情報とが等しくならない事態が発生する。そうすると、パケットTS2以降の後続のTSパケットが、記憶部10から読み出されなくなる。したがって、図4(b)が示すように、データ残量が増大し続ける。
ところが、記憶部10の容量は有限なので、パケットTS2が読み出されないと、新しいTSパケットが書き込まないか、または、まだ読み出されていないTSパケットが後続のTSパケットにより上書きされてしまう(オーバーフロー現象が発生する)。
このように、TSパケットに付随する時刻情報に誤りが発生すると、いずれの場合にも(新しいTSパケットが書き込まないか、またはオーバーフロー現象のいずれの場合にも)TSパケットデータが失われてしまう。
したがって、TSパケットに付随する時刻情報の誤りを検出し、記憶部10のオーバーフローを回避することが重要となる。本発明は、当該オーバーフロー現象を防止するために成されたものである。
そこで、本実施の形態に係るデータ受信装置200では、当該オーバーフロー現象を回避するために、以下のようにして、時刻情報の誤りを検出している。以下、本実施の形態に係る時刻情報の誤りの検出方法について説明する。
図5は、時刻情報に誤りが発生した場合と、誤りが発生しなかった場合の記憶部10に記憶されているデータのデータ残量の時系列的変化を示す。図5において、縦軸がデータ残量であり、横軸が時間である。
図5から分かるように、データ受信装置200が受信したTSパケットにおいて、誤りが発生した時刻情報が付随するTSパケットが無かった場合には、データ残量は、所定の範囲内で変動するが、データ残量の平均値は一定である。
ところが、データ受信装置200が受信したTSパケットにおいて、誤りが発生した時刻情報が付随するTSパケットが含まれている場合には、当該誤りが発生した時刻情報が付随するTSパケットが、記憶部10から読み出されるまで、データ残量は増加し続ける。
なお、図5において、当該データ残量の増加は、動作を分かり易くするため、直線的に描いている。しかし、実際には、入力されるTSパケットの瞬間レートが異なるので、直線的にはならない。
そこで、本実施の形態では、時刻情報に誤りが発生した場合には、データ残量が時系列的に増加していくことを利用して、時刻情報に誤りの発生を検出する。以下、記憶部10に記憶されているデータのデータ残量から、時刻情報の誤りを検出する方法について説明する。
まず、図1で示した記憶状態検出部40が、記憶部10のデータ残量を計算する。
具体的に、記憶状態検出部40では、記憶部10おいて、最後に書き込み処理が行われたセグメントのアドレスと、最後に読み出し処理が行われたセグメントのアドレスから、記憶部10のデータ残量を計算することができる。
たとえば、記憶部10のメモリは、図6に示すように、8個のセグメントで区画されていたとする(実際には、これ以上の数のセグメントで区画されているが、説明の簡略化のため8個とする)。なお、最下段のセグメントのアドレス「1」とし、上段に行くに連れてセグメントアドレスは、「1」増加する。そうすると、最上段のセグメントのアドレスは「8」である。
上記のようにアドレスが付されたセグメントを有するメモリにおいて、今、図6に示すように、最後に書き込み処理が行われたセグメントのアドレスが「7」であるとする。また、最後に読み出し処理が行われたセグメントのアドレスが「3」であるとする。
そうすると、データ残量は、(最後に書き込み処理が行われたセグメントのアドレス)−(最後に読み出し処理が行われたセグメントのアドレス)、つまり「7−3」となり、データ残量は、「4」となる。
また、メモリの最上段まで書き込みが終了し、再びメモリの最下段から書き込み処理が行われたとする。この場合において、図7に示すように、最後に書き込み処理が行われたセグメントのアドレスが「3」であるとする。また、最後に読み出し処理が行われたセグメントのアドレスが「6」であるとする。
そうすると、データ残量は、(メモリアドレスの最大値)+((最後に書き込み処理が行われたセグメントのアドレス)−(最後に読み出し処理が行われたセグメントのアドレス))、つまり「8+3−6」となり、データ残量は、「5」となる。
上記の考察から分かるように、(最後に書き込み処理が行われたセグメントのアドレス)>(最後に読み出し処理が行われたセグメントのアドレス)の場合には、データ残量=(最後に書き込み処理が行われたセグメントのアドレス)−(最後に読み出し処理が行われたセグメントのアドレス)である。
また、(最後に書き込み処理が行われたセグメントのアドレス)<(最後に読み出し処理が行われたセグメントのアドレス)の場合には、データ残量=(メモリアドレスの最大値)+((最後に書き込み処理が行われたセグメントのアドレス)−(最後に読み出し処理が行われたセグメントのアドレス))である。
上記計算式を用いることにより、有限の要領であるメモリに対しても、セグメントのアドレスを用いて、データの残量を求めることができる。
さて、記憶状態検出部40が記憶部10のデータ残量を検出したなら、記憶状態検出部40は、当該検出結果を時刻情報誤り検出部50に対して出力する。図8は、時刻情報誤り検出部50の具体的な構成例である。
図8に示している様に、時刻情報誤り検出部50は、しきい値設定部51と誤り判定部52とで構成されている。
誤り判定部52では、入力されてきた記憶部10のデータ残量と、所定のしきい値とを比較し、時刻情報に誤りが発生したか否かの判定を行う。ここで、所定のしきい値は、固定値(たとえば、データ残量の平均値に一定の値を加算した値)であっても良い。
しかし、しきい値設定部51において、入力されてくるデータ残量から動的にしきい値を設定しても良い。この場合、しきい値設定部51で計算されたしきい値と、データ残量とが誤り判定部52へ入力され、両者に基づいて、時刻情報の誤りが判定される。
なお、所定のしきい値は、時刻情報に誤りが発生しなかった場合に想定される、データ残量ピーク値の最大値以上に設定する必要がある。
さて、誤り判定部52における比較処理を行った結果、データ残量が所定のしきい値を超えた場合には、当該誤り判定部52は、時刻情報に誤りが発生していると判定する。
次に、時刻情報に誤りが発生していると判定した場合の処理について説明する。なお、以下では、データ送信装置100から2番目に出力されたTSパケット(以下、パケットTS2と称する)に付随する時刻情報にのみ、誤りが発生したとして説明を行う。
まず、時刻情報誤り検出部50が、パケットTS2に付随する時刻情報に誤りが発生したなら、制御部33にその旨を通知する。
記憶部10にデータ読み出し信号を出力し、記憶部10は、TSパケットデータを4バイトずつ、時刻情報分離部20に出力する。TSパケットは188バイトなので、記憶部10は、47回の読み出し処理を行う。
記憶部10は、読み出しが実行される度に、読み出しアドレスを更新する。47回の読み出しが完了したら、次のTSパケットデータの読み出しアドレスに設定する。
また、記憶部10は、1回の読み出しが終わる毎に、読み出し完了信号を制御部33に対し出力する。制御部33は、読み出し完了信号を受信すると、TSパケットを読み出している場合には、有効信号を出力する。
さらに、制御部33は、記憶部10に対して、データ読み出しタイミング信号を出力する。当該データ読み出しタイミング信号を受信した記憶部10は、読み出しアドレスが次のTSパケットの時刻情報にセットされているので、次のTSパケット(3番目のTSパケット)に付随している時刻情報をを時刻情報分離部20に対して出力する。
時刻情報分離部20は、当該時刻情報を比較部31に対して出力する。
さて、比較部31では、下記の条件を満たす場合に、制御部33に対して制御信号を出力する。
時刻情報≦内部時刻(タイマ32の出力信号) (1)
ところで、通常は、当該時刻情報と内部時刻とは等しい場合に(時刻情報に比べて内部時刻が小さい場合には、内部時刻の計測が進むのを待って)、比較部31は、制御信号を制御部33に対して出力する。
しかし、パケットTS2に付随する時刻情報に誤り発生している場合には、データ残量がしきい値レベルに達してもなお、内部時刻が、パケットTS2に付随する時刻情報と等しくならない。
このとことから、パケットTS2に付随する時刻情報は、本来の時刻T2より大きな時刻T2’に変化するような誤り発生していることが分かる。つまり、時刻情報誤り検出部50により、時刻情報の誤りを検出したときの内部時刻がTeであるとすると、T2<Te<T2’の関係が成立することになる。
ここで、誤りが発生していないときには、各TSパケットに付随する時刻情報は、以下の関係がある。
T1<T2<T3<・・・<Tn<Tn+1 (2)
ここで、時刻Tiは、i番目のTSパケットに付随している時刻情報の時刻である。また、内部時刻Teは、T2より大きな値であり、たとえば、時刻T7と時刻T8との間の値であるとする。
そこで、比較部31での動作に話を戻すと、今、比較部31には、3番目のTSパケットに付随していた時刻情報(時刻T3)が入力されてきている。そして、TS2に付随する時刻情報に誤りが発生していることを検出した内部時刻は、時刻Te(T7<Te<T8)である。
そうすると、時刻T3は、式(1)の関係を満たすので、比較部31は、制御信号を制御部33に対して出力する。当該制御信号を受信した制御部33は、記憶部10に対して、データ読み出しタイミング信号を出力すると伴に、TSパケット再生装置(図示せず)に対して、有効信号を出力する。
1回で4バイト読み出すので、記憶部10に47回の読み出しタイミング信号を出力する。この後に、データ読み出しアドレスを、次の時刻情報のアドレスに更新する。
有効信号を受信したTSパケット再生装置は、3番目のTSパケットを取り込む。また、4番目のTSパケットの時刻情報を時刻情報分離部20に対して出力する。
時刻情報分離部20において、4番目のTSパケットから分離された時刻情報(時刻T4)は、比較部31へと出力される。なお、上記仮定(T7<Te<T8)より、当該時刻T4を示す時刻情報についても、式(1)の関係を満たすので、比較部31は、制御信号を制御部33に対して出力する。
以上まで動作を繰り返し行う。
なお、時刻T8を示す時刻情報が比較部31に送られる頃には、タイマ32の内部時刻は、時刻Teよりさらに進んでいる。よって、時刻T8を示す時刻情報についても、式(1)の関係が成立していることもある。したがって、比較部31に送られてくる時刻情報が示す時刻が、タイマ32が計測する内部時刻に追いつくまで、上記処理が繰り返し行われる。
さて、9番目のTSパケットに付随する時刻情報(時刻T9)が比較部31に送られてきたとする。そして、当該時刻T9を示す時刻情報は、式(1)の関係を満たさず、時刻T9に比べてタイマ32の内部時刻の方が小さかったとする。
この場合には、通常の動作に戻り、タイマ32が計測する内部時刻が進み、当該内部時刻が、時刻T9に等しくなった時点で、比較部31は、制御信号を制御部33に対して出力する。
以上により、2番目のTSパケットから8番目までのTSパケットまでは、断続的に、TSパケット生成装置へと出力される。なお、このとき、当該各TSパケット間の間隔は、データ送信装置100に入力された各TSパケット間の間隔とは、異なる。
しかし、9番目のTSパケット以降のTSパケットに関しては、正常にTSパケット再生装置へと出力される。したがって、データ受信装置200から出力される、当該9番目以降のTSパケット間の間隔は、データ送信装置100に入力された各TSパケット間の間隔と同じになる。
以上のように、本実施の形態に係わるデータ受信装置200は、記憶部10に記憶されているデータのデータ残量から、TSパケットに付随する時刻情報の誤りを検出している。そして、時刻情報に誤りがある場合は、タイマ32が計測する内部時刻に関係なく、記憶部10から次のTSパケットを読み出している。
したがって、時刻情報に誤りが発生したとしても、記憶部10がオーバーフローすることを防止できる。
また、比較部31は、タイマ32が計測する内部時刻と、入力されてくる時刻情報との大小関係に基づいて動作している。したがって、データ受信装置200を構成する各部分のうち、比較部31の動作に関連する部分の構成を簡略することができ、当該データ受信装置200全体の構成は、簡単な構成となる。
なお、上記では、データ送信装置100のタイマ3およびデータ受信装置200のタイマ32は、無限計測型のタイマ(当該タイマは、時刻を増加する方向にのみ計測し続ける)であることを想定している。当該想定の下であれば、比較部31での時刻情報とタイマ32の計測時刻との比較方法は、上式(1)でも問題は無い。
しかし、実際に用いられるタイマ3,32等は、有限計測型のタイマ(当該タイマは、所定の期間を周期的に時刻を計測する)である。つまり、計測される時間が最大になれば、再び0から計測が始まる。このような、タイマ3,32等を用いる場合には、比較部31は、以下の方法により、時刻情報が示す時刻とタイマ32の内部時刻とを比較する必要がある。
以下、タイマ32等が有限である場合について、図9に基づいて説明する。図9は、有限計測型のタイマを概念的に描いたものである。
時刻情報に誤りが発生していない場合には、比較部31に送られてくる時刻情報の時刻(図9では、時刻Tn)は、タイマ32の内部時刻より若干進んだ時刻となっている。ここで、タイマ32の周期が、時間TMAXであるとする。つまり、タイマ32が時間TMAXまで時刻を計測すると、計測時刻はリセットされ、ゼロからの計測が再開される。また、時間TMAXは、TSパケット間の間隔に比べて十分長い値である。
ところで、時刻Tn−1を示す時刻情報とタイマ32の内部時刻とを比較して、両者が等しくなって、次の時刻情報(時刻Tn)が比較部31に入力されてくる。したがって、通常、時刻Tnは、タイマ32の内部時刻より時間TMAX/2、以上進んでいることは無い。
ところが、時刻情報に誤りが発生したとする。このとき、当該誤りの発生を検出するまで次のTSパケットは記憶部10から読み出されず、また、タイマ32の内部時刻は計測し続ける。そうすると、仮に2番目のTSパケットに誤りが発生したとすると、3番目以降のTSパケットに付随する時刻情報おいては、時刻情報が示す時刻がタイマ32の内部時刻に比べて、遅れるものがでてくる。
つまり、3番目以降のTSパケットに付随する時刻情報について、図9の領域Z内に存するものが生じる。ここで、以前の比較処理から時刻情報の誤りを検出するまでの時刻が、時間TMAX/2よりも小さいとする。すると、タイマ32の内部時刻に対して、比較部31に送られてくる時刻情報の時刻が、時間TMAX/2、以上遅れることはあり得ない。
そうすると、領域Zを内部時刻から時間TMAX/2の範囲に設定すれば、領域Z内には、常に、誤りが発生したために読み出されずにいた、TSパケットに付随する情報時刻のみが含まれることになる。
以上により、比較部31では、時刻情報が示す時刻が領域Z内に存すると判定した場合には、比較部31は、制御部33に制御信号を送信する。
これに対して、時刻情報が示す時刻が領域Z外に存すると判定した場合には、タイマ32の内部時刻が進むのを待つ。そして、当該時刻情報が示す時刻とタイマ32の内部時刻とが等しくなれば、比較部31は、制御部33に制御信号を送信する。
比較部31でのタイマ32の内部時刻と時刻情報が示す時刻との対比を上記のようにすれば、本実施の形態に係るデータ受信装置200は、有限計測型のタイマであるタイマ32等にも対応できる。
<実施の形態2>
本実施の形態では、時刻情報誤り検出部50が、記憶部10に記憶されているデータのデータ残量の変動に応じて、しきい値を動的に設定する場合について説明する。
図8で示したように、時刻情報誤り検出部50は、しきい値設定部51等を有している。図10は、本実施の形態に係る、しきい値設定部51の内部構造を示したブロック図である。
図10に示すように、しきい値設定部51は、第一の平均回路51a、減算回路51b、絶対値計算回路51c、加算回路51d、第二の平均回路51e、および乗算回路51fにより構成されている。また、各回路は、上記の順に直列的に接続されている。
次に、本実施の形態に係る、しきい値設定部51の動作について説明する。
ここで、図11は、記憶状態検出部40から出力された、記憶部10のデータ残量の時系列的変化の一部を示す図である。図11において、横軸は、時間であり、縦軸は、データ残量である。
さて、図10に示した、第一の平均回路51aに図11に示したデータ残量信号が入力される。すると、第一の平均回路51aは、当該データ残量の平均値(第一の平均値と称する)を計算する。当該計算結果を、図11に併せて示す。なお、当該第一の平均値は、実際には若干変動する。しかし、図11では、説明を簡単にするために略直線で描いている。
減算回路51bには、図11で示したデータ残量信号が入力されると伴に、第一の平均回路51aの計算結果も入力される。そして、減算回路51bでは、入力されてきたデータ残量信号と入力されてきた第一の平均値との差を計算する。これにより、第一の平均値を基準としたデータ残量の変化の様子を知ることができる。当該計算結果を図12に示す。減算回路51bは、当該計算結果を絶対値計算回路51cへと出力する。
前段の出力結果を受信した絶対値計算回路51cは、図12で示した第一の平均値に対するデータ残量の変化の様子を示す信号の絶対値を計算する。これにより、第一の平均値を基準としたデータ残量の変化の大きさの様子を知ることができる。当該計算結果を図13に示す。絶対値計算回路51cは、当該計算結果を加算回路51dへと出力する。
加算回路51dは、第一の平均回路51aの計算結果と、絶対値計算回路51cの計算結果とを入力する。そして、加算回路51aでは、入力されてきた両計算結果を加算する。これにより、図14に示す波形が生成される。当該計算結果を第二の平均回路51eへと出力する。
第二の平均回路51eでは、加算回路51dの計算結果の平均値(第二の平均値と称する)を計算する。当該計算結果を、図14に併せて描かれている。当該一連の演算処理からも分かるように、第二の平均値は、第一の平均値に対するデータ残量の変化の大きさが大きいほど、大きくなる。第二の平均回路52eは、上記計算結果を乗算回路51fへと出力する。
最後に、乗算回路51fでは、受信した第二の平均値に対して、所定の値(1より大きな値)を乗算する。そして、当該乗算結果をしきい値とし、図8に示した誤り判定部52へと出力する。なお、誤り判定部52へと出力されるしきい値の様子を、図14において併せて描いてる。
動的に、しきい値を設定する方法は上記に限るものではない。しかし、上述のように、第一の平均値に対するデータ残量の変化の大きさに応じて、しきい値を設定することにより、最新のデータ残量の変化の様子から、適正なしきい値を動的に設定することができる。
また、図10で示した構成は、一例である。第一の平均値に対するデータ残量の変化の大きさに応じて、しきい値を設定することができるなら、他の構成を採用してもかまわない。
<実施の形態3>
実施の形態1に係る記憶状態検出部40は、記憶部10おいて、最後に書き込み処理が行われたセグメントのアドレスと、最後に読み出し処理が行われたセグメントのアドレスから、記憶部10のデータ残量を計算していた。
しかし、本実施の形態に係る記憶状態検出部40は、記憶部10おいて、書き込み処理が行われた回数と、読み出し処理が行われた回数とから、記憶部10のデータ残量を計算する。
具体的に、本実施の形態に係る記憶状態検出部40は、記憶部10に一のTSパケット分のデータの書き込みが完了した場合は、「1」を加算する。また、記憶部10に一のTSパケット分のデータの読み出しが完了した場合は、「1」を減算する。
たとえば、記憶部10への一のTSパケット分のデータの書き込み回数と読み出し回数とが、同じであるとする。この場合、前記両回数の差は、「0」となる。このことは、記憶部10におけるデータ残量が「0」であること意味する。
また、一度もTSパケットの読み出しが行われないなら、一のTSパケット分のデータを書き込んだ回数が、記憶部10におけるデータ残量となる。
以上のように、本実施の形態に係る記憶状態検出部40は、記憶部10へのTSパケットの書き込み処理が行われた回数と、読み出し処理が行われた回数とに基づいて、記憶部10のデータ残量を計算している。
したがって、本実施の形態に係る記憶状態検出部40は、加算器等で簡単に構成できるので、実施の形態1に係る記憶状態検出部40よりも、回路構成の複雑化を防止することができる。
<実施の形態4>
図15は、本実施の形態に係るデータ受信装置200の構成を示すブロック図である。
図1と図15との比較から分かるように、本実施の形態に係るデータ受信装置200は、実施の形態1に係るデータ受信装置200の構成に、タイマ34、タイマ比較部35、およびタイマ切り替え部36を、さらに加えたものである。
タイマ34は、タイマ32よりも内部時刻が早く進む。このために、内部時刻を計測するクロックの周波数を、タイマ32よりもタイマ34の方を高くする。具体的には、使用するクロック発信器を2つ用い、タイマ34の方の発信周波数を高くする。
また、時刻を計測するクロック発信器を1つにした場合には、タイマ34の方は、所定間隔ごとに内部時刻の増分を多くする。これにより、タイマ34の内部時刻をタイマ32の内部時刻より、早く進めることができる。
タイマ比較部35は、タイマ32の内部時刻とタイマ34の内部時刻とを比較する装置である。
また、タイマ切り替え部36は、比較部31とタイマ32との接続関係と、比較部31とタイマ34との接続関係とのどちらか一方を、択一的に選択する(つまり、前記接続関係を切り替える)装置である。
以下、本実施の形態係るデータ受信装置200の動作について説明する。
まず、前提として、タイマ切り替え部36により、比較部31は、タイマ32に接続されているとする。これにより、比較部31には、タイマ32の内部時刻が入力される。また、本実施の形態においても、2番目のTSパケットに付随する時刻情報のみ、誤りが発生しているとする。
読み出し開始条件を満たされると、記憶部10から1番目のTSパケット(当該TSパケットには、時刻情報が付随している)の時刻情報が読み出される。そして、当該TSパケットは、時間情報分離部20へと入力される。
タイマ32には、当該時刻情報の時刻がセットされる。ここで、タイマ32は、以後、当該1番目のTSパケットに付随していた時刻情報が示す時刻から、内部時刻を計測し続ける。
これに対して、時刻情報誤り検出部50が時刻情報の誤りの発生を検出するまでの間で、比較部31に入力される時刻情報とタイマ32の内部時刻とが等しい場合には、タイマ34には、そのときのタイマ32の内部時刻(つまり、今比較部31で比較の対象となっている時刻情報の時刻)がセットされる。また、タイマ34は、時刻情報誤り検出部50が、時刻情報の誤りの発生を検出するまで、内部時刻の計測を開始しない。
さて、1番目のTSパケットから分離された時刻情報は、比較部31に送られる。比較部31では、タイマ32の内部時刻と当該送られてきた時刻情報が示す時刻との比較を行う。そして、両者が等しい場合には、比較部31は、制御部33に対して制御信号を出力する。
今の場合、タイマ32の内部時刻は、1番目のTSパケットから分離された時刻情報の時刻にセットされていることから、比較部31は、制御部33に対して制御信号を出力する。
制御信号を受信した制御部33は、記憶部10に対してデータ読み出しタイミング信号を出力する。記憶部10は、読み出しアドレスの4バイトのデータを、時刻情報分離部20に出力する。記憶部10は、制御部33に対して読み出し完了信号を出力する。制御部33は、読み出し完了信号を受信すると、有効信号を出力する。
当該動作を47回繰り返して実行することにより、1TSパケットデータ(188バイト)を時刻情報分離部20に出力する。
これにより、時刻情報分離部20が出力する1番目のTSパケットを、TSパケット再生装置は取り込む。また、記憶部10は、2番目のTSパケット(当該TSパケットには、時刻情報が付随している)の時刻情報を時刻情報分離部20に対して出力する。
さて、2番目のTSパケットを受信した時刻情報分離部20は、時刻情報とTSパケットの本体部とを分離し、分離した時刻情報を比較部31に対して出力する。そして、比較部31では、タイマ32の内部時刻と当該送られてきた時刻情報が示す時刻との比較を行う。
ここで、当該時刻情報には誤りが発生しており、時刻情報が示す時刻は、時刻T2から時刻T2’(T2<T2’)に変化しているとする。
なお、以下の説明では、時刻Tiは、i番目のTSパケットに付随す時刻情報の時刻であるとする。
そうすると、実施の形態1で説明した方法により、時刻情報誤り検出部50は、上記時刻情報の誤りの発生を検出する。そして、時刻情報の誤りを検出した時刻情報誤り検出部50は、制御部33に対して、時刻情報に誤りが発生していることを知らせる信号を出力する。上記信号を受信した制御部33は、データ読み出しタイミング信号を記憶部10に対して出力し、記憶部10が所定のデータを時刻情報分離部20に出力すると、記憶部10は、制御部33に読み出し完了信号を送る。制御部33は、読み出し完了信号を受信すると、TSパケット再生装置に対して有効信号とを出力する。
上記の処理を1パケットデータ分(例えば、47回)繰り返し行う。
また、時刻情報の誤りを検出した時刻情報誤り検出部50は、時刻情報に誤りが発生していることを知らせる信号を、タイマ34およびタイマ切り替え部36に対しても出力する。
なお、有効信号を受信したTSパケット再生装置は、2番目のTSパケットを取り込み、また、データ読み出しタイミング信号を受信した記憶部10は、3番目のTSパケットの時刻情報の読み出し処理を行う。
さて、本実施の形態に係るデータ受信装置では、時刻情報に誤りが発生していることを知らせる信号を受信したタイマ34は、内部時刻の計測を開始する。ここで、タイマ34には、1番目のTSパケットに付随していた時刻情報が示す時刻がセットされている。したがって、当該時刻からの計測となる。
なお、時刻情報誤り検出部50が時刻情報の誤りの発生を検出した時刻は、タイマ32の内部時刻で、時刻Teであるとする。
さらに、本実施の形態に係るデータ受信装置では、時刻情報に誤りが発生していることを知らせる信号を受信したタイマ切り替え部36は、比較部31とタイマ32との接続を切断し、比較部31とタイマ34とを接続する。
当該動作の様子を図16のグラフに示す。なお、タイマ32の内部時刻は、上記タイマの切り替え処理にかかわらず、時刻を計測し続ける。
図16において、左の縦軸は、タイマ32の内部時刻であり、右の縦軸は、タイマ34の内部時刻である。また、横軸は、外部時間である。また、図16中において、比較部31に接続されている期間は、実線で示し、比較部31に接続されていない期間は、点線で示している。
さらに、図16において、黒丸印は、タイマ32の内部時刻が比較部31に反映されているときに、タイマ32の内部時刻と時刻情報が示す時刻との比較処理が、無事に完了した時点を示す。また、黒角印は、タイマ34の内部時刻が比較部31に反映されているときに、タイマ34の内部時刻と時刻情報が示す時刻との比較処理が、無事に完了した時点を示す。
なお、白丸印は、2番目の時刻情報に誤りが発生していなければ、タイマ32の内部時刻が比較部31に反映されているときに、タイマ32の内部時刻と時刻情報が示す時刻との比較処理が、無事に完了したであろう時点を示す。
図16に示すように、タイマ32の内部時刻で、時刻Te(タイマ32の内部時刻表示で、T5<Te<T6)の時点で、時刻情報誤り検出部50が時刻情報の誤りの発生を検出したので、比較部31との接続を、タイマ32からタイマ34に切り替えられる。そして、タイマ34は、時刻T1からの内部時刻の計測を開始する。
なお、タイマ32よりタイマ34の方が早く進むので、図16において、タイマ32の内部時刻を示す直線の傾きより、タイマ34の内部時刻を示す直線の傾きの方が大きくなっている。
さて、タイマ切り替え部36の制御により、比較部31とタイマ34とが接続されると、比較部31では、タイマ34の内部時刻と3番目の時刻情報が示す時刻との比較を行う。そして、両時刻が等しくなれば、比較部31は、その旨を制御部33に知らせる。
そうすると、制御部33は、有効信号とデータ読み出しタイミング信号とを各々出力する。データ読み出しタイミング信号を受信した記憶部10は、4番目のTSパケットの時刻情報を時刻情報分離部20に対して出力する。以下、当該動作を繰り返し行い、2番目以降のTSパケットのデータ受信装置200内での処理を実行する。
ところで、タイマ34の内部時刻は、タイマ32の内部時刻より早く進むことことから、いずれ両タイマの内部時刻が等しくなる。図16では、タイマ32,34の内部時刻が時刻T8の時点で、両タイマの内部時刻が等しくなっている。
そこで、タイマ比較部35は、タイマ34の内部時刻がタイマ32の内部時刻と等しくなった時点で、タイマ切り替え部36にその旨を通知する。すると、タイマ切り替え部36は、比較部31とタイマ34との接続を切断する。そして、タイマ切り替え部36は、比較部31とタイマ32との接続を行う。
なお、当該切り替え作業に伴い、タイマ34の内部時刻の計測は停止する。
以後、比較部31では、タイマ32の内部時刻と当該比較部31に送られてくる時刻情報が示す時刻との比較を行う。そして、両時刻が一致するときには、比較部31は、制御信号を制御部33に対して出力する。さらに、このときのタイマ32の内部時刻(つまり、今比較の対象となっている時刻情報の時刻)を、タイマ34の内部時刻としてセットする(図16参照)。
以上のように、本実施の形態に係るデータ受信装置200では、時刻情報に誤りが発生したことを検出し、当該誤りが発生した時刻情報を付随していたTSパケットを強制的に、データ受信装置200から出力している。
さらに、誤りが発生したことにより読み出されずにいた、後続のTSパケットもタイマ34(当該タイマ34の内部時刻は、誤りが発生していた時刻情報の直前の時刻情報が示す時刻に設定されており、誤り発生を検出した時に、計測を開始する)の内部時刻を用いた比較部31での比較処理により、読み出すことができる。
したがって、実施の形態1に係るデータ受信装置200と同様に、記憶部10でのオーバーフロー現象の発生を防止することができる。
さらに、本実施の形態に係るデータ受信装置200では、タイマ34の内部時刻と比較部31に送られてくる時刻情報との比較処理に基づいて、TSパケットのデータ受信装置200からの出力を行っている。
したがって、TSパケット間の間隔は少し短くなるものの、データ受信装置200から出力されるTSパケット間の間隔は、データ送信装置100に入力された、対応するTSパケット間の間隔とほぼ同じとすることができる。
なお、タイマ34の内部時刻の計測は、タイマ3と同期しているタイマ32の内部時刻の計測の早さより少し早い。よって、上記のように、TSパケット間の間隔を完全には維持することはできない。しかし、当該誤差は、TSパケットを再生する上で許容される値とすることが可能である。
以上により、誤りが発生した時刻情報が付随していたTSパケットより後続のTSパケットを、TSパケット再生装置において、正常に再生させることができる。
なお、本実施の形態では、タイマ34の内部時刻が、タイマ32の内部時刻と等しくなった時点で、比較部31とタイマ34との接続関係を、比較部31とタイマ32との接続関係に戻した。
しかし、タイマ34の内部時刻が、タイマ32の内部時刻と等しくなり、さらに、タイマ34の内部時刻が、タイマ32の内部時刻を超えた時点で、比較部31とタイマ34との接続関係を、比較部31とタイマ32との接続関係に戻しても良い。
<実施の形態5>
実施の形態1に係るデータ受信装置200では、記憶部10に記憶されているデータの残量を基に、時刻情報に誤りが発生していることを検出していた。そして、記憶部10でオーバーフロー現象が起こるのを事前に、防止していた。
しかし、本実施の形態に係る受信装置200は、前後の時刻情報から時刻情報に誤りが発生していることを検出する。そして、当該時刻情報の誤りを補正することにより、結果として、記憶部10でオーバーフロー現象が起こるのを防止する。
図17は、本実施の形態に係るデータ受信装置200の内部構成を示すブロック図である。
図1と図17との比較から分かるように、本実施の形態に係るデータ受信装置200は、記憶状態検出部40および時刻情報誤り検出部50を備えていない。しかし、本実施の形態に係るデータ受信装置200は、新たに、TSパケット記憶部60、時刻情報記憶部70、および時刻情報補正部80を、さらに備えている。なお、その他の構成は、実施の形態1に係るデータ受信装置200と、本実施の形態に係るデータ受信装置200とは同じである。
TSパケット記憶部60は、時刻情報分離部20で分離されたTSパケットの本体部分を記憶する装置である。
また、時刻情報記憶部70は、時刻情報分離部20で分離された時刻情報を複数個、記憶する装置である。
また、時刻情報誤り補正部80は、時刻情報記憶部70に記憶されている時刻情報のうち、いくつかの時刻情報を読み取る。そして、時刻情報誤り補正部80は、読み取った時刻情報を基に、一の時刻情報に誤りが発生しているか否かの判定を行う。時刻情報誤り補正部80が、当該一の時刻情報に誤りが発生していると判定したときには、当該一の時刻情報を補正する。
以下、本実施の形態に係るデータ受信装置200の動作について説明する。
まずはじめに、記憶部10からn個の、時刻情報が付随したTSパケットを順次、読み出し、時刻情報分離部20へと出力する。
時刻情報分離部20では、入力してきたTSパケットから順次、以下の処理を行う。
まず、時刻情報分離部20は、時刻情報とTSパケットの本体部分との分離処理を行う。そして、時刻情報分離部20は、分離したTSパケットの本体部分をTSパケット記憶部60に対して出力する。また、時刻情報分離部20は、分離した時刻情報を時刻情報記憶部70に対して出力する。
時刻情報記憶部70は、時刻情報分離部20から送られてくる時刻情報を順次記憶する。
次に、時刻情報補正部80は、時刻情報記憶部70から、連続する3個の時刻情報を読み出す。そして、時刻情報補正部80は、当該3個の時刻情報の大小関係から、2個目の時刻情報に誤りが発生しているか否かの判定を行う。
ところで、時刻情報に誤りが発生していなければ、後続の時刻情報ほど、大きな値となる。また、今、時刻情報補正部80が読み込んだ時刻情報が示す時刻が、時刻T(i−1)、T(i)、T(i+1)だとする。
そうすると、もし、時刻情報補正部80が、T(i−1)<Ti<T(i+1)、の大小関係を満たすと判断したなら、i番目の時刻情報(時刻Ti)には、誤りが発生していない判定することができる。
ところが、時刻情報補正部80が、T(i−1)<Ti<T(i+1)、の大小関係を満たさないと判断したとする。このときは、時刻情報補正部80は、i番目の時刻情報(時刻Ti)に誤りが発生している判定する。そして、時刻情報補正部80は、以下に示す計算を行う。
T(i)=F(T(i−1)、T(i+1))
ここで、関数F(x、y)は、変数xとyの関数でることを示す。たとえば、単純に、関数F(T(i−1)、T(i+1))=(T(i−1)+T(i+1))/2、とすることができる。
次に、時刻情報補正部80が上記計差結果に基づいて、時刻情報記憶部70に記憶されているi番目の時刻情報の補正(書き換え)を行う。なお、時刻情報補正部80が、i番目の時刻情報に誤りが発生していないと判断したときには、時刻情報補正部80は、時刻情報記憶部70に記憶されているi番目の時刻情報に対しては、何の処理も施すことは無い。
このように、時刻情報補正部80は、順次、時刻情報記憶部70から連続する所定の数(本実施の形態では、3個)の時刻情報を読み出す。そして、時刻情報補正部80は、当該読み出した時刻情報を基に、時刻情報記憶部70に記憶されている各時刻情報に対して、必要ならば、補正(書き換え)を行う。
さて、時刻情報記憶部70に記憶されている時刻情報のうち最先の時刻情報が、時刻情報補正部80による誤り発生の有無の検査および補正が施されているなら、時刻情報記憶部70は、当該時刻情報を比較部31に対して出力する。
比較部31では、送られてきた時刻情報が示す時刻と、タイマ32の内部時刻とを比較する。そして、時刻情報が示す時刻がタイマ32の内部時刻と等しいなら(もしくは、時刻情報の時刻≦タイマ32の内部時刻、の関係を満たすなら)、比較部31は、制御部33に対して制御信号を出力する。さらに、比較部31は、次の時刻情報を時刻情報記憶部70から受け取る。
制御信号を受信した制御部33は、記憶部10にデータ読み出しタイミング信号を出力する。記憶部10は、時刻情報分離部20に4バイトのデータを出力する。その後、記憶部10は、制御部33に読み出し完了信号を出力する。読み出し完了信号を受信した制御部33は、データ受信装置200の後段に位置するTSパケット再生装置(図示せず)に対して、有効信号を出力する。
時刻情報分離部20は、上記処理で読み出したTSパケットを、直ちに出力する。
一方、188バイトのTSパケットの読み出しが終わると、制御部33は、データ読み出しタイミング信号を記憶部10に送信する。記憶部10は、次のTSパケットに付随した時刻情報をを時刻情報分離部20に対して出力する。
記憶部10は、制御部33に対して読み出し完了信号を出力するが、制御部33は有効信号を出力しない。
なお、比較部31では、タイマ32の内部時刻が、受け取った時刻情報が示す時刻と等しくなる(または、時刻情報の時刻≦タイマ32の内部時刻、の関係を満たす)まで待ち、両時刻が等しくなったら(または、時刻情報の時刻≦タイマ32の内部時刻、の関係を満たしたら)上記と同じ処理を行う。
以下、上記までの処理を繰り返し行う。
以上のように、本実施の形態に係るデータ受信装置200は、所定の数の時刻情報を基に、時刻情報に誤りが発生しているか否かの判定を行い、さらに、時刻情報に誤りが発生していると判断したときには、当該誤りが発生している時刻情報の前後の時刻情報に基づいて、誤りが発生している時刻情報の補正を行っている。
したがって、データ受信装置200は、ネットワーク300上において時刻情報に誤りが発生すること無く各TSパケットが送られてきたときと、同じ動作を行うことができる。よって、記憶部10でのオーバーフロー現象を防止することができる。
また、本実施の形態に係るデータ受信装置200は、時刻情報の大小関係で誤りを検出している。さらに、当該データ受信装置200では、誤りが発生した時刻情報を、当該誤りが発生した時刻情報の前後の時刻情報を用いて補正している。したがって、時刻情報の誤り検出と補正を簡単に行うことができる。
なお、無限計測型のタイマ(当該タイマは、時刻を増加する方向にのみ計測し続ける)を用いた場合には、誤りが発生しているi番目の時刻情報(時刻Ti)の誤りを、T(i−1)<Ti<T(i+1)、の大小関係を基に判断することができる。
しかし、有限計測型のタイマ(当該タイマは、所定の期間を周期的に時刻を計測する)を用いた場合には、誤りが発生しているi番目の時刻情報(時刻Ti)の誤りを、T(i−1)<Ti<T(i+1)、の大小関係を基に判断することができなくなる場合がある。
たとえば、図18に示すように、時間TMAXを周期的に計測する有限計測型のタイマを、データ受信装置200に採用したとする。当該タイマは、0から時間TMAXまでの時刻の計測を行えば、再び時刻は0に戻り、時刻0からの計測が再開される。
図18に示すように、当該有限計測型タイマを採用したなら、たとえ時刻情報に誤りが生じてなくとも、T(i−1)<Ti<T(i+1)の関係を満たさなくなるケースが生じる。
したがって、有限計測型タイマを用いた場合には、時刻情報に誤りが発生しているか否かの判断の手法(関係式)に変更を加える必要がある。
また、i番目の時刻情報に誤りが発生していると判断したときに、時刻情報記憶部70に記憶されている当該時刻情報の補正(書き換え)を行う。しかし、有限計測型のタイマを採用する場合には、補正(書き換え)の際に用いられる関係式F(T(i−1)、T(i+1))も適切に決定する必要がある。
なお、本発明では、通信方式として、IEEE1394や無線LANを用いる場合について説明した。しかし、通信方式は、上記のものに限るものでなく、たとえば、Ethernet(登録商標)、高速PLC、UWB等用いても良い。
1 入力端子、2 時刻情報付加部、3 (データ送信装置側の)タイマ、10 記憶部、20 時刻情報分離部、30 データ読み出しタイミング生成部、31 比較部、32 (データ受信装置側の)タイマ(第一のタイマ)、33 制御部、34 (データ受信装置側の)タイマ(第二のタイマ)、35 タイマ比較部、36 タイマ切り替え部、40 記憶状態検出部、50 時刻情報誤り検出部、51 しきい値設定部、51a 第一の平均回路、51b 減算回路、51c 絶対値計算回路、51d 加算回路、51e 第二の平均回路、51f 乗算回路、52 誤り判定部、60 TSパケット記憶部、70 時刻情報記憶部、80 時刻情報補正部、100 データ送信装置、200 データ受信装置、300 ネットワーク。