JP3977124B2 - データ伝送方式 - Google Patents
データ伝送方式 Download PDFInfo
- Publication number
- JP3977124B2 JP3977124B2 JP2002105307A JP2002105307A JP3977124B2 JP 3977124 B2 JP3977124 B2 JP 3977124B2 JP 2002105307 A JP2002105307 A JP 2002105307A JP 2002105307 A JP2002105307 A JP 2002105307A JP 3977124 B2 JP3977124 B2 JP 3977124B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- packet
- audio sample
- period
- sample data
- 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 - Lifetime
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
【発明の属する技術分野】
この発明は、ディジタルオーディオデータのような、所定周期の時系列的な配列を持つ複数のオーディオサンプルデータを、ネットワークを介して伝送するデータ伝送方式に関し、特に、受信側においてその正確な時間関係を再現しうるような形で、送信側においてデータ形式を構成し、伝送するようにしたデータ伝送方式に関する。
【0002】
【従来の技術】
ネットワークを介したデータの伝送方式には、大別すると、同期方式と非同期方式とがある。同期方式では送信側と受信側とが同期して動作するので、受信側における情報の時間的位置の正確な再現が要求されるオーディオデータの伝送に適している。しかし、同期信号線を別途設けるなどの、送受信間での同期をとらせるための構成が必要となり、かつ、同期をとらせることにより通信帯域を静的に確保することになるため、通信方式としての汎用性に欠けるという欠点があった。すなわち、同期通信が必要ない場合であっても不要な帯域を確保したままになり、他の情報を伝送することができないという問題点がある。
【0003】
これに対して、非同期方式では、通信帯域を動的に確保することにより、上記のような欠点を回避することができるが、通信のオーバーヘッドを減らすためには、或る程度の情報をまとめた上で非同期パケットを発行するようにしないと、データ通信効率が低下してしまう。しかし、或る程度の情報をまとめたパケットの送信では、データ本来の時間的な位置の情報が欠落してしまうことになる。そこで、パケットによるデータ伝送方式においては、データと共に該データの時間的位置を示す時間情報も一緒に伝送することが考えられている。すなわち、個々のデータ毎にその時間的位置を示す「タイムスタンプ」といわれる時間情報を付加し、これらを1パケットに含めて伝送するものである。
【0004】
【発明が解決しようとする課題】
しかし、個々のデータ毎にその時間的位置を示す時間情報を付加して1パケットを構成したのでは、データ量が増大してしまうので、得策とはいえない。
この発明は上述の点に鑑みてなされたもので、ディジタルオーディオデータのような、一定周期の時系列的な配列を持つ複数のオーディオサンプルデータを、受信側においてその時間関係を再現できるような形態で、送信側からネットワークを介して伝送する場合において、非同期パケットを採用してその利点を享受できるようにすると共に、パケットに含めて送信する時間情報をできるだけ少ないデータ量で表現して1パケット当りの送信データ量を減少させることができるようにしたデータ伝送方式を提供しようとするものである。
また、送受信間の時間遅れをできるだけ少なくしたデータ伝送方式を提供しようとするものである。
更に、少ないデータ量で時間情報を表現した場合において、受信側での時間情報の再生演算処理をできるだけ簡略化できるようにしたデータ伝送方式を提供しようとするものである。
【0005】
【課題を解決するための手段】
この発明に係るデータ伝送方式は、ネットワークを介して送信側装置から受信側装置へオーディオサンプルデータを伝送するデータ伝送方式であって、(a)送信側において、第1の周期の時系列的な配列を持つ複数のオーディオサンプルデータを供給するステップと、ここで前記第1の周期は可変であり、2以上の所定数の前記オーディオサンプルデータ毎に1つのオーディオサンプルデータを特定し、該特定されたオーディオサンプルデータの時間位置を示す時間情報を付加するステップと、所定数の前記オーディオサンプルデータ及び該オーディオサンプルデータの中のいずれかに対して付加された前記時間情報を1パケットとして、前記第1の周期に非同期の前記ネットワークにおけるパケット送信サービス区間の周期である第2の周期の所定タイミングにおいて、前記ネットワークに送出するステップとを具備し、(b)受信側において、前記ネットワークを介して前記パケットを受信するステップと、受信したパケットに含まれる前記オーディオサンプルデータを一時記憶するステップと、前記一時記憶したオーディオサンプルデータを順次再生読出しするためのステップであって、前記受信したパケットに含まれる前記時間情報に基づき前記一時記憶したオーディオサンプルデータのサンプリング周期を更新しこの読出しを制御することにより、前記第1の周期に対応する周期で再生が行われるようにするステップとを具備することを特徴とする。
【0006】
これによれば、種々のサンプリング周期を任意に取りうるオーディオサンプルデータ(つまり可変の第1の周期の配列を持つオーディオサンプルデータ)を送信するに際して、この第1の周期に非同期の前記ネットワークにおけるパケット送信サービス区間の周期である第2の周期の所定タイミングにおいて、該オーディオサンプルデータのパケットが送信される。その際、時間情報をすべてのオーディオサンプルデータに対して付加することをせずに、2以上の所定数の前記オーディオサンプルデータ毎に1つのオーディオサンプルデータを特定し、該特定されたオーディオサンプルデータに対して時間情報を付加するようにしている。そして、1パケットを所定数のオーディオサンプルデータによって構成し、かつ該オーディオサンプルデータの中のいずれかに対して付加された前記時間情報を該1パケットに含めて、該パケットをネットワークを介して送信する。受信側では、ネットワークを介して受信したパケットに含まれる前記オーディオサンプルデータを一時記憶し、この一時記憶したオーディオサンプルデータの順次読み出しを、該受信したパケットに含まれる前記時間情報に基づき前記一時記憶したオーディオサンプルデータのサンプリング周期を更新して制御することにより、元の所定の周期に対応する周期で再生が行われるようにする。従って、非同期パケットを採用してその利点を享受することができると共に、1パケットにつき1つの時間情報を含むだけであるから、時間情報をできるだけ少ないデータ量で表現して1パケット当りの送信データ量を減少させることができる。
【0008】
なお、ここで述べている非同期パケットの意味は、パケットの送信周期が、送信すべきオリジナルのサンプルデータに対して、そのサンプリング周期から独立して設定されている、という意味合いである。パケットそのもの送受信については、一定周期で行われているので、同期通信となっている。
【0009】
【発明の実施の形態】
以下、添付図面を参照してこの発明の実施の形態を詳細に説明しよう。
まず、理解を容易にするために、実施例に従うデータ伝送方式のいくつかの具体例をイラスト的に図示すると図1のようである。図1の(a)は第1の観点に従うデータ伝送方式の一例をイラスト的に図示するものであり、(b)と(c)は第2の観点に従うデータ伝送方式の異なる二例をイラスト的に図示するものである。
図1(a),(b),(c)の各1段目には、送信側で供給される、所定の周期(第1の周期)Tの時系列的な配列を持つ複数のオーディオサンプルデータの時系列配列の一例を示しており、数字0,1,2,3,…は、各データの時系列順序を示す序数である。1段目における特定のオーディオサンプルデータの上に示された数字(1,13,17,21,29,33等)は、該オーディオサンプルデータに付加されるタイムスタンプすなわち時間情報を例示している。SFはパケット送信のサービス区間の1周期を示し、送信するデータの周期Tは適宜可変であるのに対して、非同期パケットにおいては、該サービス区間SFの1周期は、所定値に固定されている。従って、SFとTの時間関係は図示のものに限らず、任意の時間関係をとりうるものであり、一般的には両者の周期は非整数倍関係となる(勿論、たまたま整数倍関係となることがあるかもしれない)。
図1(a),(b),(c)の各2段目には、ネットワークを介して送信されるパケットの状態を示しており、タイムスロット枠内に記した数字が該パケットに含まれるオーディオサンプルデータを識別する序数であり、その下側に記された数字(1,13,17,21,29,33等)が該パケットに含まれるタイムスタンプすなわち時間情報を示す。図1(a),(b),(c)の各3段目には、受信側におけるオーディオサンプルデータの再生状態を示している。
【0010】
第1の観点に従う図1(a)の例について説明すると、送信に際して、1パケットを所定数N(図の例ではN=4)のオーディオサンプルデータで構成し、かつ1パケットのデータ数N(=4)と同数のデータ毎に、該パケットの先頭のオーディオサンプルデータを特定し、該特定された先頭のオーディオサンプルデータの時間位置を示すタイムスタンプを付加するようにしている。例えば、最初のパケットは、序数0,1,2,3の4つのオーディオサンプルデータからなり、その先頭の序数0のデータの時間位置を示すタイムスタンプ「1」が付加される。この場合、送信側で4つのデータが供給されるにはサービス区間SFの2サイクル周期が必要であるから、最初のデータ(序数0)が供給されたときから、2サービス区間SFの経過後に、最初のパケットが送信される。従って、パケット送信の立上り時間遅れは、サービス区間SFの2サイクル周期である。2番目のパケットは、序数4,5,6,7の4つのデータからなり、その先頭の序数4のデータの時間位置を示すタイムスタンプ「17」が付加される。この場合、2番目のパケットに含まれる最後の序数7のデータが供給されるサービス区間SF(これをSF4で示す)の次のサービス区間SF(これをSF5で示す)で該2番目のパケットが送信されることになるから、最初のパケット送信時から2サービス区間後に該2番目のパケットが送信される。
【0011】
受信側においては、順次与えられる各パケットに含まれるタイムスタンプの変化若しくは関数に基づき、送信側における元の所定周期Tを推定することができる。タイムスタンプに基づく元の周期Tの推定方法には種々ありうるが、最も典型的な方法は、相前後する2つのパケットに含まれるタイムスタンプの差から次のような演算を行うことである。すなわち、今回送信されてきたパケットのタイムスタンプ値をTS(i) とし、その前に送信されてきたパケットのタイムスタンプ値をTS(i-1) とすると、その間にN個のデータが存在しているのであるから、下記式の演算を行うことにより、元の周期Tを推定することができる。
T={TS(i) −TS(i-1)}/N …(式1)
受信側においては、こうして推定した元の周期Tに対応する周期で、受信したパケットに含まれるデータを順次再生読出しする。かくして、元の周期Tでのデータ再生を確実にすることができる。図1(a)の場合、上記推定演算のために、2つのパケットの送信がなされるまで待機しなければならないため、受信側でデータ再生が開始するのは、送信側で最初のデータ(序数0)が供給されたときから、サービス区間SFが5サイクル経過したとき、すなわち図1の6番目のサービス区間SF6のときとなる。
【0012】
上記のように、第1の観点に従う伝送方式のように、1パケット当りのデータ数を所定の固定数Nとすると、パケット送信の立上り遅れと、受信側におけるデータ再生開始の遅れとが、問題となる。上記第2の観点に従う伝送方式は、この点を改善し、そのような遅れの問題をできるだけ回避することができるものである。
図1(b)及び(c)に例示された上記第2の観点に従う伝送方式が第1の観点に従う伝送方式と異なる点は、該第2の観点に従う伝送方式では、所定数のデータが溜るまでパケット送信を待たずに、所定の第2の周期毎に規則的にパケット送信を行うようになっている点であり、これに伴い、1パケットを構成するデータ数が可変となるという点である。すなわち、送信すべきデータのオリジナル周期である第1の周期Tよりも長い所定の第2の周期毎に、該第2の周期の1周期内で供給された前記データによって1パケットを構成するので、該第2の周期毎にパケット送信が行われることとなり、また、一般に第1及び第2の周期の関係は非整数倍的になるため(勿論、たまたま整数倍関係となることがあるかもしれないが)、該第2の周期の各周期毎に該1周期内に含まれるデータの数が可変的に(±1の範囲で)変動することになる。図1(b)及び(c)の例においては、パケット送信を行う第2の周期として、1サービス区間SF毎の周期で行うことが示されている。
【0013】
図1(b)の例について説明すると、各サービス区間毎に、その区間で供給されたデータを1パケットに含めて、次のサービス区間においてネットワークに送信する。1パケットに含まれるデータの数xは可変であり、図の例では、3個又は2個である。図1(b)の例では、1パケットのデータ数x(可変)と同数のデータ毎に、該パケットの先頭のデータを特定し、該特定された先頭のデータの時間位置を示すタイムスタンプを付加するようにしている。従って、タイムスタンプを2以上の所定数のデータ毎に付加するようになっているが、この所定数とは可変の1パケット構成データ数xに連動する可変数である。例えば、最初のパケットは、序数0,1,2の3つのデータからなり、その先頭の序数0のデータの時間位置を示すタイムスタンプ「1」が付加される。この場合、最初のデータ(序数0)が供給されたときから、1サービス区間SFの経過後に、すなわち2番目のサービス区間SF2のときに、最初のパケットが送信される。従って、パケット送信の立上り時間遅れは、1サービス区間SFのみである。2番目のパケットは、序数3,4の2つのデータからなり、その先頭の序数3のデータの時間位置を示すタイムスタンプ「13」が付加される。この場合、2番目のパケットに含まれる最後の序数4のデータが供給されたサービス区間(SF2)の次のサービス区間(SF3)で該2番目のパケットが送信されることになるから、最初のパケット送信時から1サービス区間後に該2番目のパケットが送信される。
【0014】
この場合も、受信側においては、順次与えられる各パケットに含まれるタイムスタンプの変化若しくは関数に基づき、送信側における元の所定周期Tを推定することができる。前述の通り、タイムスタンプに基づく元の周期Tの推定方法には種々ありうるが、最も典型的な方法は、相前後する2つのパケットに含まれるタイムスタンプの差から次のような演算を行うことであるので、この場合についての演算式を示すと下記のようである。
T={TS(i) −TS(i-1)}/x …(式2)
ここで、TS(i)とTS(i-1)は、前述と同様に、今回送信されてきたパケットのタイムスタンプ値と、前回に送信されてきたパケットのタイムスタンプ値である。xは、前回に送信されてきたパケットに含まれるデータ数であり、前述の通りの可変数である。
受信側においては、こうして推定した元の周期Tに対応する周期で、受信したパケットに含まれるデータを順次再生読出しする。かくして、元の周期Tでのデータ再生を確実にすることができる。図1(b)の場合、送信側で最初のデータ(序数0)が供給されたときから数えて3番目のサービス区間SF3のときに該2番目のパケットが送信されるので、受信側でデータ再生が開始するのは、送信側で最初のデータ(序数0)が供給されたときから、サービス区間SFの3サイクル経過後、すなわち4番目のサービス区間SF4のときとなる。このように、図1(b)の場合では、図1(a)の場合に比べて、パケット送信の立上りと受信側におけるデータ再生開始とが早くなっており、遅れの問題が改善されていることが理解できる。一方、受信側での時間情報の再生処理について考慮すると、上記式2に示されるように、可変数xで割算を行う構成となっており、上記式1のように固定数Nで割算を行う構成に比べて、その都度、除数xを変更しなければならないので、演算処理の構成が複雑となってしまうという問題がある。
【0015】
図1(c)の例は、図1(b)の例に対して更に改良を加え、受信側での演算処理を簡単化できるようにしたものである。図1(c)の例について説明すると、各サービス区間SF毎に、その区間で供給されたデータを1パケットに含めて、次のサービス区間においてネットワークに送信する。(b)と同様に、1パケットに含まれるデータの数xは可変であり、図の例では、3個又は2個である。(c)の例では、時間情報の付加の仕方が(b)とは異なっている。すなわち、図1(c)の例では、2以上の所定の定数Mからなるデータ毎に1つのデータを特定し、該特定されたデータの時間位置を示すタイムスタンプすなわち時間情報を付加するようにしている。図示の例では、Mは4であり、4個のデータグループ毎に、そのグループの先頭のデータの時間位置を示すタイムスタンプを付加するようにしている。従って、タイムスタンプを2以上の所定数のデータ毎に付加するようになっているが、この所定数とは(b)の例とは異なり、可変の1パケット構成データ数xとは関係のない、定数M(図では「4」)である。
図1(c)の例では、最初のパケットは、序数0,1,2の3つのデータからなり、最初のM=4個のデータのグループの先頭である序数0のデータの時間位置を示すタイムスタンプ「1」が付加される。この場合、最初のデータ(序数0)が供給されたときから、1サービス区間SFの経過後に、最初のパケットが送信される。従って、パケット送信の立上り時間遅れは、図1(b)と同様に、1サービス区間SFのみである。2番目のパケットは、序数3,4の2つのデータからなり、そこには次のM=4個のデータのグループの先頭である序数4のデータが含まれているので、その序数4のデータの時間位置を示すタイムスタンプ「17」が付加される。この場合も、2番目のパケットに含まれる最後の序数4のデータが供給されたサービス区間(SF2)の次のサービス区間(SF3)で該2番目のパケットが送信されることになるから、最初のパケット送信時から1サービス区間SF後に該2番目のパケットが送信される。
【0016】
なお、1パケットのデータ数が可変であるのに対して、1つのタイムスタンプを付加する1グループ内のデータ数Mは定数であるので、パケットによっては、タイムスタンプすなわち時間情報を伴わないものが出てくる。図1(c)における4番目のサービス区間SF4において送信される序数5,6のデータを含むパケットがそれに該当しており、そのようなパケットにおいては、有効なタイムスタンプ値を示すデータの代わりに、タイムスタンプ無を表示する所定のデータ“void”を送信するものとしている。勿論、必ずしもこの種のデータ“void”を送信しなければならないわけではなく、そのパケットにタイムスタンプが存在してないことをもって、タイムスタンプすなわち時間情報を伴わないことが認識されるようになっていてもよい。
図1(c)の場合も、受信側においては、順次与えられる各パケットに含まれるタイムスタンプの変化若しくは関数に基づき、送信側における元の所定周期Tを推定することができる。前述の通り、タイムスタンプに基づく元の周期Tの推定方法には種々ありうるが、最も典型的な方法は、相前後する2つのパケットに含まれるタイムスタンプの差から次のような演算を行うことであるので、この場合についての演算式を示すと下記のようである。
T={TS(i) −TS(i-1')}/M …(式3)
ここで、TS(i)は、前述と同様に、今回送信されてきたパケットのタイムスタンプ値であり、TS(i-1')は、その前に送信されてきた有効なタイムスタンプ値である。従って、今回送信されてきたパケットにおいて、タイムスタンプの代わりに上記“void”が含まれている場合は、この演算は行われない。また、前回送信されてきたパケットのタイムスタンプ値が“void”以外の有効な値を持っている場合は、TS(i-1')は、前回送信されてきたパケットのタイムスタンプ値TS(i-1)に相当するが、前回送信されてきたパケットにおいてタイムスタンプの代わりに上記“void”が含まれていた場合は、TS(i-1')は、前々回送信されてきたパケットのタイムスタンプ値TS(i-2)に相当するものである。Mは、前述の通り、1つのタイムスタンプを付加するデータグループ内のデータ数を示す定数である。
【0017】
受信側においては、こうして推定した元の(オリジナル)周期Tに対応する周期で、受信したパケットに含まれるデータを順次再生読出しする。かくして、オリジナル周期Tでのデータ再生を確実にすることができる。図1(c)の場合も、送信側で最初のデータ(序数0)が供給されたときから数えて3番目のサービス区間SF3のときに該2番目のパケットが送信されるので、受信側でデータ再生が開始するのは、送信側で最初のデータ(序数0)が供給されたときから、サービス区間SFの3サイクル経過後の、4番目のサービス区間SF4のときとなる。従って、図1(c)の場合も、図1(a)の場合に比べて、パケット送信の立上りと受信側におけるデータ再生開始とが早くなっており、遅れの問題が改善されていることが理解できる。更に、図1(c)の場合は、受信側での時間情報の再生処理について考慮すると、上記式3に示されるように、固定数Mで割算を行う構成となっており、上記式2のように可変数xで割算を行う構成に比べて、演算処理の構成が簡単である、という利点がある。ここで、固定数Mを、4や8のような、2のべき乗の数値とすれば、式3のディジタル割算を簡単なデータシフト処理によって行うことができるで、有利である。従って、図1(c)の例に従えば、少ないデータ量で時間情報を表現した場合において、受信側での時間情報の再生演算処理をできるだけ簡略化できるようにした非同期パケットによるデータ伝送方式を提供することができる、という利点がある。
【0018】
上記のように、第2の観点における図1(c)の例に従えば、最も好ましいデータ伝送方式を提供することができることが理解できる。そこで、送信側において、そのような最も好ましい形式で非同期パケット伝送を行う、という観点に立って、この発明を実施することもできる。すなわち、そのような送信方式の観点に立てば、この発明に係るデータ伝送方式は、第1の周期の時系列的な配列を持つ複数のデータを供給するステップと、2以上の所定の定数からなる前記データのグループ毎に該グループ内の1つのデータを特定し、該特定されたデータの時間位置を示す時間情報を付加するステップと、前記第1の周期よりも長い所定の第2の周期毎に、該第2の周期の1周期内で供給された複数の前記データを1パケットとして、かつ、該パケット内のデータの中に前記時間情報が付加されたデータがあれば該時間情報を該パケットに含めて、ネットワークを介して送信するステップとを具備することを特徴とするものである。この作用、効果は、図1(c)の例に従って上述した通りである。勿論、図1(a)や(b)の例においても、送信方式のみの観点に立って発明を把握することが可能である。
【0019】
次に、最も好ましい実施の形態として、上記第2の観点における図1(c)の例に従う実施の形態について更にその詳細実施例を説明する。
図2は、この発明に係るデータ伝送方式の一実施例の全体構成を示す概略ブロック図である。送信側10において、データ生成部11は、所定のサンプリング周期Tの時系列的な配列を持つ複数のデータを順次生成し、出力するもので、例えば、ディジタルオーディオ信号の順次サンプルデータを出力する。例えば、データ生成部11は、CD(コンパクトディスク)プレイヤーのようなオーディオ再生装置を含んでいてもよいし、あるいは楽音サンプルデータをリアルタイムで合成する楽音合成装置のようなものを含んでいてもよい。データ生成部11から出力されるオーディオサンプルデータのサンプリング周期Tは、そのデータソースに応じて、適宜可変されるようになっていてよい。
【0020】
データ生成部11から出力されたオーディオサンプルデータは、その時系列順にデータバッファ12に一時記憶される。データバッファ12には入出力非同期のバッファレジスタを用いる。タイマ13は、タイムスタンプデータすなわち時間情報を作成するものであり、所定のクロックをカウントするランニングカウンタのようなものを含んでいてよい。ネットワーク処理部14は、所定の送信割込み周期毎に、データバッファ12に一時記憶したオーディオサンプルデータを基にして1パケットを構成する複数xのオーディオサンプルデータを送信バッファTBF内に1まとめに揃える処理と、所定数Mのオーディオサンプルデータ毎に1つのオーディオサンプルデータを特定し、該特定されたオーディオサンプルデータの時間位置を示すタイムスタンプデータを付加する処理と、送信バッファTBF内に揃えられた複数xのオーディオサンプルデータと該オーディオサンプルデータの中のいずれかに対して付加されたタイムスタンプデータとを1パケットとして、ネットワーク30を介して受信側20に送信する処理とを行う。送信割込み周期は、パケットのサービス区間SFに対応しており、オーディオサンプルデータのサンプリング周期Tより長く設定され、複数xのオーディオサンプルデータを1パケットに含ませることができる。しかし、前述の理由で、1パケット中のオーディオサンプルデータ数xは可変である。
【0021】
受信側20では、ネットワーク処理部24においてネットワーク30を介して送信されてきたパケットを受信し、受信したパケットに含まれる複数xのオーディオサンプルデータをその時系列順にデータバッファ22に一時記憶する。データバッファ22には、複数記憶ステージを有するFIFOのような入出力非同期のバッファレジスタを使用するとよい。クロック生成部23は、受信したパケットに含まれるタイムスタンプデータに基づき、送信側10におけるデータ生成部11から供給されたオーディオサンプルデータのオリジナルのサンプリング周期Tを再現するものである。例えば、前記式3のような演算を行って、オリジナルのサンプリング周期Tを推定的に算出し、算出した周期Tに対応するクロック信号を生成する。データ利用部21は、クロック生成部23から与えられる再現されたサンプリング周期Tに従い、データバッファ22に一時記憶されたオーディオサンプルデータを順次再生読出し、これを適宜利用する。再生読出ししたオーディオサンプルデータを如何なる形態で利用するかは、適宜であってよい。例えば、そのままD−A変換してからスピーカ等から発音するようにしてもよいし、あるいは、エフェクト等の処理を施してからスピーカ等から発音する若しくは処理済みのオーディオサンプルデータを外部に送出する等、任意であってよい。
【0022】
送信側10及び受信側20では、マイクロコンピュータ等の制御の下でソフトウェアプログラムを実行することにより、上記各部での処理を制御するようになっている。そのための処理フローの例を次に示す。
図3は、送信側10で行われる「送信準備処理」の一例を略示するものである。この「送信準備処理」は、主に、ネットワーク処理部14が受け持つ処理であり、データ生成部11の処理とデータバッファ12への入力処理は含まれていない。例えば、この「送信準備処理」は、送信側10でのメインルーチンの過程で実行される。
まず、ステップS1では、データバッファ12の記憶内容をスキャンし、新たなデータがデータバッファ12に入力されたかどうかを調べる。新たなデータがデータバッファ12に入力されたならば、YESであり、次のステップS2に行く。NOならば、リターンする。
【0023】
ステップS2では、序数レジスタORDRの内容を、所定数Mで割って、その余りが0であるかを調べる。序数レジスタORDRは、前ステップS1でデータバッファ12に入力されたことが検出されたデータの序数を示すデータをストアするものであり、最初は、図示しない初期設定処理により、序数0にセットされており、以後、データバッファ12に新データが入力される毎に、後出のステップS5の処理によって、インクリメントされる。所定数Mは、前述の通り、1つのタイムスタンプを付加すべき1データグループのデータ数を示す定数であり、4又は8等の2のべき乗の値とすれば、割算を簡略化できるので好ましい。
序数レジスタORDRの内容を、所定数Mで割った、その余りが0であるということ、つまり、ステップS2の判定がYESであるということは、序数レジスタORDRの内容に対応する現データ(データバッファ12に今入力されたばかりの新データ)が、タイムスタンプを付加すべきデータであることを示している。
【0024】
そこで、ステップS2がYESであれば、ステップS3に行き、タイマ13の現在値(これは、データ生成部11からの1サンプルデータがデータバッファ12に到着/入力した時刻を略示している)を送信側タイムスタンプレジスタTStにストアし、その後ステップS4に行く。
こうして、ステップS2の処理によってタイムスタンプを付加すべき1つのデータが特定され、ステップS3の処理によって該特定データに付加するタイムスタンプデータすなわち時間情報が決定/生成され、レジスタTStにレジストされる。
一方、ステップS2がNOであれば、ステップS4にジャンプし、タイムスタンプデータのレジストは行われない。
【0025】
ステップS4では、データバッファ12に入力された新データ(すなわち、序数レジスタORDRの内容に対応する現データ)を該バッファ12から取り出して、所定の送信バッファTBFに格納する。
次のステップS5では、序数レジスタORDRの内容を1だけインクリメントする。
その後、メインルーチンにリターンする。そして、メインルーチンの過程で再び図3の「送信準備処理」を行う。こうして、図3の「送信準備処理」が繰り返される。この「送信準備処理」を繰り返す過程で、順次供給されたいくつかのデータが、前記送信バッファTBFに順次格納される。この送信バッファTBFに格納されたいくつか(一般的には複数x)のデータは、次に述べる「送信割込処理」によって1パケットとして送信される。
【0026】
図4は、送信側10で行われる「送信割込処理」の一例を略示するものであり、図3の処理に対する割込み処理として実行される。この「送信割込処理」は、所定の送信割込み周期に従って規則的な割込み間隔で実行される。この送信割込み周期は、例えば、パケットの1サービス区間SFに対応しており、一般に、送信するデータのサンプリング周期Tより長い。
送信割込みがかかると、まず、ステップS6では、送信側タイムスタンプレジスタTStにレジストされているタイムスタンプデータを、タイムスタンプ情報“TIME STAMP”として送信セットし、かつ、前記送信バッファTBFに格納されているデータの数xを数えてこれをサンプル数x“SAMPLE x”として送信セットし、かつ、序数レジスタORDRの内容から上記サンプル数x“SAMPLE x”を引いた値(ORDR−“SAMPLE x”)をパケット先頭サンプル序数“SAMPLE ORDER”として送信セットする。このパケット先頭サンプル序数“SAMPLE ORDER”は、送信する1パケットに含まれる複数のデータのうち時系列順序が先頭のデータのサンプル序数を示す。序数レジスタORDRの現内容が、送信する1パケットに含まれる複数のデータのうち時系列順序が最後のデータの次のサンプル序数を示しているので、これから該パケットに含まれるデータのサンプル数“SAMPLE x”を引いたものが、該パケットにおける先頭のデータのサンプル序数を示すことになる。
【0027】
次のステップS7では、前記送信バッファTBFに格納されている複数xのデータと、前ステップS6で送信セットした各情報、すなわちタイムスタンプ情報“TIME STAMP”、サンプル数x“SAMPLE x”、パケット先頭サンプル序数“SAMPLE ORDER”とを、1パケットとしてパケット作成し、該パケットをネットワーク30を介して送信する。なお、ネットワーク30を介した受信側20との間の実際の具体的な通信作業は、通信インタフェースを介して行われることになるので、このステップS7では図示しない通信インタフェースに対してパケットを送出することからなる。なお、送信バッファTBFの格納データを送出した後に該バッファTBFをクリアするものとする。
次のステップS8で、送信側タイムスタンプレジスタTStに空データ“void”をセットし、その後リターンする。次のパケットが有効なタイムスタンプを伴う場合は、図3のステップS3の処理を経由することによって該レジスタTStの内容が有効なタイムスタンプ値によって更新される。他方、次のパケットが有効なタイムスタンプを伴わない場合は、図3のステップS3の処理を経由することがなく、よって、該レジスタTStの内容は更新されないまま空データ“void”を保持して、次の「送信割込み処理」を迎える。そのような場合は、図4のステップS6において、タイムスタンプ情報“TIME STAMP”として空データ“void”が送信セットされることになる。
【0028】
例えば、M=4であるとして、図1(c)の1段目及び2段目を参照しながら、図3及び図4の動作例について説明する。
最初に、序数0のデータがデータバッファ12に取り込まれたとき、レジスタORDRの内容が0であるから、ステップS2がYESとなり、ステップS3に行き、タイマ13の現在値(図1では便宜上最初は「1」としているが、これに限らないのは勿論である)を送信側タイムスタンプレジスタTStにストアする。この序数0のデータは送信バッファTBFに格納され(S4)、序数レジスタORDRの値が増数されて1となる(S5)。
次に序数1のデータがデータバッファ12に取り込まれたとき、レジスタORDRの内容は1であるから、ステップS2がNOとなり、ステップS3をジャンプしてステップS4,S5を行い、この序数1のデータは送信バッファTBFに格納され、序数レジスタORDRの値が増数されて2となる。
次に序数2のデータがデータバッファ12に取り込まれたときも同様であり、ステップS3をジャンプしてステップS4,S5を行い、この序数2のデータが送信バッファTBFに格納され、序数レジスタORDRの値が増数されて3となる。
【0029】
こうして、最初のサービス区間SF1の間に序数0,1,2の3つのデータが供給され、これらのデータが送信バッファTBFに格納される。該サービス区間SF1の終わりで(又は次のサービス区間SF2の始まりで)、図4の「送信割込処理」が行われる。ステップS6の処理によって、タイムスタンプ情報“TIME STAMP”としてレジスタTStの「1」が送信セットされ、サンプル数x“SAMPLE x”として「3」が送信セットされ、パケット先頭サンプル序数“SAMPLE ORDER”として「0」(3−3=0)が送信セットされる。そして、ステップS7の処理に基づき、2番目のサービス区間SF2における適宜の時点で、これらの情報と送信バッファTBF内の序数0,1,2の3つのデータとが1パケットとして送信されることになる。
【0030】
2番目のサービス区間SF2においては、序数3,4の2つのデータが供給される。序数3のデータが供給されたときは、ステップS2はNOであり、序数3のデータが送信バッファTBFに格納され(S4)、序数レジスタORDRの値が増数されて4となる(S5)。次に序数4のデータが供給されたときは、ステップS2はYESとなり、ステップS3に行き、タイマ13の現在値(図1では「17」)を送信側タイムスタンプレジスタTStにストアする。また、この序数4のデータが送信バッファTBFに格納され(S4)、序数レジスタORDRの値が増数されて5となる(S5)。
2番目のサービス区間SF2が終わって、図4の「送信割込処理」が行われると、ステップS6の処理によって、タイムスタンプ情報“TIME STAMP”としてレジスタTStの「17」が送信セットされ、サンプル数x“SAMPLE x”として「2」が送信セットされ、パケット先頭サンプル序数“SAMPLE ORDER”として「3」(5−2=3)が送信セットされる。そして、ステップS7の処理に基づき、3番目のサービス区間SF3における適宜の時点で、これらの情報と送信バッファTBF内の序数3,4の2つのデータとが1パケットとして送信されることになる。また、ステップS8では、レジスタTStに空データ“void”がセットされる。
【0031】
3番目のサービス区間SF3においては、序数5,6の2つのデータが供給される。序数5のデータが供給されたときは、ステップS2はNOであり、序数5のデータが送信バッファTBFに格納され(S4)、序数レジスタORDRの値が増数されて6となる(S5)。次に序数6のデータが供給されたときも、ステップS2はNOであり、序数6のデータが送信バッファTBFに格納され、序数レジスタORDRの値が増数されて7となるだけである。結局、この3番目のサービス区間SFにおいては、ステップS3を経由することなく、レジスタTStには空データ“void”を保持したままとなる。
従って、次の「送信割込処理」においては、タイムスタンプ情報“TIME STAMP”として空データ“void”が送信セットされ、サンプル数x“SAMPLE x”として「2」が送信セットされ、パケット先頭サンプル序数“SAMPLE ORDER”として「5」(7−2=5)が送信セットされることになる。そして、これらの情報と送信バッファTBF内の序数5,6の2つのデータとが1パケットとして送信されることになる。
以下、同様に動作し、図1(c)の1段目に示すような時系列的データに応じて2段目に示すような内容のパケットが送信されることになる。
【0032】
図5は、受信側20で行われる「受信処理」の一例を略示するものである。この「受信処理」は、主に、ネットワーク処理部24とクロック生成部23が受け持つ処理について示されている。
この「受信処理」は、ネットワーク30から与えられる1パケット情報を受信側20が受信する毎に実行される。
まず、ステップS11では、ネットワーク30を介して受信した1パケットに含まれる各情報のうち、パケット先頭サンプル序数“SAMPLE ORDER”をレジスタjに格納し、サンプル数x“SAMPLE x”をレジスタXに格納する。また、アップデートクロックレジスタupdateCLOCKに偽値FALSEをセットする。このアップデートクロックレジスタupdateCLOCKに、真値TRUEがセットされているとき、クロック周波数の更新を指示し、偽値FALSEをセットされているときはクロック周波数の更新を指示しない。
次に、ステップS12では、変数レジスタiを初期値0にセットする。
次のステップS13では、ネットワーク30を介して受信した1パケットに含まれる複数xのデータのうち変数レジスタiによって指示される順位の1つのデータDATA(i) をデータバッファ22に転送する。
【0033】
次のステップS14では、レジスタjの内容(すなわちパケット先頭サンプル序数“SAMPLE ORDER”)に変数レジスタiの現在値を加算した値を、前記所定数Mで割って、その余りが0であるかを調べる。すなわち、前ステップS13でデータバッファ22に書き込んだデータ(この序数は「j+i」である)が、タイムスタンプを付加した前記特定のデータに該当するか否かを調べる。前ステップS13でデータバッファ22に書き込んだデータが、前記特定のデータに該当する場合は、該データの序数j+iが所定数Mで割り切れるため、余りが0となり、ステップS14ではYESと判定される。その場合は、ステップS15〜S18のルートを経由してからステップS19に行く。NOの場合は、ステップS15〜S18のルートをジャンプしてステップS19に行く。
ステップS15では、受信側タイムスタンプレジスタTSrの内容が空データ“void”であるか否かを調べる。図示していない初期設定処理により、該レジスタTSrの内容が空データ“void”に初期設定されるようになっており、その後に、次のステップS16を行うことにより、受信した1パケットに含まれるタイムスタンプ情報“TIME STAMP”を該レジスタTSrにロードする。従って、このステップS16は、最初のタイムスタンプ情報“TIME STAMP”をレジスタTSrにロードするための処理である。以後は、ステップS15はNOと判定され、専らステップS17,S18のルートを通って処理される。
【0034】
ステップS17では、前記式3に相当する演算を行って、オリジナルのサンプリング周期Tを算出/推定する。すなわち、今回受信したパケットに含まれるタイムスタンプ情報“TIME STAMP”(前記式3のTS(i) に対応)から受信側タイムスタンプレジスタTSrの内容(前回又は前々回受信したパケットに含まれていたタイムスタンプ情報であって、前記式3のTS(i-1') に対応)を引き算し、1つのタイムスタンプを付加するデータグループ内のデータ数を示す定数M(例えば4)で割算する。その商が、オリジナルのサンプリング周期Tを推定するデータとしてレジストされる。
次のステップS18では、今回受信したパケットに含まれるタイムスタンプ情報“TIME STAMP”を受信側タイムスタンプレジスタTSrにロードし、該レジスタTSrの内容を更新し、かつ、アップデートクロックレジスタupdateCLOCKに、真値TRUEをセットする。
【0035】
ステップS19では、変数レジスタiの値を1だけ増数する。次のステップS20では、増数された変数レジスタiの値がレジスタXに格納されている当該パケット中のデータ数xに等しくなったか否かを調べる。NOであれば、ステップS13に戻り、増数された変数レジスタiの値に関して、前記ステップS13〜S18の処理を繰り返す。
ステップS20がYESとなると、ステップS21に行き、アップデートクロックレジスタupdateCLOCKの内容が真値TRUEであることを条件に、前記ステップS17で算出されたオリジナルのサンプリング周期Tに従って、受信側20におけるサンプリングクロック周波数を、この周期Tに従って、設定するクロック同期化処理を行う。すなわち、受信側20におけるサンプリングクロック周波数がステップS17での演算結果Tに応じて設定若しくは更新されることになる。その後、リターンして、この「受信処理」を終了する。なお、1パケットには1個のタイムスタンプ情報しか含まないようにしているので、一旦、ステップS17,S18のルートを通った後は、ステップS13〜S20の処理を繰り返すことは不要である。従って、ステップS18の後はステップS21にジャンプさせるようにフローを変更してもよい。
【0036】
次に、M=4であるとして、図1(c)の2段目及び3段目を参照しながら、図5の動作例について説明する。
2番目のサービス区間SF2で、序数0,1,2のデータを含む最初のパケットの情報を受信すると、ステップS11では、j=0、X=3にセットされる。この場合、j=0、i=0のとき、ステップS14がYESとなる。TSrには“void”が初期設定されているので、次のステップS15がYESとなり、ステップS16で、今回受信したパケットに含まれるタイムスタンプ情報“TIME STAMP”=「1」が、レジスタTSrにセットされる。やがて、ステップS13〜S20の処理を繰り返した後、ステップS21に行く。この場合は、アップデートクロックレジスタupdateCLOCKの内容が偽値FALSEにセットされたままなので、受信側20におけるサンプリングクロック周波数の設定は行われない。従って、データバッファ22に記憶したデータの再生読み出しは、まだスタートされない。
【0037】
3番目のサービス区間SF3で、序数3,4のデータを含む2番目のパケットの情報を受信すると、ステップS11では、j=3、X=2にセットされる。この場合、j=3、i=1のとき、ステップS14がYESとなる。レジスタTSrには前回受信したパケットに含まれるタイムスタンプ情報“TIME STAMP”=「1」がセットされているので、次のステップS15はNOと判断され、ステップS17に行く。この場合、今回受信したパケットに含まれるタイムスタンプ情報“TIME STAMP”は「17」であるから、ステップS17の演算では、T=(17−1)/4=4が得られる。次のステップS18では、“TIME STAMP”の「17」をレジスタTSrにセットし、かつ、updateCLOCKに真値TRUEをセットする。従って、その後のステップS21では上記周期Tに従って受信側20におけるサンプリングクロック周波数の設定を行なう。これにより、データバッファ22に記憶したデータの再生読み出しが可能となる。図1(c)では、次のサービス区間SF4の始まりから、周期Tに従うデータの再生読み出しが行われるように図示されている。しかし、これに限らず、サービス区間SF3の途中であっても、ステップS21での処理を終了し次第、データバッファ22に記憶したデータの再生読み出しを開始するようにしてもよい。
【0038】
4番目のサービス区間SF4で、序数5,6のデータを含む3番目のパケットの情報を受信すると、ステップS11では、j=5、X=2にセットされる。この場合、変数レジスタiの値は、最初は0、その次は1にセットされる。従って、ステップS14では、j+i=5+0=5の場合と、j+i=5+1=6の場合の両方について、判定を行うが、そのいずれの場合も判定結果はNOであり、ステップS17,S18のルートは通らない。従って、ステップS17でのオリジナル周期Tの算出演算は行われず、レジスタTSrには前回受信したパケットに含まれていたタイムスタンプ情報“TIME STAMP”の「17」が保持される。従って、ステップS21におけるサンプリングクロック周波数の更新処理も行われず、前回計算した周期Tに従うクロック周波数を維持して、データバッファ22に記憶したデータの再生読み出しが続行される。このように、パケットに含まれるタイムスタンプ情報“TIME STAMP”が空データ“void”の場合は、サンプリングクロック周波数の更新処理は行われないようになっている。
【0039】
5番目のサービス区間SF5で、序数7,8のデータを含む4番目のパケットの情報を受信すると、ステップS11では、j=7、X=2にセットされる。この場合も、変数レジスタiの値は、最初は0、その次は1にセットされる。ステップS14では、j+i=7+1=8の場合、YESと判定する。そして、ステップS17に行き、今回受信したパケットに含まれるタイムスタンプ情報“TIME STAMP”の「33」と、レジスタTSrにストアされている前々回受信したパケットに含まれていたタイムスタンプ情報の「17」とを使用して、T=(33−17)/4=4の演算がなされる。次のステップS18では、“TIME STAMP”の「33」をレジスタTSrにセットし、かつ、updateCLOCKに真値TRUEをセットする。従って、その後のステップS21では上記周期Tに従って受信側20におけるサンプリングクロック周波数の更新を行なう。
以下、同様に動作し、図1(c)の2段目に示すような内容のパケットの受信に応じて、3段目に示すようなオリジナル周期Tでの時系列的データの再生読み出しが行われる。
【0040】
なお、上記の設例では、タイムスタンプ情報の数値を単純化して示しているので、演算の結果得られる周期Tは一定の数値4であるが、通常は、各数値の分解能の設定に応じて演算結果値Tはもっと複雑な値をとる。受信側20においては、この演算結果値Tに応じて、そのサンプリングクロック周波数を絶えず調整するよう同期化制御される。このようにして、所定のデータグループ毎に送信されるタイムスタンプ情報によって、送信側10と受信側20のサンプリングクロック周波数が絶えず同期化されるように制御される。
なお、上記実施例における所定の定数Mは、1つのパケット生成周期(つまり1サービス区間SF)において、2以上のデータにタイムスタンプを付加することのないような値、つまり1パケット生成周期内に供給されるデータ数の最大値(図1の例では「3」)よりも大きな値、であることが望ましく、また、受信側におけるサンプリング周期Tの再現分解能を高めるためには、そのような値の中の最小値であることが望ましい。更に、Mを2のべき乗の値とすれば、割算演算を簡単化できるので、好ましい。
【0041】
ところで、送信側と受信側のサンプリングクロック周波数を同期させるためには、最も単純には、データ送信の冒頭において送信側から受信側に対してサンプリングクロック周波数を指示する情報を与え、受信側において該情報に対応するサンプリングクロック周波数を発振するようにクロック分周比を設定するようにすればよいはずである。しかし、発振源として使用する水晶発振子の個体差によって、送信側と受信側の実際のサンプリングクロック周波数に微妙なずれが生じることがあるので、長時間にわたる再生処理においては不都合が生じて来るという問題がある。すなわち、クロック発振出力に基づくデータ再生読み出し技術においては、発振源として使用する水晶発振子の発振出力を分周して所望の周期のサンプリングクロックを作成することになるが、送信側のデータ読み出しに使用する水晶発振子と、受信側のデータ読み出しに使用する水晶発振子との個体差によって、送受信間で同じ分周比に設定したとしても、送信側と受信側の実際のサンプリングクロック周波数に微妙なずれが生じることがある。この微妙なずれは、長時間にわたる連続的なオーディオ再生処理等においては累積されてしまい、遂には再生タイミングの顕著なずれをもたらすことになる。
【0042】
例えば、一般に、異なるシステム間で情報を送受信する場合は、受信側にバッファを設け、データ転送のタイミングずれを吸収するようにしているが、上記のように送受信間のサンプリングクロック周波数に微妙なずれがある場合は、受信側バッファがオーバーフローしたり(受信側のクロック周波数が相対的に遅くなった場合)、アンダーフローしたり(受信側のクロック周波数が相対的に速くなった場合)することがある。そのような場合は、正常なデータ送受信を行うことができなくなるので、好ましくない。これに対して、この発明のように、送信するデータに時間情報を付加することにより、送信側と受信側のサンプリングクロック周波数が絶えず同期化されるように制御する方式では、そのような問題が起こらないので、より好ましいものである。
【0043】
なお、上記実施例では、受信側20において、ステップS17で演算した周期Tに基づき、データバッファ22の再生読み出し制御用のサンプリングクロック周波数を設定するようにしているが、時間情報に基づく再生読み出し制御の態様はこれに限らず、適宜に設計してよい。例えば、タイムスタンプ情報が付加されていないデータに対して、それぞれ固有の時間情報を付加する処理を行い、各データ毎の固有の時間情報を参照して再生読み出しを行うようにしてもよい。
また、データ伝送に先立ち、基本的なサンプリング周期Tを示すデータを送信し、受信側20では、最初は、この送信されてきたデータに対応するサンプリング周期Tでデータ再生読み出しを開始するようにしてもよい。そのようにすれば、受信側20におけるデータ再生読み出しの立上りを上記実施例に比べて1サービス区間だけ早めることができる。
また、本来のデータの送信に先立って、いくつかのダミーデータをタイムスタンプの初期値を伴って送信するようにしてもよい。その場合、受信側20におけるデータ再生読み出しの開始は、ダミーデータをカットして、実際のデータから開始するようにする。例えば、図1(c)の場合、序数0,1,2のデータがダミーデータであるとすると、その3段目に示された受信側再生読み出しにおいては、序数3のデータ(実際のデータの先頭)から読み出し開始するようにする。そのようにしても、受信側20における実際のデータの再生読み出し開始を上記実施例に比べて1サービス区間だけ早めることができる。
【0044】
なお、図1(b)に示したようなデータ伝送方式を実施する場合は、概ね、図3のステップS2,S3を省略し、図4のステップS6において「TIME STAMP ← TSt」の代わりに、「TIME STAMP ← タイマ13の現在値」を行い、かつ、図5のステップS14,S17の所定の定数Mの代わりに、可変の所定数x(レジスタXの値)を使用すればよい。
また、図1(a)に示したようなデータ伝送方式を実施する場合は、概ね、図3のステップS2、図5のステップS14,S17の所定の定数Mの代わりに、1パケット当りのデータ数を示す固定数Nを使用し、かつ、図4の「送信割込処理」の開始時に、送信バッファTBF内のデータ数xがN以上であるかをチェックするステップを設け、NOであれば割込処理を終了し、YESであれば割込処理を続行するようにする。そして、続行時においては、ステップS6において「サンプル数x“SAMPLE x”」として所定数Nを送信セットし、ステップS7において送信バッファTBFのデータのうち先行するN個のデータを1パケットとして形成し、残りのデータがあればそれらは送信バッファTBFに残しておくようにする。
【0045】
【発明の効果】
以上の通り、この発明によれば、一定周期の時系列的な配列を持つ複数のオーディオサンプルデータを、ネットワークを介して伝送する場合において、非同期パケットを使用してその利点を享受できるようにすると共に、パケットに含めて送信する時間情報をできるだけ少ないデータ量で表現して1パケット当りの送信データ量を減少させることができるようになる、という優れた効果を奏する。
また、送受信間の時間遅れをできるだけ少なくしたデータ伝送方式を提供することがてきる。更に、少ないデータ量で時間情報を表現した場合において、受信側での時間情報の再生演算処理をできるだけ簡略化できるようにすることができる。
【図面の簡単な説明】
【図1】 この発明に従うデータ伝送方式のいくつかの具体例をイラスト的に図示するタイミングチャート。
【図2】 この発明に係るデータ伝送方式の一実施例の全体構成を示す概略ブロック図。
【図3】 図2の送信側で行われる「送信準備処理」の一例を略示するフロー図。
【図4】 図2の送信側で行われる「送信割込処理」の一例を略示するフロー図。
【図5】 図2の受信側で行われる「受信処理」の一例を略示するフロー図。
【符号の説明】
10 送信側
20 受信側
30 ネットワーク
11 データ生成部
12,22 データバッファ
13 タイマ
14,24 ネットワーク処理部
23 クロック生成部
21 データ利用部
Claims (2)
- ネットワークを介して送信側装置から受信側装置へオーディオサンプルデータを伝送するデータ伝送方式であって、
(a)送信側において、
第1の周期の時系列的な配列を持つ複数のオーディオサンプルデータを供給するステップと、ここで前記第1の周期は可変であり、
2以上の所定数の前記オーディオサンプルデータ毎に1つのオーディオサンプルデータを特定し、該特定されたオーディオサンプルデータの時間位置を示す時間情報を付加するステップと、
所定数の前記オーディオサンプルデータ及び該オーディオサンプルデータの中のいずれかに対して付加された前記時間情報を1パケットとして、前記第1の周期に非同期の前記ネットワークにおけるパケット送信サービス区間の周期である第2の周期の所定タイミングにおいて、前記ネットワークに送出するステップと
を具備し、
(b)受信側において、
前記ネットワークを介して前記パケットを受信するステップと、
受信したパケットに含まれる前記オーディオサンプルデータを一時記憶するステップと、
前記一時記憶したオーディオサンプルデータを順次再生読出しするためのステップであって、前記受信したパケットに含まれる前記時間情報に基づき前記一時記憶したオーディオサンプルデータのサンプリング周期を更新しこの読出しを制御することにより、前記第1の周期に対応する周期で再生が行われるようにするステップと
を具備することを特徴とするデータ伝送方式。 - 送信側装置と受信側装置との間でネットワークを介してオーディオサンプルデータを伝送するためのシステムであって、
(a)前記送信側装置は、
第1の周期の時系列的な配列を持つ複数のオーディオサンプルデータを供給する装置と、ここで前記第1の周期は可変であり、
2以上の所定数の前記オーディオサンプルデータ毎に1つのオーディオサンプルデータを特定し、該特定されたオーディオサンプルデータの時間位置を示す時間情報を付加する装置と、
所定数の前記オーディオサンプルデータ及び該オーディオサンプルデータの中のいずれかに対して付加された前記時間情報を1パケットとして、前記第1の周期に非同期の前記ネットワークにおけるパケット送信サービス区間の周期である第2の周期の所定タイミングにおいて、前記ネットワークに送出する装置と
を含み、
(b)前記受信側装置は、
前記ネットワークを介して前記パケットを受信する装置と、
受信したパケットに含まれる前記オーディオサンプルデータを一時記憶する装置と、
前記一時記憶したオーディオサンプルデータを順次再生読出しするための装置であって、前記受信したパケットに含まれる前記時間情報に基づき前記一時記憶したオーディオサンプルデータのサンプリング周期を更新しこの読出しを制御することにより、前記第1の周期に対応する周期で再生が行われるようにするものと
を含む。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002105307A JP3977124B2 (ja) | 2002-04-08 | 2002-04-08 | データ伝送方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002105307A JP3977124B2 (ja) | 2002-04-08 | 2002-04-08 | データ伝送方式 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13762396A Division JP3317140B2 (ja) | 1996-05-07 | 1996-05-07 | データ伝送方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003029787A JP2003029787A (ja) | 2003-01-31 |
JP3977124B2 true JP3977124B2 (ja) | 2007-09-19 |
Family
ID=19193795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002105307A Expired - Lifetime JP3977124B2 (ja) | 2002-04-08 | 2002-04-08 | データ伝送方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3977124B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014181595A1 (ja) * | 2013-05-07 | 2014-11-13 | ソニー株式会社 | 通信制御装置、通信制御方法、端末装置、データ受信方法、アクセスポイント及びプログラム |
-
2002
- 2002-04-08 JP JP2002105307A patent/JP3977124B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2003029787A (ja) | 2003-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6477181B1 (en) | Data communication method and system | |
US5923902A (en) | System for synchronizing a plurality of nodes to concurrently generate output signals by adjusting relative timelags based on a maximum estimated timelag | |
JP3463460B2 (ja) | データ伝送方式 | |
JP3687188B2 (ja) | パケット伝送方法 | |
JP3516206B2 (ja) | データストリーム処理装置および方法、並びにプログラム格納媒体 | |
JP3417392B2 (ja) | 同期制御装置 | |
JP2001356767A (ja) | 同期再生装置、同期再生方法および同期再生用プログラムを記録した記録媒体 | |
JP3317140B2 (ja) | データ伝送方式 | |
JP3552667B2 (ja) | 通信システム及び通信プログラムを記録した記録媒体 | |
JP3977124B2 (ja) | データ伝送方式 | |
US6909728B1 (en) | Synchronous communication | |
JP3556381B2 (ja) | 情報多重化装置 | |
JP4703095B2 (ja) | マルチメディアファイルの同期方法 | |
JP3861873B2 (ja) | 音楽システム及び音楽データ送受装置 | |
JP3358528B2 (ja) | 通信装置及び通信方法 | |
KR100799983B1 (ko) | 제 1 클록 속도에 기초한 제 1 데이터 패킷 타임스탬프를제 2 클록 속도에 기초한 제 2 데이터 패킷 타임스탬프로변환하기 위한 방법 및 데이터 레코더 | |
KR100852679B1 (ko) | 레코딩될 비트스트림에 대한 스터핑 데이터의 삽입을 제어하는 방법 및 장치 | |
JPH04157843A (ja) | 非同期転送モードのための音声セル生成方法および装置 | |
JP2002062884A (ja) | データ送受信方法、送受信端末、およびデータ送受信方法に係るプログラムを記憶した記憶媒体 | |
JP3786039B2 (ja) | 通信装置及び方法 | |
JP3627743B2 (ja) | データ伝送システムにおけるノード | |
JPH10190736A (ja) | ネットワークデータの同期方法および装置 | |
JP2000244536A (ja) | 遅延変動測定方法及び装置 | |
JP2008048140A (ja) | パケット信号受信装置 | |
JP4593405B2 (ja) | パケット送信方法、パケット送信装置及びパケット送信プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040713 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040727 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040927 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20041116 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041215 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050204 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20050209 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20050415 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070620 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100629 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100629 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110629 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120629 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120629 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130629 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140629 Year of fee payment: 7 |
|
EXPY | Cancellation because of completion of term |