JP3977124B2 - Data transmission method - Google Patents
Data transmission method 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
【0001】
【発明の属する技術分野】
この発明は、ディジタルオーディオデータのような、所定周期の時系列的な配列を持つ複数のオーディオサンプルデータを、ネットワークを介して伝送するデータ伝送方式に関し、特に、受信側においてその正確な時間関係を再現しうるような形で、送信側においてデータ形式を構成し、伝送するようにしたデータ伝送方式に関する。
【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 データ利用部[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a data transmission system for transmitting a plurality of audio sample data having a time-series arrangement of a predetermined period, such as digital audio data, via a network, and in particular, the accurate time relationship is shown on the receiving side. The present invention relates to a data transmission method in which a data format is configured and transmitted on a transmission side in a form that can be reproduced.
[0002]
[Prior art]
Data transmission methods via a network are roughly classified into a synchronous method and an asynchronous method. In the synchronization method, the transmission side and the reception side operate in synchronization with each other, which is suitable for the transmission of audio data that requires accurate reproduction of the temporal position of information on the reception side. However, a configuration is required to synchronize between transmission and reception, such as providing a separate synchronization signal line, and the communication band is statically secured by synchronizing, so as a communication method There was a drawback of lacking in versatility. That is, there is a problem that even when synchronous communication is not necessary, an unnecessary band is secured and other information cannot be transmitted.
[0003]
On the other hand, in the asynchronous method, the above-mentioned drawbacks can be avoided by dynamically securing the communication band. However, in order to reduce the communication overhead, a certain amount of information is collected. If the asynchronous packet is not issued above, the data communication efficiency will decrease. However, in the transmission of a packet in which a certain amount of information is collected, information on the original temporal position of data is lost. Therefore, in a data transmission system using packets, it is considered to transmit time information indicating the time position of the data together with the data. That is, time information called a “time stamp” indicating the time position is added to each piece of data, and these are included in one packet for transmission.
[0004]
[Problems to be solved by the invention]
However, if one packet is configured by adding time information indicating the time position for each piece of data, the amount of data increases, which is not a good idea.
The present invention has been made in view of the above-described points, and is a mode in which a plurality of audio sample data having a time-series arrangement with a fixed period, such as digital audio data, can be reproduced on the reception side. Therefore, when transmitting from the transmission side via the network, the asynchronous packet is adopted so that the advantage can be enjoyed, and the time information included in the packet and transmitted is expressed by the smallest possible data amount per packet. It is an object of the present invention to provide a data transmission system that can reduce the amount of transmission data.
It is another object of the present invention to provide a data transmission method that minimizes the time delay between transmission and reception.
Furthermore, the present invention is intended to provide a data transmission method that can simplify the time information reproduction calculation processing on the receiving side as much as possible when time information is expressed with a small amount of data.
[0005]
[Means for Solving the Problems]
The data transmission system according to the present invention is: A data transmission method for transmitting audio sample data from a transmitting device to a receiving device via a network, (A) On the transmitting side, supplying a plurality of audio sample data having a time-series arrangement of a first period, wherein the first period is variable, and a predetermined number of audios of two or more Specifying one audio sample data for each sample data, adding time information indicating a time position of the specified audio sample data, and a predetermined number of the audio sample data and one of the audio sample data Assuming that the time information added to the packet is one packet, asynchronous to the first period It is the period of the packet transmission service section in the network At a predetermined timing in the second cycle, Said And (b) receiving the packet via the network on the receiving side, temporarily storing the audio sample data included in the received packet on the receiving side, and the temporary storage A step for sequentially reproducing and reading the audio sample data, and updating the sampling period of the temporarily stored audio sample data based on the time information included in the received packet and controlling the reading, And a step of performing reproduction at a period corresponding to the first period.
[0006]
According to this, when audio sample data that can arbitrarily take various sampling periods (that is, audio sample data having a variable first period array) is transmitted, the first sample period is asynchronous with the first period. It is the period of the packet transmission service section in the network The audio sample data packet is transmitted at a predetermined timing in the second period. In that case, one audio sample data is specified for every two or more predetermined number of audio sample data without adding time information to all audio sample data, and the specified audio sample data is specified. Is added to the time information. Then, one packet is composed of a predetermined number of audio sample data, and the time information added to any one of the audio sample data is included in the one packet, and the packet is transmitted via the network. To do. The receiving side temporarily stores the audio sample data included in the packet received via the network, and sequentially reads the temporarily stored audio sample data based on the time information included in the received packet. By updating and controlling the sampling cycle of the audio sample data, reproduction is performed at a cycle corresponding to the original predetermined cycle. Therefore, enjoy the benefits of using asynchronous packets thing In addition, since only one time information is included per packet, the time information can be expressed by a data amount as small as possible to reduce the transmission data amount per packet.
[0008]
In addition The meaning of the asynchronous packet described here is that the packet transmission period is set independently of the sampling period for the original sample data to be transmitted. Since the packet itself is transmitted and received at a constant cycle, it is a synchronous communication.
[0009]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
First, in order to facilitate understanding, some specific examples of the data transmission method according to the embodiment are illustrated as illustrated in FIG. FIG. 1A illustrates an example of a data transmission method according to the first aspect, and FIGS. 1B and 2C illustrate two different examples of the data transmission method according to the second aspect. Is shown in FIG.
In each first stage of FIGS. 1A, 1B, and 1C, a plurality of audio samples having a time-series arrangement with a predetermined period (first period) T supplied on the transmission side are provided. An example of a time series arrangement of data is shown, and
In each second stage of FIGS. 1A, 1B, and 1C, the state of a packet transmitted through the network is shown, and the number written in the time slot frame is included in the packet. This is an ordinal number for identifying audio sample data, and the numbers (1, 13, 17, 21, 29, 33, etc.) shown below the audio sample data indicate time stamps, that is, time information included in the packet. The third stage of each of FIGS. 1A, 1B, and 1C shows the playback state of audio sample data on the receiving side.
[0010]
Referring to the example of FIG. 1A according to the first aspect, in transmission, one packet is composed of a predetermined number N of audio sample data (N = 4 in the example in the figure), and the number of data N (1 = 4) The audio sample data at the beginning of the packet is specified for each data, and a time stamp indicating the time position of the specified audio sample data is added. For example, the first packet is composed of four audio sample data with
[0011]
On the receiving side, the original predetermined period T on the transmitting side can be estimated based on a change or function of a time stamp included in each sequentially given packet. There are various methods for estimating the original period T based on the time stamp, but the most typical method is to perform the following calculation from the difference between the time stamps included in two successive packets. That is, if the time stamp value of the packet transmitted this time is TS (i) and the time stamp value of the packet transmitted before is TS (i-1), there are N data between them. Therefore, the original period T can be estimated by calculating the following formula.
T = {TS (i) −TS (i−1)} / N (Formula 1)
On the receiving side, data included in the received packet is sequentially reproduced and read out in a cycle corresponding to the original cycle T thus estimated. Thus, data reproduction in the original period T can be ensured. In the case of FIG. 1A, since it is necessary to wait until two packets are transmitted for the above estimation calculation, the data reproduction on the reception side starts with the first data (ordinal number on the transmission side). 0) is supplied and when the service section SF has passed five cycles, that is, the sixth service section SF6 in FIG.
[0012]
As described above, when the number of data per packet is a predetermined fixed number N as in the transmission method according to the first aspect, there is a problem in that the packet transmission rise delay and the data reproduction start delay on the receiving side are delayed. It becomes. The transmission method according to the second aspect can improve this point and avoid such a delay problem as much as possible.
The difference between the transmission method according to the second aspect illustrated in FIGS. 1B and 1C and the transmission method according to the first aspect is that a predetermined number of data accumulates in the transmission method according to the second aspect. Without waiting for packet transmission until the packet transmission is regularly performed every predetermined second period, and accordingly, the number of data constituting one packet becomes variable. is there. That is, one packet is constituted by the data supplied within one period of the second period for each predetermined second period longer than the first period T, which is the original period of the data to be transmitted. Packet transmission is performed every second period, and generally, the relationship between the first and second periods is a non-integer multiple (of course, it may happen that it is an integer multiple relationship). However, the number of data included in one cycle varies variably (within a range of ± 1) for each cycle of the second cycle. In the example of FIGS. 1B and 1C, it is shown that the second cycle for performing packet transmission is performed in a cycle for each service section SF.
[0013]
Referring to the example of FIG. 1B, for each service section, the data supplied in that section is included in one packet and transmitted to the network in the next service section. The number x of data included in one packet is variable, and is 3 or 2 in the example of the figure. In the example of FIG. 1B, for each data having the same number of data x (variable) per packet, the head data of the packet is specified, and a time stamp indicating the time position of the specified head data is added. I try to add it. Therefore, a time stamp is added to each predetermined number of data of 2 or more, and this predetermined number is a variable number that is linked to the variable number of 1-packet data. For example, the first packet is composed of three data with
[0014]
Also in this case, on the receiving side, the original predetermined period T on the transmitting side can be estimated based on a change or function of a time stamp included in each sequentially given packet. As described above, there are various methods for estimating the original period T based on the time stamp, but the most typical method performs the following calculation from the difference between the time stamps included in two adjacent packets. Therefore, the calculation formula for this case is as follows.
T = {TS (i) −TS (i−1)} / x (Formula 2)
Here, TS (i) and TS (i-1) are the time stamp value of the packet transmitted this time and the time stamp value of the packet transmitted last time, as described above. x is the number of data included in the packet transmitted last time, and is a variable number as described above.
On the receiving side, data included in the received packet is sequentially reproduced and read out in a cycle corresponding to the original cycle T thus estimated. Thus, data reproduction in the original period T can be ensured. In the case of FIG. 1B, since the second packet is transmitted in the third service section SF3 from the time when the first data (ordinary number 0) is supplied on the transmitting side, the data is transmitted on the receiving side. The reproduction starts when the first data (ordinary number 0) is supplied on the transmission side and after the elapse of 3 cycles of the service section SF, that is, the fourth service section SF4. In this way, in the case of FIG. 1B, the rise of packet transmission and the start of data reproduction on the receiving side are earlier than in the case of FIG. 1A, and the problem of delay is improved. I understand that. On the other hand, considering the time information reproduction processing on the receiving side, the variable number x is divided as shown in the
[0015]
In the example of FIG. 1C, further improvements are made to the example of FIG. 1B so that the arithmetic processing on the receiving side can be simplified. Referring to the example of FIG. 1C, for each service section SF, the data supplied in that section is included in one packet and transmitted to the network in the next service section. As in (b), the number x of data included in one packet is variable, and is 3 or 2 in the example of the figure. In the example of (c), the method of adding time information is different from that in (b). That is, in the example of FIG. 1C, one piece of data is specified for each piece of data composed of two or more predetermined constants M, and a time stamp indicating the time position of the specified data, that is, time information is added. ing. In the illustrated example, M is 4, and a time stamp indicating the time position of the head data of the group is added to every four data groups. Therefore, a time stamp is added to each predetermined number of data of 2 or more, but this predetermined number is not related to the variable number x of 1-packet configuration data unlike the example of (b). , Constant M (“4” in the figure).
In the example of FIG. 1C, the first packet is composed of three data with
[0016]
Since the number of data in one packet is variable, the number of data M in one group to which one time stamp is added is a constant. Therefore, some packets are not accompanied by a time stamp, that is, time information. Come out. The packet including the data of
Also in the case of FIG. 1C, on the receiving side, the original predetermined period T on the transmitting side can be estimated on the basis of a change or function of a time stamp included in each sequentially given packet. As described above, there are various methods for estimating the original period T based on the time stamp, but the most typical method performs the following calculation from the difference between the time stamps included in two adjacent packets. Therefore, the calculation formula for this case is as follows.
T = {TS (i) −TS (i−1 ′)} / M (Formula 3)
Here, TS (i) is the time stamp value of the packet transmitted this time, and TS (i-1 ′) is the valid time stamp value transmitted before that, as described above. . Therefore, this calculation is not performed when the packet transmitted this time includes the above “void” instead of the time stamp. If the time stamp value of the previously transmitted packet has a valid value other than “void”, TS (i−1 ′) is the time stamp value TS (i of the previously transmitted packet. -1), but if the above-mentioned “void” is included in the previously transmitted packet instead of the time stamp, TS (i-1 ′) is the time stamp of the packet transmitted the last time. This corresponds to the value TS (i-2). As described above, M is a constant indicating the number of data in the data group to which one time stamp is added.
[0017]
On the receiving side, the data included in the received packet is sequentially reproduced and read out in a cycle corresponding to the original (original) cycle T thus estimated. Thus, data reproduction in the original cycle T can be ensured. Also in the case of FIG. 1C, since the second packet is transmitted in the third service section SF3 counting from when the first data (ordinary number 0) is supplied on the transmission side, Data reproduction starts from the time when the first data (ordinary number 0) is supplied on the transmission side to the time of the fourth service section SF4 after the elapse of three cycles of the service section SF. Accordingly, also in the case of FIG. 1C, the rise of packet transmission and the start of data reproduction on the receiving side are earlier than in the case of FIG. 1A, and the problem of delay is improved. Understandable. Further, in the case of FIG. 1 (c), in consideration of the time information reproduction process on the receiving side, as shown in the
[0018]
As described above, it can be understood that the most preferable data transmission method can be provided according to the example of FIG. 1C in the second aspect. Therefore, the present invention can also be implemented from the viewpoint of performing asynchronous packet transmission in such a most preferable format on the transmission side. That is, from the viewpoint of such a transmission method, the data transmission method according to the present invention includes a step of supplying a plurality of data having a time-series arrangement of the first period and two or more predetermined constants. Identifying one data in the group for each group of data and adding time information indicating a time position of the identified data; a predetermined second period longer than the first period Each time, if there is data in which a plurality of the data supplied in one cycle of the second cycle is one packet and the time information is added to the data in the packet, the time information is And including the step of transmitting the packet through a network. This operation and effect are as described above according to the example of FIG. Of course, also in the examples of FIGS. 1A and 1B, the invention can be grasped from the viewpoint of only the transmission method.
[0019]
Next, as a most preferred embodiment, a detailed example of the embodiment according to the example of FIG. 1C in the second aspect will be described.
FIG. 2 is a schematic block diagram showing the overall configuration of an embodiment of the data transmission system according to the present invention. On the
[0020]
The audio sample data output from the
[0021]
On the receiving
[0022]
On the transmitting
FIG. 3 schematically shows an example of the “transmission preparation process” performed on the
First, in step S1, the storage contents of the
[0023]
In step S2, the contents of the ordinal register ORDR are divided by a predetermined number M to check whether the remainder is zero. The ordinal register ORDR stores data indicating the ordinal number of the data detected to be input to the
When the content of the ordinal register ORDR is divided by the predetermined number M and the remainder is 0, that is, the determination in step S2 is YES, the current data corresponding to the content of the ordinal register ORDR (data buffer) 12 indicates that the new data just input) is data to which a time stamp is to be added.
[0024]
Therefore, if step S2 is YES, the process goes to step S3, and the current value of the timer 13 (this schematically shows the time at which one sample data from the
In this way, one data to be added with the time stamp is specified by the process of step S2, and the time stamp data to be added to the specified data, that is, time information is determined / generated by the process of step S3, and is registered in the register TSt.
On the other hand, if step S2 is NO, the process jumps to step S4 and time stamp data is not registered.
[0025]
In step S4, new data (that is, current data corresponding to the contents of the ordinal register ORDR) input to the
In the next step S5, the contents of the ordinal register ORDR are incremented by 1.
Thereafter, the process returns to the main routine. Then, the “transmission preparation process” of FIG. 3 is performed again in the course of the main routine. In this way, the “transmission preparation process” of FIG. 3 is repeated. In the process of repeating this “transmission preparation process”, several pieces of sequentially supplied data are sequentially stored in the transmission buffer TBF. Some (generally a plurality of x) data stored in the transmission buffer TBF are transmitted as one packet by the “transmission interrupt process” described below.
[0026]
FIG. 4 schematically shows an example of the “transmission interrupt process” performed on the
When a transmission interruption occurs, first, in step S6, the time stamp data registered in the transmission side time stamp register TSt is transmitted and set as time stamp information “TIME STAMP” and stored in the transmission buffer TBF. A value obtained by counting the number of existing data x and setting it as the number of samples x “SAMPLE x”, and subtracting the number of samples x “SAMPLE x” from the contents of the ordinal register ORDR (ORDR− “SAMPLE x”) Is transmitted and set as the packet head sample ordinal number “SAMPLE ORDER”. The packet head sample ordinal number “SAMPLE ORDER” indicates the sample ordinal number of the data with the head in time series order among a plurality of data included in one packet to be transmitted. Since the current content of the ordinal register ORDR indicates the next sample ordinal number of the last data in the time-series order among a plurality of data included in one packet to be transmitted, the number of samples of data included in the packet “SAMPLE” Subtracting x ″ indicates the sample ordinal number of the head data in the packet.
[0027]
In the next step S7, a plurality of x data stored in the transmission buffer TBF, each piece of information transmitted and set in the previous step S6, that is, time stamp information “TIME STAMP”, sample number x “SAMPLE x”, packet head The sample ordinal “SAMPLE ORDER” is created as one packet, and the packet is transmitted via the
In the next step S8, empty data “void” is set in the transmission side time stamp register TSt, and then the process returns. When the next packet is accompanied by a valid time stamp, the contents of the register TSt are updated with a valid time stamp value by way of the process of step S3 in FIG. On the other hand, if the next packet is not accompanied by a valid time stamp, the process of step S3 in FIG. 3 is not performed, and therefore the empty data “void” is held without updating the contents of the register TSt. Then, the next “transmission interrupt processing” is reached. In such a case, in step S6 of FIG. 4, the empty data “void” is transmitted and set as the time stamp information “TIME STAMP”.
[0028]
For example, assuming that M = 4, the operation example of FIGS. 3 and 4 will be described with reference to the first and second stages of FIG.
First, when ordinal 0 data is taken into the
Next, when the ordinal 1 data is taken into the
The same applies when ordinal 2 data is taken into the
[0029]
In this way, three data of
[0030]
In the second service section SF2, two data with
When the “transmission interrupt process” of FIG. 4 is performed after the end of the second service section SF2, “17” of the register TSt is transmitted and set as the time stamp information “TIME STAMP” by the process of step S6. “2” is transmitted and set as the number x “SAMPLE x”, and “3” (5-2 = 3) is transmitted and set as the packet head sample ordinal number “SAMPLE ORDER”. Then, based on the processing in step S7, at appropriate time points in the third service section SF3, these pieces of information and the two data with
[0031]
In the third service section SF3, two data with
Therefore, in the next “transmission interrupt process”, empty data “void” is transmitted and set as the time stamp information “TIME STAMP”, “2” is transmitted and set as the number of samples x “SAMPLE x”, and the packet head sample As the ordinal number “SAMPLE ORDER”, “5” (7−2 = 5) is set to be transmitted. These pieces of information and the two data with
Thereafter, the same operation is performed, and a packet having the contents as shown in the second stage is transmitted according to the time-series data as shown in the first stage of FIG.
[0032]
FIG. 5 schematically shows an example of “reception processing” performed on the
This “reception process” is executed every time the receiving
First, in step S11, among the information included in one packet received via the
Next, in step S12, the variable register i is set to an
In the
[0033]
In the next step S14, the value obtained by adding the current value of the variable register i to the contents of the register j (that is, the packet head sample ordinal number “SAMPLE ORDER”) is divided by the predetermined number M to determine whether the remainder is zero. Investigate. That is, it is checked whether the data written in the
In step S15, it is checked whether or not the content of the reception time stamp register TSr is empty data “void”. By the initial setting process (not shown), the contents of the register TSr are initialized to empty data “void”, and then included in one received packet by performing the next step S16. The time stamp information “TIME STAMP” is loaded into the register TSr. Therefore, this step S16 is a process for loading the first time stamp information “TIME STAMP” into the register TSr. Thereafter, step S15 is determined to be NO, and processing is performed exclusively through the route of steps S17 and S18.
[0034]
In step S17, an operation corresponding to
In the next step S18, the time stamp information “TIME STAMP” included in the currently received packet is loaded into the reception side time stamp register TSr, the contents of the register TSr are updated, and the update clock register updateCLOCK is set to a true value. Set TRUE.
[0035]
In step S19, the value of variable register i is incremented by one. In the next step S20, it is checked whether or not the value of the incremented variable register i is equal to the number of data x in the packet stored in the register X. If NO, the process returns to step S13, and the processes of steps S13 to S18 are repeated with respect to the incremented value of the variable register i.
If YES in step S20, the process goes to step S21, and the sampling clock frequency on the receiving
[0036]
Next, assuming that M = 4, the operation example of FIG. 5 will be described with reference to the second and third stages of FIG.
When the information of the first packet including the data of
[0037]
When the information of the second packet including the data of the
[0038]
When the information of the third packet including the data of the
[0039]
When information of the fourth packet including the data of the
Thereafter, the same operation is performed, and in response to reception of a packet having the contents as shown in the second row of FIG. Is called.
[0040]
In the above example, since the numerical value of the time stamp information is shown in a simplified manner, the period T obtained as a result of the calculation is a constant
The predetermined constant M in the above embodiment is a value that does not add a time stamp to two or more data in one packet generation period (that is, one service section SF), that is, within one packet generation period. It is desirable that the value be larger than the maximum value of the number of data to be supplied (“3” in the example of FIG. 1). In order to increase the reproducibility of the sampling period T on the receiving side, such a value is desirable. It is desirable to be the minimum value of Furthermore, it is preferable to set M to a power of 2 because the division operation can be simplified.
[0041]
By the way, in order to synchronize the sampling clock frequencies on the transmission side and the reception side, the simplest is to give information indicating the sampling clock frequency from the transmission side to the reception side at the beginning of data transmission, and on the reception side The clock division ratio should be set so as to oscillate the sampling clock frequency corresponding to the information. However, there may be a slight difference in the actual sampling clock frequency between the transmitting side and the receiving side due to the individual difference of the crystal oscillator used as the oscillation source. There's a problem. That is, in the data reproduction / reading technique based on the clock oscillation output, the oscillation output of the crystal oscillator used as the oscillation source is divided to create a sampling clock having a desired period. Even if the same division ratio is set between transmission and reception due to individual differences between the crystal oscillator used and the crystal oscillator used to read data on the reception side, the actual sampling clock frequency on the transmission side and reception side is subtly Misalignment may occur. This subtle deviation is accumulated in a continuous audio reproduction process or the like over a long period of time, and finally causes a noticeable deviation in reproduction timing.
[0042]
For example, in general, when transmitting and receiving information between different systems, a buffer is provided on the receiving side to absorb the timing shift of data transfer, but as described above, there is a slight shift in the sampling clock frequency between transmission and reception. If there is, the receiver buffer may overflow (if the receiver clock frequency is relatively slow) or underflow (if the receiver clock frequency is relatively fast). is there. In such a case, normal data transmission / reception cannot be performed, which is not preferable. On the other hand, in the method of controlling the sampling clock frequency on the transmission side and the reception side to be constantly synchronized by adding time information to the data to be transmitted as in the present invention, such a problem occurs. Since it does not occur, it is more preferable.
[0043]
In the above embodiment, the receiving
Prior to data transmission, data indicating a basic sampling period T is transmitted, and the receiving
Prior to transmission of the original data, some dummy data may be transmitted with an initial value of the time stamp. In this case, the data reproduction / reading on the receiving
[0044]
In the case of implementing the data transmission method as shown in FIG. 1B, the steps S2 and S3 of FIG. 3 are generally omitted, and instead of “TIME STAMP ← TSt” in step S6 of FIG. “TIME STAMP ← current value of
Further, when the data transmission method as shown in FIG. 1A is performed, data per packet is generally used instead of the predetermined constant M in step S2 in FIG. 3 and steps S14 and S17 in FIG. A fixed number N indicating the number is used, and at the start of the “transmission interrupt process” in FIG. 4, a step for checking whether the number of data x in the transmission buffer TBF is N or more is provided. The interruption process is terminated. If YES, the interruption process is continued. At the time of continuation, a predetermined number N is transmitted and set as “sample number x“ SAMPLE x ”” in step S6, and the preceding N data of the data in the transmission buffer TBF is formed as one packet in step S7. If there are remaining data, they are left in the transmission buffer TBF.
[0045]
【The invention's effect】
As described above, according to the present invention, when a plurality of audio sample data having a time-series arrangement with a fixed period is transmitted via a network, the advantage can be obtained using asynchronous packets. In addition, there is an excellent effect that it is possible to reduce the amount of transmission data per packet by expressing the time information included in the packet and transmitting it with as little data as possible.
It is also possible to provide a data transmission system that minimizes the time delay between transmission and reception. Furthermore, when the time information is expressed with a small amount of data, it is possible to simplify the reproduction processing of the time information on the receiving side as much as possible.
[Brief description of the drawings]
FIG. 1 is a timing chart illustrating several specific examples of a data transmission method according to the present invention.
FIG. 2 is a schematic block diagram showing the overall configuration of an embodiment of a data transmission system according to the present invention.
FIG. 3 is a flowchart schematically showing an example of “transmission preparation processing” performed on the transmission side in FIG. 2;
4 is a flowchart schematically showing an example of “transmission interrupt processing” performed on the transmission side in FIG. 2;
FIG. 5 is a flowchart schematically showing an example of “reception processing” performed on the reception side in FIG. 2;
[Explanation of symbols]
10 Sender
20 Receiver
30 network
11 Data generator
12,22 Data buffer
13 Timer
14, 24 Network processing unit
23 Clock generator
21 Data Usage Department
Claims (2)
(a)送信側において、
第1の周期の時系列的な配列を持つ複数のオーディオサンプルデータを供給するステップと、ここで前記第1の周期は可変であり、
2以上の所定数の前記オーディオサンプルデータ毎に1つのオーディオサンプルデータを特定し、該特定されたオーディオサンプルデータの時間位置を示す時間情報を付加するステップと、
所定数の前記オーディオサンプルデータ及び該オーディオサンプルデータの中のいずれかに対して付加された前記時間情報を1パケットとして、前記第1の周期に非同期の前記ネットワークにおけるパケット送信サービス区間の周期である第2の周期の所定タイミングにおいて、前記ネットワークに送出するステップと
を具備し、
(b)受信側において、
前記ネットワークを介して前記パケットを受信するステップと、
受信したパケットに含まれる前記オーディオサンプルデータを一時記憶するステップと、
前記一時記憶したオーディオサンプルデータを順次再生読出しするためのステップであって、前記受信したパケットに含まれる前記時間情報に基づき前記一時記憶したオーディオサンプルデータのサンプリング周期を更新しこの読出しを制御することにより、前記第1の周期に対応する周期で再生が行われるようにするステップと
を具備することを特徴とするデータ伝送方式。A data transmission method for transmitting audio sample data from a transmitting device to a receiving device via a network,
(A) On the transmission side,
Supplying a plurality of audio sample data having a time-series arrangement of first periods, wherein the first period is variable;
Identifying one audio sample data for every two or more predetermined number of audio sample data, and adding time information indicating a time position of the identified audio sample data;
A period of a packet transmission service section in the network asynchronous with the first period, where a predetermined number of the audio sample data and the time information added to any one of the audio sample data are defined as one packet Sending to the network at a predetermined timing of the second period,
(B) On the receiving side,
Receiving the packet via the network;
Temporarily storing the audio sample data included in the received packet;
A step for sequentially reproducing and reading the temporarily stored audio sample data, wherein the sampling period of the temporarily stored audio sample data is updated based on the time information included in the received packet and the reading is controlled. And a step of performing reproduction at a period corresponding to the first period.
(a)前記送信側装置は、
第1の周期の時系列的な配列を持つ複数のオーディオサンプルデータを供給する装置と、ここで前記第1の周期は可変であり、
2以上の所定数の前記オーディオサンプルデータ毎に1つのオーディオサンプルデータを特定し、該特定されたオーディオサンプルデータの時間位置を示す時間情報を付加する装置と、
所定数の前記オーディオサンプルデータ及び該オーディオサンプルデータの中のいずれかに対して付加された前記時間情報を1パケットとして、前記第1の周期に非同期の前記ネットワークにおけるパケット送信サービス区間の周期である第2の周期の所定タイミングにおいて、前記ネットワークに送出する装置と
を含み、
(b)前記受信側装置は、
前記ネットワークを介して前記パケットを受信する装置と、
受信したパケットに含まれる前記オーディオサンプルデータを一時記憶する装置と、
前記一時記憶したオーディオサンプルデータを順次再生読出しするための装置であって、前記受信したパケットに含まれる前記時間情報に基づき前記一時記憶したオーディオサンプルデータのサンプリング周期を更新しこの読出しを制御することにより、前記第1の周期に対応する周期で再生が行われるようにするものと
を含む。A system for transmitting audio sample data between a transmitting device and a receiving device via a network,
(A) The transmitting side device
An apparatus for supplying a plurality of audio sample data having a time-series arrangement of a first period, wherein the first period is variable;
An apparatus for specifying one audio sample data for every two or more predetermined number of the audio sample data, and adding time information indicating a time position of the specified audio sample data;
A period of a packet transmission service section in the network asynchronous with the first period, where a predetermined number of the audio sample data and the time information added to any one of the audio sample data are defined as one packet A device for sending to the network at a predetermined timing of the second period,
(B) The receiving side device
An apparatus for receiving the packet via the network;
An apparatus for temporarily storing the audio sample data included in the received packet;
An apparatus for sequentially reproducing and reading the temporarily stored audio sample data, and updating a sampling period of the temporarily stored audio sample data based on the time information included in the received packet and controlling the reading. Thus, reproduction is performed at a period corresponding to the first period.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002105307A JP3977124B2 (en) | 2002-04-08 | 2002-04-08 | Data transmission method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002105307A JP3977124B2 (en) | 2002-04-08 | 2002-04-08 | Data transmission method |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP13762396A Division JP3317140B2 (en) | 1996-05-07 | 1996-05-07 | Data transmission method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2003029787A JP2003029787A (en) | 2003-01-31 |
| JP3977124B2 true JP3977124B2 (en) | 2007-09-19 |
Family
ID=19193795
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2002105307A Expired - Lifetime JP3977124B2 (en) | 2002-04-08 | 2002-04-08 | Data transmission method |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3977124B2 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2014181595A1 (en) * | 2013-05-07 | 2014-11-13 | ソニー株式会社 | Communication control device, communication control method, terminal device, data reception method, access point, and program |
-
2002
- 2002-04-08 JP JP2002105307A patent/JP3977124B2/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JP2003029787A (en) | 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 (en) | Data transmission method | |
| JP3687188B2 (en) | Packet transmission method | |
| JP2002084264A (en) | Synchronization control apparatus | |
| JP2004139730A (en) | Method for generating additional information for ensuring continuous reproduction between data strings, recording medium storing this information, and recording, editing and / or reproducing apparatus | |
| JP3317140B2 (en) | Data transmission method | |
| JP3516206B2 (en) | Data stream processing apparatus and method, and program storage medium | |
| JP3552667B2 (en) | Communication system and recording medium recording communication program | |
| JP3977124B2 (en) | Data transmission method | |
| JP3556381B2 (en) | Information multiplexing device | |
| US6909728B1 (en) | Synchronous communication | |
| JP4703095B2 (en) | How to sync multimedia files | |
| JP3861873B2 (en) | Music system and music data transmission / reception device | |
| KR100682444B1 (en) | Audio signal processor | |
| JP3358528B2 (en) | Communication device and communication method | |
| US6525253B1 (en) | Transmission of musical tone information | |
| KR100799983B1 (en) | Method and data recorder for converting a first data packet timestamp based on a first clock rate to a second data packet timestamp based on a second clock rate | |
| KR100852679B1 (en) | Method and apparatus for controlling the insertion of stuffing data for the bitstream to be recorded | |
| JPH0630043A (en) | Voice packet communication system | |
| JPH04157843A (en) | Method and device for generating voice cell for asynchronous transfer mode | |
| JP2002062884A (en) | Method and terminal for data transmission and reception, and storage medium stored with program regarding method for data transmission and reception | |
| JPH10190736A (en) | Method and apparatus for synchronizing network data | |
| JP3627743B2 (en) | Node in data transmission system | |
| JPH0879087A (en) | Waveform data compression device, waveform data compression method, and waveform data demodulation device |
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 |