JP4241227B2 - Data transmitting apparatus and data receiving apparatus, data transmitting method and data receiving method, and data communication system - Google Patents

Data transmitting apparatus and data receiving apparatus, data transmitting method and data receiving method, and data communication system Download PDF

Info

Publication number
JP4241227B2
JP4241227B2 JP2003194448A JP2003194448A JP4241227B2 JP 4241227 B2 JP4241227 B2 JP 4241227B2 JP 2003194448 A JP2003194448 A JP 2003194448A JP 2003194448 A JP2003194448 A JP 2003194448A JP 4241227 B2 JP4241227 B2 JP 4241227B2
Authority
JP
Japan
Prior art keywords
data
decoding means
decoding
encoding
encoded
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 - Fee Related
Application number
JP2003194448A
Other languages
Japanese (ja)
Other versions
JP2005033373A (en
Inventor
満広 稲積
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2003194448A priority Critical patent/JP4241227B2/en
Publication of JP2005033373A publication Critical patent/JP2005033373A/en
Application granted granted Critical
Publication of JP4241227B2 publication Critical patent/JP4241227B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、符号化された動画、音楽、音声などのリアルタイムデータをネットワークを介して通信するためのデータ送信装置およびデータ受信装置、データ送信方法およびデータ受信方法、データ通信システムに関する。
【0002】
【従来の技術】
インターネット環境の拡大に伴い、非常に多くのデータがネットワークを介して通信されるようになってきた。この通信対象となるデータの中には、文字や静止画などの非リアルタイムデータに加え、動画、音楽、音声などのリアルタイムデータも含まれるようになってきている。
【0003】
これらのリアルタイムデータをネットワークを介して通信するためには何らかの符号化処理が施される。これらの符号化処理は符号化効率を高めるために、データの時間的な近傍での相関の強さを利用し、基準となるデータとの差分データのみを符号化して通信する方法を用いることが多い。しかし、この方法においては、それら符号化されたデータが正しい順序で、欠落なく、かつ適切なタイミングで受信側へ伝送されることが必要となる。
【0004】
一方、現在のネットワーク通信の基盤となっているものがインターネットプロトコル(以下IPと略す)である。IPを用いた通信の特徴として、データを分割して通信するパケット型通信であること、ベストエフォート型通信であることなどを挙げることができる。
【0005】
このベストエフォート型通信においては、送信したデータが、送信された順序で受信側へ届くことは保証されない。さらに、送信したデータが受信側に届くこと自体が保証されていない。実際のネットワーク環境においては、受信側に到達しないパケット、つまりパケットロスは10数パーセントにも及ぶ場合もある。
つまり、このようなネットワーク上で、リアルタイムデータの通信を行うためには多くの課題がある。
これらの課題のうち、パケットロスに対応する技術としては、▲1▼再送、▲2▼誤り訂正、▲3▼その他(再同期化)などが考えられる。
【0006】
この▲1▼の再送は最も多く用いられる手法であり、たとえば、トランスミッションコントロールプロトコル(以下、TCPと略す)などが用いられる。TCPの詳細はIETFの技術文書RFC793に記述されている。
【0007】
この方法は単純に言って、送信側と受信側がハンドシェイクを行いながらデータ通信を行うものである。つまり、送信されたデータに対し、受信側から送信側へ、適正に受信したことを示すデータであるACKが返信されることによりデータ通信が進行するものである。送信側は、一定時間の間にACKが返信されない場合にはデータの再送を行う。このように、ACKを用いたハンドシェイクにより、送信データが受信側に到着したことが保証される。
【0008】
また、上述の▲2▼の誤り訂正の例としては、特開2000−134619号公報に記載の「エンコード方法及びエンコーダ」の中で従来例として紹介されている方法がある。
これらの方法は単純に言って、データをインターリーブし、複数パケットに分散し、それらに誤り訂正符号を付けることにより、パケットロスを検出し、復元するものである。
【0009】
たとえば、k個のデータをh+k個のデータへインターリーブし、誤り訂正符号を付ける。送信側は、このh+k個のデータを送信する。受信側においては、h+k個のデータの内、例えば任意のk個のデータを受信することができれば、それに含まれるデータと誤り訂正符号により、送信データの全体を完全に復元することができる。
このhとkの割合はネットワークの統計的な情報により決定され、送信データが受信側で適正に復元されることは確率的に保証される。
【0010】
上記▲3▼の再同期化の例としては、特開2002−10265号公報に記載の「送信装置およびその方法と受信装置およびその方法」がある。この技術は、上述の▲1▼と▲2▼の技術とは異なり、データの完全性と言うよりは、動画や音楽、音声の通信におけるパケットロスの影響をできるだけ小さくすることを目指したものである。
【0011】
まず、図12および図13を用いて、動画データを例としたパケットロスの影響を簡単に説明する。図中の数字が書き込まれた四角形F1,F2,・・・は、それぞれ動画の1フレーム分のデータを模式的に示す(以下では、四角形F1,F2,・・・をフレームF1,F2,・・・と呼ぶ)。
【0012】
また、これらフレームF1,F2,・・・のうち、太枠のフレームF1とF5は、それ単独で復号化可能なフレームデータ(以下ではIピクチャと略す)を示すものとする。また、それ以外の細枠の四角形(フレームF2,F3,F4,F6,F7など)は、それ単独では復号できない差分データよりなるフレーム(以下ではPピクチャと略す)を示すものとする。また、それら四角形を結ぶ曲線矢印aは、フレーム間の依存関係を示すものとする。
【0013】
通常の動画符号化方式では、Iピクチャが周期的に現れるように設定され、1つのIピクチャから次のIピクチャまでのデータの集合をグループオブピクチャズ(以下GOPと略す)と呼ぶ。図12の例では、フレームF1からF4までが1つのGOPであるといえる。このGOPは相互に独立に復号化可能である。逆に言うと、GOP内でパケットロスが発生すると、それ以降、同一のGOP内のデータを適正に複号することはできない。
【0014】
図12は、通信が全て適正に行われる場合を模式的に示したものである。図12(a)に示す送信側から送られたそれぞれのパケットに対応するフレームF1,F2,・・・は、図12(b)に示すように、受信側へ正しい順序で、パケットロス無く、適切なタイミングで到着したとする。この場合は、全てのフレームF1,F2,・・・が適正に復号でき、それによって、元データを適正に復元することができる。
【0015】
一方、図13は、図13(a)に示す送信側から送られたそれぞれのパケットに対応するフレームF1,F2,・・・のうち、たとえば、フレームF3がパケットロスにより欠落した場合を示す(図中の×を付けたフレームがパケットロスしたとする)。
【0016】
この場合、フレームF3のデータが復号できないのは当然であるが、それ以降のフレームF4のデータが適正に受信されたとしても、フレームF4はフレームF3のデータに依存するため、これを適正に復号することはできず、元データを適正に復元できないことになる。このため、元データを適正に復元するには、次のGOPの開始フレーム、つまり、フレームF5を受信するまでは再開することができないことになる。
【0017】
MPEGなどにおいては、通常、0.5秒程度に相当する分のデータがGOPとなるのが一般的である。つまり、最大0.5秒ほどのデータが、パケットロスにより複号できない可能性がある。これは、人間の知覚上で十分に長い時間であり、大きな画質の劣化を引き起こす。上述の特開2002−10265号公報に記載の技術は、このような問題の改善を図るものであり、以下にこの特開2002−10265号公報に記載の技術について簡単に説明する。
まず、この特開2002−10265号公報がその中で従来例として挙げている技術を図14を用いて簡単に説明する。
【0018】
これは単純に言って、パケットロスが検出された場合、受信側から送信側に対して、データ未着を示すNACKを返信し、それにより、送信側が差分の元となるデータ(以下、参照データを呼ぶ)を変更したデータを送信するというものである。
【0019】
まず、図14に示すように、フレームF3が未着のまま、フレームF4が受信された場合、フレームF3がパケットロスしたことが検出される。このままでは、図13の例と同じく、フレームF4も、またそれに続くもフレームF5も適正には復号することはできず、元データを適正に復元することはできない。
【0020】
この特開2002−10265号公報がその中で従来例として挙げている技術においては、この場合、受信側より送信側へNACKが返信される。NACKを受信した送信側は、欠落したフレームの近傍で、受信側が適正に受信したフレームを新たな参照データとし、それに対する差分データとして次のフレームF5に対応するデータを送信する。たとえば、図14の場合は、欠落したフレームF3の直前のデータであるフレームF2を新たな参照データとしている。
受信側においては、フレームF2は適正に受信しているので、それに対するフレームF5の差分データを適正に復号することができる。
【0021】
このように、この技術によれば、フレームF3とフレームF4は適正には復号できずそれに対応する元データの復元は失敗するが、それ以降のフレームにおいては、復元を再開することが可能となる。
【0022】
しかし、この技術においては、通信が多点間に渡る場合、受信側のそれぞれに異なったフレームで欠落が起こった場合に対応するために、各々の受信側と1対1に対応する参照データを送信側が持つ必要があるという問題がある。特開2002−10265号公報に記載の技術は、そのような問題を解決するものである。
【0023】
特開2002−10265号公報に記載の技術は単純にいうと、パケットロスが発生した場合に切り替える参照データを予め、送信側、および全ての受信側においてルールとして定めておくと言うものである。これにより、送信側は全ての受信側へ、参照データを切り替えるということを通知することのみで、各々の受信側と1対1に対応する参照データを持つ必要がなくなる。
【0024】
図15はそれを説明するためのもので、パケットロスが発生した場合の参照フレームをフレームF1と指定した場合の図である。
この図15において、例えばフレームF3に対応したパケットロスが発生した場合、フレームF1を参照データとしてフレームF4が符号化されることになる。
【0025】
さらに、その後のフレームF5に対応したパケットロスが発生した場合、この場合においても、適正に受信されたデータで最も近いデータであるフレームF4ではなく、フレームF1が参照データとして用いられることになる。
【0026】
上述のいずれの場合も、いずれかの受信側が返信したNACKを送信側で受信すると、参照データがルールにより予め定められたデータへ切り替えられ、そのことを全ての受信側へ通知するだけで、全ての受信側においてデータが適正に復元できることになる。ただし、全ての受信側において、この切り替えの可能性のあるフレームデータを記憶する手段が必要となる。
【0027】
図16は、特開2002−10265号公報に記載の図4に対応し、送信側(サーバ装置)の構成を示す図である。特開2002−10265号公報においては、サーバ装置は主たる符号化手段(第1の符号化モジュール)と、それを補う第2の符号化手段(第2の符号化モジュール)を持つ。第2の符号化モジュールは複数個が存在することも可能である。
【0028】
ただし、特開2002−10265号公報においては、この第2の符号化モジュールが存在することは必須ではない。つまり、第2の符号化モジュールの存在は、何れかの受信側がパケットロスを検出した場合に切り替えられる参照データに対応する符号化データを予め用意すると言う意味以上のものはない。つまり、主たる符号化手段(第1の符号化モジュール)を用いて、参照データの切り替えと再度の符号化を逐次的に実行してもよいものである。
【0029】
【特許文献1】
特開2000−134619号公報
【特許文献2】
特開2002−10265号公報
【0030】
【発明が解決しようとする課題】
先に述べた再送によるデータ通信技術においては、データの順序、完全性は保証される。このため、非リアルタイム通信には適したものである。しかし、このデータ通信方法においては常にハンドシェイクが必要とされ、大きな遅延が発生する。そのため、リアルタイムデータ通信には適さない。
【0031】
また、誤り訂正技術においてはハンドシェイクは行われないが、データをインターリーブするために、データが時間軸上に分散し、これもまた大きな遅延が発生する。そのため、リアルタイムデータ通信には適さない。
また、上述の特許文献2などの再同期化処理は、NACKの通信などのハンドシェイク処理を含む。そのため、この部分において大きな遅延が発生する。
【0032】
このように、従来の技術ではその多くが遅延の発生を伴うデータ通信手法を採用している。しかし、双方向リアルタイムデータ通信においては、遅延は大きな問題であるので、ハンドシェイクなど遅延の発生要因を必要としない通信が求められる。
【0033】
また、上述の特許文献2においては、多点間通信システムに適用する例が示されているが、この技術は、多点間通信とは言っても非常に少数の端末間での通信を想定したものである。このため、本発明が想定しているように、受信側の数が極めて多くなり、ほぼ全てのフレームデータにおいて、何れかの受信側がパケットロスを検出すると言うような状況においては、上述の特許文献2の技術では実質的に破綻してしまう可能性が高い。
【0034】
そこで本発明は、データの欠落を最小限に留めるとともに遅延の発生を最小限にとどめることを可能とし、リアルタイムデータ通信、特に、双方向リアルタイムデータ通信に適用可能とするデータ送信装置およびデータ受信装置、データ送信方法およびデータ受信方法、データ通信システムを提供することを目的としている。
【0035】
【課題を解決するための手段】
(1)本発明のデータ送信装置は、時系列に沿って入力される符号化対象データを符号化してその符号化データを出力するデータ送信装置において、前記符号化対象データを複数に分配するデータ分配手段と、このデータ分配手段で分配されたそれぞれの符号化対象データ対応に設けられ、入力される符号化対象データに対し、それぞれが独立して符号化処理を行うとともに、それによって得られたそれぞれの符号化データを送信可能な複数の符号化手段とを有することを特徴としている。
【0036】
このように、(1)に記載のデータ送信装置は、符号化対象データ(たとえば、動画データの1フレーム分のデータ)を複数に分配し、分配されたそれぞれの符号化対象データをそれぞれ対応する符号化手段でそれぞれ独立して符号化し、それによって得られた複数の符号化データを複数チャネルの符号化データとして送信するものである。
【0037】
すなわち、この(1)に記載のデータ送信側の符号化手段は、それぞれ独立したものであり、たとえば、上述の特許文献2に記載の技術がその中で従来例として挙げているものと何ら変わるものではない。つまり、個々の符号化手段としては、従来の技術をそのまま用いることができる。これは従来技術との互換性を保つために重要な要素である。
【0038】
また、(1)に記載のデータ送信側の動作は、単にデータを出力し続けるものであり、データ受信側の個数に依存しない。したがって、非常に多数のデータ受信側が存在する放送型の通信が容易に実行できる。また、データ送信装置とデータ受信装置とがハンドシェイク処理を行うことがないので、それ起因するデータの遅延を最小限に抑えることができる。また、自明であるが、多数のデータ受信装置とのハンドシェイクのための負荷が発生することもない。
【0039】
これはまた、符号化効率を悪化させないと言う効果もある。たとえば、上述の特許文献2に記載の技術に用いられている手法は、パケットロス時に受信側からのNACK信号を受けると、時間的に離れたデータを参照データとして用いて符号化しているが、これではデータ間の相関が小さくなり、符号化効率が劣化してしまう。一方、本発明においては、符号化を行う際、時間的に近傍のデータしか参照データとして用いない。よって、データ間の相関は高いことが期待され、符号化効率を悪化させることはない。
【0040】
(2)前記複数の符号化手段は、それぞれの符号化対象データに対し、それぞれの符号化手段間で符号化パラメータを変えて符号化処理することが好ましい。
【0041】
これは、たとえば、前述のIピクチャの位置を複数の符号化手段で異ならせるというようなことであり、それによって、受信側では、あるチャネルの符号化データにパケットロスなどのデータエラーが発生しても、他のチャネルの符号化データを用いて復号化できる確率が高くなり、パケットロスの影響を受けにくくすることできる。
【0042】
(3)前記(1)または(2)に記載のデータ送信装置から送信されてくる符号化データを復号してその復号化データを出力するデータ受信装置であって、前記データ送信装置から送信されてくるそれぞれの符号化データを受信して復号化処理可能であるとともに、その受信した符号化データのデータエラーを検出可能な複数の復号化手段と、これら複数の復号化手段のいずれかを優先復号化手段として設定可能で、かつ、前記複数の復号化手段のうちのいずれかの復号化手段の復号化データを選択可能な復号化手段管理手段とを有し、前記復号化手段管理手段は、前記優先復号化手段として設定した復号化手段でのデータエラー検出状態を監視し、データエラーがなければ、当該優先復号化手段での復号化データを選択して出力し、データエラーがある場合には、当該符号化データを適正に復号化可能な他の復号化手段があるか否かを調べ、適正に復号化可能な他の復号化手段があれば、その復号化手段の復号化データを選択して出力することを特徴としている。
【0043】
このように、(3)に記載のデータ受信装置では、送信側から送られてくる複数チャネルの符号化データをそれぞれ対応する復号化手段で受信し、優先復号化手段として設定した復号化手段が復号処理中にデータエラーを検出すると、そのデータエラーのあった符号化データを適正に復号化可能な他の復号化手段の復号化データを選択して出力するようにしているので、パケットロスの影響を受けずに、元データを適正に復元することができる。
【0044】
また、この(3)に記載のデータ受信装置においては、データ送信装置と同じく、複数の復号化手段のそれぞれの復号化手段として、従来例(たとえば、上述の特許文献2に記載の技術がその中で従来例として挙げているもの)と同等のものを用いることができる。
【0045】
つまり、本発明のデータ送信装置が送信する符号化データを、本発明に対応しないデータ受信装置においても受信して復号化することができる。ただし、この場合、本発明が行う動作、すなわち、データエラーがあった場合、復号化可能な復号化手段を動的に切り替えて、適正な復号化データを選択するといった動作は行えないが、従来のデータ受信装置を利用できることの意義は大きい。
【0046】
(4)前記復号化手段管理手段は、前記データエラーのあった符号化データを適正に復号化可能な他の復号化手段があると判定した場合、前記優先復号化手段を当該復号化手段に更新することが好ましい。
【0047】
このように、データエラーのあった符号化データを適正に復号化可能な復号化手段が他に存在すると判定した場合は、優先復号化手段を当該復号化手段に更新する処理を行うことによって、その時々に応じて、適正に復号化可能な復号化手段を動的に切り替えて、適正な復号化データを選択することができ、それにより、元データを適正に復元することができる。
【0048】
(5)前記データエラー検出手段が検出するデータエラーは、前記それぞれの符号化対象データに対する符号化データの欠落である。
【0049】
この符号化対象データに対する符号化データの欠落(後に説明する実施の形態ではパケットロスと表現している)を検出してそれに対応した処理を行うことによって、パケットロスの影響を受けない高品質なデータを復元することができる。
【0050】
(6)時系列に沿って入力される符号化対象データを符号化してその符号化データを出力するデータ送信装置において、前記符号化対象データを複数に分配するデータ分配手段と、このデータ分配手段で分配されたそれぞれの符号化対象データ対応に設けられ、入力される符号化対象データに対し、それぞれが独立して符号化処理を行うとともに、それによって得られたそれぞれの符号化データを送信可能な複数の符号化手段と、前記複数の符号化手段のうちの少なくとも1つの符号化手段の入力側に設けられ、前記データ分配手段で分配された符号化対象データを縮小するデータ縮小手段とを有することを特徴としている。
【0051】
この(6)に記載のデータ送信装置は、前述の(1)のデータ送信装置の効果に加えて、複数の符号化手段のうちの少なくとも1つの符号化手段に縮小データを入力することによって、たとえば、画像においてはサンプル表示、あるいは動画版サムネール表示などを容易に実現することができる。
【0052】
また、この(6)に記載のデータ送信装置においても、(1)のデータ送信装置と同様に、前記複数の符号化手段は、それぞれの符号化対象データに対し、それぞれの符号化手段間で符号化パラメータを変えて符号化処理することが好ましい。
【0053】
(7)前記(6)に記載のデータ送信装置から送信されてくる符号化データを復号してその復号化データを出力するデータ受信装置であって、前記データ送信装置から送信されてくるそれぞれの符号化データを受信して復号化処理可能であるとともに、その受信した符号化データのデータエラーを検出可能な複数の復号化手段と、出力すべき復号化データの出力サイズを取得する出力サイズ取得手段と、この出力サイズ取得手段で取得された出力サイズに適合した出力サイズでの復号化が可能な復号化手段を優先復号化手段として設定可能で、かつ、前記複数の復号化手段のうちのいずれかの復号化手段の復号化データを選択可能な復号化手段管理手段とを有し、前記復号化手段管理手段は、前記優先復号化手段として設定した復号化手段でのデータエラー検出状態を監視し、データエラーがなければ、当該優先復号化手段での復号化データを選択して出力し、データエラーがある場合には、当該符号化データを適正に復号化可能な他の復号化手段があるか否かを調べ、適正に復号化可能な他の復号化手段があれば、その復号化手段の復号化データを選択して出力することを特徴としている。
【0054】
これによって、(3)に記載のデータ受信装置の効果に加えて、たとえば、画像においてはサンプル表示、あるいは動画版サムネール表示などを容易に実現することができる。また、これを実現するに際して、このデータ受信装置では、データ送信装置側から送られてくる縮小された符号化データを受け取ってそれを復号化するだけで済むので、たとえば、データ受信装置がユーザのパーソナルコンピュータである場合には、ユーザ側機器における処理の負荷を軽減することができるとともに、ネットワーク上の負荷の軽減が図れる。また、受信側でサムネール画像などを見ることができる。
【0055】
なお、この(7)に記載のデータ受信方法においても、前記データエラー検出手段が検出するデータエラーは前記それぞれの符号化対象データに対する符号化データの欠落としている。
【0056】
(8)前記復号化手段管理手段で選択された復号化データを拡大・縮小可能な復号化データ拡大・縮小手段を設け、この復号化データ拡大・縮小手段は、前記選択された復号化データのデータサイズが前記出力サイズ取得手段で取得された出力サイズと異なる場合、当該復号化データに対し、そのデータサイズが前記出力サイズ取得手段で取得された出力サイズに適合するようにデータサイズ調整処理を行うことが好ましい。
【0057】
これによって、出力サイズ指定手段で指定された出力サイズに適応する出力サイズでの復号化が可能な復号化手段でデータエラーが検出されて、出力サイズの異なる他の復号化手段で復号化をした場合でも、その復号化された出力サイズを、出力サイズ指定手段で指定された出力サイズに適合する出力サイズに変換して出力することができる。
【0058】
(9)前記復号化手段管理手段は、前記データエラーのあった符号化データを適正に復号化可能な他の復号化手段があると判定した場合、前記優先復号化手段を当該復号化手段に更新し、かつ、その更新された優先復号化手段の出力データサイズが前記出力サイズ取得手段で取得された出力サイズと異なる場合は、その優先復号化手段の復号化データを選択して出力したあと、その優先復号化手段を前記出力サイズ取得手段で取得された出力サイズ適合する復号化手段に復帰させることが好ましい。
【0059】
このように、データエラーのあった符号化データを適正に復号化可能な他の復号化手段があると判定した場合は、優先復号化手段を当該復号化手段に更新する処理を行うことによって、その時々に応じて、適正に復号化可能な復号化手段を動的に切り替えて、適正な復号化データを選択することができ、それによって、元データを適正に復元することができる。
【0060】
また、その更新された優先復号化手段の出力データサイズが前記出力サイズ取得手段で取得された出力サイズと異なる場合は、その優先復号化手段の復号化データを選択して出力したあと、その優先復号化手段を前記出力サイズ取得手段で取得された出力サイズ適合する復号化手段に復帰させるようにしているので、出力サイズ取得手段で取得された出力サイズと異なる復号化データの出力を最小限にとどめることができる。これによって、復号化データを拡大または縮小して出力する時間を最小限にとどめることができ、出力データの品質劣化を抑えることができる。
【0061】
(10)時系列に沿って入力される符号化対象データを符号化してその符号化データを出力するデータ送信方法において、前記符号化対象となるデータを複数に分配し、この分配されたそれぞれの符号化対象データをこれらそれぞれの符号化対象データ対応に設けられた複数個のデータ符号化手段対応に入力させて、それぞれの符号化手段で符号化し、それによって得られたそれぞれの符号化データを送信することを特徴としている。
【0062】
このようなデータ送信方法を採用することによって、前述の(1)のデータ送信装置と同様の効果が得られる。また、この(10)に記載のデータ送信方法においても、前記複数の符号化手段は、それぞれの符号化対象データに対し、それぞれの符号化手段間で符号化パラメータを変えて符号化処理することが好ましい。
【0063】
(11)前記(10)に記載のデータ送信方法によって送信されてくる符号化データを復号してその復号化データを出力するデータ受信方法であって、前記送信されてくるそれぞれの符号化データを受信して復号化処理可能であるとともに、その受信した符号化データのデータエラーを検出可能な複数の復号化手段のうちのいずれかの復号化手段を優先復号化手段として設定し、その優先復号化手段として設定された復号化手段でのデータエラー検出状態を監視し、データエラーがなければ、当該優先復号化手段での復号化データを選択して出力し、データエラーがある場合には、当該符号化データを適正に復号化可能な他の復号化手段があるか否かを調べ、適正に復号化可能な他の復号化手段があれば、その復号化手段の復号化データを選択して出力することを特徴としている。
【0064】
このようなデータ受信方法を採用することによって、前述の(3)のデータ受信装置と同様の効果が得られる。
【0065】
(12)時系列に沿って入力される符号化対象データを符号化してその符号化データを出力するデータ送信方法において、符号化対象となるデータを複数に分配し、この分配されたそれぞれの符号化対象データを、これらそれぞれの符号化対象データ対応に設けられた複数個のデータ符号化手段対応に入力させ、かつ、これら複数個のデータ符号化手段のうちの少なくとも1つの符号化手段に対してはデータ縮小手段によってデータ縮小処理した符号化対象データを入力させて、それぞれの符号化手段で符号化し、それによって得られたそれぞれの符号化データを送信することを特徴としている。
【0066】
このようなデータ送信方法を採用することによって、前述の(6)のデータ送信装置と同様の効果が得られる。また、この(12)に記載のデータ送信方法においても、(1)のデータ送信装置と同様に、前記複数の符号化手段は、それぞれの符号化対象データに対し、それぞれの符号化手段間で符号化パラメータを変えて符号化処理することが好ましい。
【0067】
(13)前記(12)に記載のデータ送信方法によって送信されてくるそれぞれの符号化データを復号してその復号化データを出力するデータ受信方法であって、出力すべき復号化データの出力サイズの設定を行い、前記送信されてくるそれぞれの符号化データを受信して復号化処理可能であるとともに、その受信した符号化データのデータエラーを検出可能な複数の復号化手段のうち、前記設定された出力サイズに適合する出力サイズでの復号化データ出力が可能な復号化手段を優先復号化手段として設定し、この優先復号化手段として設定された復号化手段でのデータエラー検出状態を監視し、データエラーがなければ、当該優先復号化手段での復号化データを選択して出力し、データエラーがある場合には、当該符号化データを適正に復号化可能な他の復号化手段があるか否かを調べ、適正に復号化可能な他の復号化手段があれば、その復号化手段の復号化データを選択して出力することを特徴としている。
このようなデータ受信方法を採用することによって、前述の(7)に記載のデータ受信装置と同様の効果が得られる。
【0068】
また、この(13)に記載のデータ受信方法においても、前記データエラー検出手段が検出するデータエラーは前記それぞれの符号化対象データに対する符号化データの欠落としている。また、前記選択された復号化手段の復号化データサイズが要求される出力サイズと異なる場合、当該復号化データに対し、そのデータサイズが前記要求される出力サイズに適合するようにデータサイズ調整処理を行うことが好ましい。
【0069】
また、データエラーのあった符号化データを適正に復号化可能な他の復号化手段があると判定した場合、優先復号化手段を当該復号化手段に更新し、かつ、その更新された優先復号化手段の出力データサイズが前記要求される出力サイズと異なる場合は、その優先復号化手段の復号化データを選択して出力したあと、その優先復号化手段を前記要求される出力サイズ適合する復号化手段に復帰させることが好ましい。
【0070】
(14)時系列に沿って入力される符号化対象データを符号化してその符号化データを出力するデータ送信装置と、このデータ送信装置から送信されてくる符号化対象データを受信して復号化してその復号化データを出力するデータ受信装置とを有するデータ通信システムにおいて、前記データ送信装置は、前記(1)、(2)、(6)のいずれかに記載のデータ送信装置であって、前記データ受信装置は、前記(3)、(4)、(5)、(7)、(8)、(9)のいずれかに記載のデータ受信装置であることを特徴とするデータ通信システム。
【0071】
これによって、データ送信装置側は、前述した(1)、(2)、(6)のデータ送信装置の効果をそのまま引き継ぐことができ、また、データ受信装置側は、前述した(3)、(4)、(5)、(7)、(8)、(9)のデータ受信装置の効果をそのまま引き継ぐことができる。このため、データ受信装置側では、パケットロスの影響を受けることなく正常なデータ復元が可能となり、また、本発明のデータ通信システムでは、データ受信装置側とのハンドシェイクが不要となるので、データの遅延を最小限に抑えることができ、リアルタイムデータ通信、特に双方向のリアルタイム通信に最適なデータ通信システムとすることができる。
【0072】
【発明の実施の形態】
以下、本発明の実施の形態について説明する。なお、この実施の形態で説明する内容は、本発明のデータ送信装置およびデータ受信装置、データ送信方法およびデータ受信方法、データ通信システムについての説明を含むものである。また、この実施の形態では、処理対象となるリアルタイムデータとして動画を例にするが、本発明は、動画に限られるものではなく、音楽、音声などのリアルタイムデータにおいても同様に実施可能である。
【0073】
〔実施の形態1〕
図1は本発明のデータ送信装置の実施の形態1の構成例を示すブロック図である。この実施の形態1におけるデータ送信装置は、送信すべきリアルタイムデータ(この実施の形態では動画としている)から時系列に沿った符号化単位(たとえば、1フレーム分の動画データ)ごとのデータを符号化対象データとして入力するデータ入力手段1、このデータ入力手段1に入力された符号化対象データをN個(Nは自然数)に分配するデータ分配手段2、このデータ分配手段2で分配されたN個の符号化対象データそれぞれに対応して設けられたN個の符号化手段301〜30Nを有している。
【0074】
なお、本発明の実施の形態(この実施の形態1と後述する実施の形態2も含む)では、説明を簡単にするために、符号化単位がフレームであるとし、また、1フレームを1パケットで送信するとして説明する。
【0075】
符号化手段301〜30Nは、それぞれに対応する画像データをそれぞれ独立に符号化するデータ符号化手段31と符号化されたデータを送信する符号化データ送信手段32を有している。なお、それぞれのデータ符号化手段31による符号化は、それぞれの符号化手段301〜30Nごとに符号化パラメータを変えた符号化が行われる(これついては後述する)。
【0076】
そして、これらデータ符号化手段31で符号化されたそれぞれの符号化データは、それぞれ対応する符号化データ送信手段32によって、Nチャネルの符号化データとしてデータ通信路10上に出力され、ここでは図示しないネットワークを介して受信側に送信される。
【0077】
図2は本発明によるデータ受信装置の実施の形態1の構成例を示すブロック図である。この実施の形態1におけるデータ受信装置は、それぞれ独立して設けられた複数個(N個)の復号化手段401〜40Nと、復号化手段管理手段5(優先復号化手段記憶手段51と復号化手段選択手段52からなる)、復号化データを出力するデータ出力手段6を有している。
【0078】
なお、復号化手段401〜40NのNは、図1に示した符号化手段301〜30NのNと必ずしも一致していなくてもよい。すなわち、復号化手段401〜40Nの個数と符号化手段301〜30Nの個数は同数である必要はない。
【0079】
復号化手段401〜40Nは、図1で示したデータ送信装置から送られてくるNチャネルの符号化データをそれぞれ受信する符号化データ受信手段41、受信した符号化データにデータエラーが発生した場合、そのデータエラーを検出するデータエラー検出手段42、符号化データを復号化する符号化データ復号化手段43をそれぞれ有している。
【0080】
なお、本発明の実施の形態(この実施の形態1と後に説明する実施の形態2を含む)では、検出するデータエラーはデータ欠落(以下ではパケットロスという)としている。したがって、以下の説明では、データエラー検出手段42をパケットロス検出手段42と呼ぶことにする。
【0081】
また、復号化手段管理手段5は、上述したように、優先復号化手段記憶手段51と復号化手段選択手段52からなり、復号化手段選択手段52は、復号化手段401〜40Nのいずれかを優先復号化手段として優先復号化手段記憶手段51に設定可能で、かつ、その優先復号化手段記憶手段51の設定内容に基づいて、復号化手段401〜40Nのいずれかの復号化手段の復号化データを選択可能としている。
【0082】
具体的には、復号化手段選択手段52は、優先復号化手段記憶手段51に対して、初期値としてある任意の復号化手段を優先復号化手段として設定し、この優先復号化手段記憶手段51の記憶内容から優先復号化手段による復号化データを選択して、その選択した復号化データをデータ出力手段6に出力する機能を有する。なお、本発明においては、優先復号化手段記憶手段51により選択されない復号化手段に含まれる符号化データ復号化手段を休止させておくように構成することも可能である。
【0083】
復号化手段選択手段52は、優先復号化手段として設定した復号化手段でのデータエラー検出状態を監視し、その優先復号化手段でパケットロスが検出されると、そのパケットロスしたフレームを適正に復号化可能な復号化手段が他にあるか否かを調べ、適正に復号化可能な復号化手段があれば、その復号化手段を新たな優先復号化手段として優先復号化手段記憶手段51に記憶(記憶内容を更新)するとともに、その復号化可能な復号化手段による復号化データを選択して、その選択した復号化データをデータ出力手段6に出力する機能を有する。なお、この一連の処理については後述する。
【0084】
また、データ出力手段6は、復号化手段選択手段52により選択された復号化データをデータ出力として出力するものである。
【0085】
このような構成において、その動作を図3のフローチャートを用いて詳細に説明する。
【0086】
まず、復号化処理が起動されると、優先復号化手段記憶手段51が初期化され(ステップS1)、復号化手段401〜40Nのうちの任意の1つの復号化手段が優先復号化手段として優先復号化手段記憶手段51に記憶される。
【0087】
その後に、図1で示すデータ送信装置から送信されてくるNチャネルの符号化データがそれぞれのチャネル対応の復号化手段401〜40Nのそれぞれの符号化データ受信手段41で受信される(ステップS2)。これによって、復号化手段401〜40Nのそれぞれの符号化データ復号化手段43では復号化処理が開始される。
【0088】
このとき、優先復号化手段記憶手段51に記憶された優先復号化手段(復号化手段選択手段52によって初期設定された優先復号化手段)においてパケットロスが検出されたか否かを判定し(ステップS3)、パケットロスが検出されなければ、その優先復号化手段で復号化された復号化データがデータ出力となる(ステップS4)。
【0089】
また、このとき、その優先復号化手段でパケットロスが検出されれば(ステップS3)、そのパケットロスした符号化対象データ(ここでは1フレーム分のデータ)に対応するフレームを適正に復号化可能な復号化手段が他にあるか否かが調べられ(ステップS5)、適正に復号化可能な復号化手段があれば、その復号化手段が優先復号化手段記憶手段51に優先復号化手段として設定される(ステップS6)。そして、その新たに優先復号化手段とされた復号化手段の復号化データがデータ出力となる(ステップS4)。
【0090】
ここで、適正に復号化可能というのは、データエラーのない状態である。なお、本発明の実施の形態(この実施の形態1と後述する実施の形態2も含む)では、データエラーはパケットロスであるとしているが、このデータエラーとしては、パケットロスの他に、▲1▼ジッタや遅延などにより、復号のために必要なタイミングに、パケット(データ)が未着である、▲2▼到着したパケット(データ)に何らかのエラーが検出されたなどが考えられる。すなわち、適正に復号化可能というのは、パケットロスがないことの他、上述の▲1▼、▲2▼に該当しない状態であるということができる。
【0091】
また、ステップS5において、適正に復号化可能な復号化手段がなければ、パケットロスに対する何らかの処理、たとえば、最後に復号されたデータを継続して用いるなどの処理が行われ(ステップS7)、その後、いずれかの復号化手段が適正に復号化可能となるまで待つ(ステップS8)。そして、何れかの復号化手段が適正に復号化可能となったとき、その復号化手段が優先復号化手段記憶手段51に優先復号化手段として記憶され(ステップS6)、その新たに優先復号化手段とされた復号化手段の復号化データがデータ出力となる(ステップS4)。
【0092】
そして、再び、ステップS2に戻り、Nチャネルに対応するそれぞれの復号化手段401〜40Nは、次の符号化対象となる1フレーム分のデータ受信を行って、ステップS3以降の処理を行う。このようにして、符号化データの復号化処理が行われる。以下、図4および図5を用いて上述した動作をより詳しく説明する。
【0093】
図4は、図2で示した本発明の実施の形態1におけるデータ送信装置において、N個の符号化手段301〜30NのNを2(N=2)、すなわち、符号化手段が2つ(符号化手段301と符号化手段302とする)であるとした場合の符号化処理動作を説明するものである。
【0094】
図4(a)は符号化手段301で符号化された符号化データの一例を示し、図4(b)は符号化手段302で符号化された符号化データの一例を示すもので、前述の従来技術で説明したと同様に、四角形F1,F2,・・・は、それぞれ動画の1フレーム分ごとのデータを模式的に示したもので、この四角形F1,F2,・・・をフレームF1,F2,・・・と呼んでいる。また、太枠のフレームF1とF5は、それ単独で復号化可能なフレームデータ(Iピクチャ)を示すものとする。また、それ以外の細枠の四角形(フレームF2,F3,F4,F6,F7など)は、それ単独では復号できない差分データよりなるフレーム(Pピクチャ)を示すものである。また、それら四角形を結ぶ曲線矢印aは、データ間の依存関係を示すものとする。
【0095】
この図4(a),(b)に示す例においては、符号化手段301と符号化手段302は、同じ符号化対象データを符号化しているが、それぞれの符号化パラメータを異ならせており、ここでは、図4(a),(b)に示すように、単独で復号できるフレームの位置、つまり、Iピクチャの位置が異なるように符号化パラメータを設定している。この図4の例では、符号化手段301では、IピクチャはフレームF1,F5,・・・であり、符号化手段302では、IピクチャはフレームF3,F7,・・・であるというように、Iピクチャの位置が異なるような設定としている。
【0096】
図5は図4で示したような符号化データが入力された場合のデータ受信装置側の復号化動作を説明するものである。この図5は、N個の復号化手段401〜40NにおけるNを2(N=2)、すなわち、復号化手段が2つ(復号化手段401と復号化手段402とする)であるとした場合について、これらの復号化手段401と復号化手段402での復号化処理について説明するものである。
【0097】
なお、ここでは、符号化手段301で符号化された符号化データ(図4(a))は復号化手段401に入力され、符号化手段302で符号化された符号化データ(図4(b))は復号化手段402に入力されるとする。なお、この図5の例においては、図中の×を付けたフレームがパケットロスしたとする。また、このとき、優先復号化手段記憶手段51には復号化手段401が優先復号化手段として初期設定されているとする。
【0098】
まず、フレームF1が復号化手段401,402で受信されるが、図5(a)からもわかるように、この時点における優先復号化手段である復号化手段401ではそのフレームF1のパケットロスが検出されない。したがって、この場合は、優先復号化手段である復号化手段401の復号化データが選択され、その復号化データがデータ出力となる(図3のステップS1,S2,S3,S4の処理に対応)。
【0099】
続いて、フレームF2が復号化手段401,402で受信される。この場合、図5(a)からもわかるように、このフレームF2もフレームF1と同様、この時点の優先復号化手段である復号化手段401ではそのフレームF2のパケットロスが検出されない。したがって、このフレームF2に対しても、優先復号化手段である復号化手段401の復号化データが選択され、その復号化データがデータ出力となる(図3のステップS1,S2,S3,S4の処理に対応)。
【0100】
続いて、フレームF3が復号化手段401,402で受信されるが、図5(a)からもわかるように、この時点の優先復号化手段である復号化手段401では、フレームF3がパケットロスしていることがそのデータエラー検出手段42で検出される。
【0101】
これによって、復号化手段選択手段52は、そのフレームF3を適正に復号化可能な復号化手段が他にあるか否かを調べ、その結果、復号化手段402で適正な復号化が可能であることが検出されると、優先復号化手段記憶手段51の記憶内容は復号化手段402が優先復号化手段として更新され、このフレームF3に対しては、復号化手段402による復号化データが選択されて、その復号化データがデータ出力となる(ステップS5,S6,S4の処理に対応)。
【0102】
続いて、フレームF4が復号化手段401,402で受信されるが、現時点における優先復号化手段である復号化手段402では、図5(b)からもわかるように、そのフレームF4のパケットロスが検出されない。したがって、この場合は、優先復号化手段である復号化手段402の復号化データが選択され、その復号化データがデータ出力となる(ステップS2,S3,S4の処理に対応)。
【0103】
続いて、フレームF5が復号化手段401,402で受信されるが、現時点における優先復号化手段である復号化手段402では、図5(b)からもわかるように、その時点の優先復号化手段である復号化手段402においてパケットロスが検出されないので、そのフレームF5は復号化手段402で復号化処理され、その復号化処理された復号化データが選択され、その復号化データがデータ出力となる(ステップS2,S3,S4の処理に対応)。
【0104】
続いて、フレームF6が復号化手段401,402で受信される。この場合、現時点における優先復号化手段である復号化手段402では、図5(b)からもわかるように、このフレームF6がパケットロスしていることが検出される。このとき、復号化手段選択手段52によって、復号化手段401がこのフレームF6を適正に復号化可能であると検出されると、優先復号化手段記憶手段51の記憶内容は復号化手段401が優先復号化手段として更新され、このフレームF6については復号化手段401による復号化データが選択され、その復号化データがデータ出力となる(ステップS5,S6,S4の処理に対応)。
【0105】
続いて、フレームF7が復号化手段401,402で受信されるが、現時点における優先復号化手段である復号化手段401では、図5(a)からもわかるように、その復号化手段401においてパケットロスが検出されないので、そのフレームF7については復号化手段401による復号化データがデータ出力となる(ステップS2,S3,S4の処理に対応)。
【0106】
以上のような手順で復号化処理がなされ、結局、この例の場合、図5(a),(b)の破線Aで示すような順序で復号化データが出力される。すなわち、フレームF1,F2は復号化手段401の復号化データが出力され、フレームF3,F4,F5は復号化手段42の復号化データが出力され、フレームF6,F7は復号化手段401の復号化データが出力されるというように、データ送信装置側から順次送られてくるそれぞれのフレームのパケットロスの状態に応じて、適正に復号化できる復号化手段の復号化データを動的に切り替えて選択して出力するようにしている。
【0107】
これによって、この例においては、すべてのフレームがパケットロスなく適正に復号化され、それによって、元のデータ(ここでは動画データとしている)を適正に復元することができる。
以上の説明より明らかであるように、この実施の形態1は以下のような効果をもつ。
【0108】
この実施の形態1におけるデータ送信装置は、符号化対象データ(たとえば、動画データの1フレーム分のデータ)を複数に分配し、分配されたそれぞれの符号化対象データをそれぞれ対応する符号化手段でそれぞれ独立して符号化し、それによって得られた複数の符号化データを複数チャネルの符号化データとして送信するものである。
【0109】
すなわち、このデータ送信側の符号化手段は、それぞれ独立したものであり、たとえば、前述の特許文献2に記載の技術がその中で従来例として挙げているものと何ら変わるものではない。つまり、個々の符号化手段としては、従来の技術をそのまま用いることができる。これは従来技術との互換性を保つために重要な要素である。
【0110】
また、このデータ送信側の動作は、単にデータを出力し続けるものであり、データ受信側の個数に依存しない。したがって、非常に多数のデータ受信側が存在する放送型の通信が容易に実行できる。また、データ送信装置とデータ受信装置とがハンドシェイク処理を行うことがないので、それ起因するデータの遅延を最小限に抑えることができる。また、自明であるが、多数のデータ受信装置とのハンドシェイクのための負荷が発生することもない。
【0111】
これはまた、符号化効率を悪化させないと言う効果もある。たとえば、パケットロス時に受信側からのNACK信号を受ける前述の特許文献2に記載の技術では、時間的に離れたデータを参照データとして用いて符号化するが、この方法ではデータ間の相関が小さくなり、符号化効率が劣化してしまう。一方、本発明においては、符号化を行う際、近傍のデータしか参照データとして用いない。よって、データ間の相関は高いことが期待され、符号化効率を悪化させることはない。
【0112】
次に、この実施の形態1のデータ送信装置側の動作は、単に符号化データを出力し続けるものであり、データ受信装置側の個数に依存しない。従って、非常に多数のデータ受信装置が存在する放送型の通信が容易に実行できる。
【0113】
次に、データ受信装置においては、データ送信装置と同じく、それぞれの復号化手段401〜40Nに用いられる符号化データ復号化手段43として、従来例と同等のものを用いることができる。これは、本発明のデータ送信装置が送信するデータを、本発明に対応しないデータ受信装置において受信することが可能であるということである。
【0114】
すなわち、本発明の実施の形態1で示したデータ受信装置(図2参照)を用いれば、図3のフローチャートや図4および図5で説明したような処理が可能となり、それによって、パケットロスを発生させることなく、リアルタイムデータを受信することが可能である。
【0115】
一方、図2で示したような本発明のデータ受信装置ではない従来のデータ受信装置を用いた場合には、図3のフローチャートや図4および図5で説明したような処理、つまり、ある1つの復号化手段でパケットロスが検出されると、適正に復号化可能な他の復号手段からの復号化データを動的に選択して出力するということはできないが、従来の復号化処理はそのまま行うことができる。このように、本発明は、個々の復号化手段401〜40Nとしては、従来の復号化手段を用いることができる。これは従来技術との互換性を保つために重要な要素である。
【0116】
以上のように、この実施の形態1においては、従来技術に僅かの変更を加えるだけで、非常に大きな効果を得ることができる。
【0117】
〔実施の形態2〕
図6は本発明のデータ送信装置の実施の形態2の構成例を示すブロック図である。図6は実施の形態1の説明に用いた図1のデータ送信装置の構成に、データ縮小手段11を付加したものであり、そのほかの構成要素は図1と同様であるので、同一部分には同一符号が付されている。このデータ縮小手段11は、この実施の形態2ではある1つの符号化手段に対して設けられているが、複数の符号化手段に対して設けるようにすることも可能である。
【0118】
なお、実施の形態1での説明に用いた図1では、符号化手段は符号化手段301〜30NのN個とした例が示されているが、この図6では、説明の都合上、符号化手段は符号化手段301,302,303の3個とし、符号化手段303の入力側にデータ縮小手段11を設けた例が示されている。
【0119】
すなわち、データ入力手段1に入力された符号化対象データ(たとえば、1フレーム分の動画データ)をデータ分配手段2でN個(この図6の場合は3個)に分配し、分配されたそれぞれの符号化対象データは、符号化手段301,302にはそのまま入力され、符号化手段303にはデータ縮小手段11を介して縮小されたデータとして入力される。なお、この図6におけるその他の構成要素は図2と同様であるので、同一部分には同一符号が付されている。
【0120】
データ縮小手段11は、処理対象データが動画データなどの画像データにおいては、そのサイズを縮小する機能を有するものなどが考えられる。また、音楽データ、音声データなどにおいては、サンプリングレートを低く変換する機能を有するもののであるとか、マルチチャネルのデータをモノラルデータへ変換する機能を有するものであるとかが考えられる。
【0121】
図7は、本発明のデータ受信装置の実施の形態2の構成例を示すブロック図である。図7は実施の形態1の説明に用いた図2のデータ受信装置の構成に、出力サイズ取得手段12、復号化データ拡大・縮小手段13を付加したものであり、その他の構成要素は図2と同様であるので、同一部分には同一符号が付されている。
【0122】
なお、実施の形態1での説明に用いた図2では、復号化手段は復号化手段401〜40NのN個とした例が示されているが、この図7では、説明の都合上、復号化手段は復号化手段401,402,403の3個とした例が示されている。
【0123】
図7に示したデータ受信装置におけるデータ処理手順は、実施の形態1における図2に示したデータ受信装置の復号化手順(図3のフローチャート)と基本的には同一であるが、以下の3つの点が異なる。
【0124】
第1の異なる点は、前述の実施の形態1の説明に用いた図3のフローチャートに示した処理のうち、優先復号化手段記憶手段51の初期化処理に係わる部分である。
図8は図3で示したフローチャートにおけるステップS1、すなわち、優先復号化手段記憶手段51の初期化処理について説明するフローチャートである。
【0125】
この実施の形態2における優先復号化手段記憶手段51の初期化処理は、この図8によれば、まず、出力サイズ指定があるか否かを判定し(ステップS11)、出力サイズ指定があれば、指定された出力サイズ(出力サイズ取得手段12で取得された出力サイズ)と同一、あるいは、その出力サイズに最も近い出力サイズを持つ復号化手段が優先復号化手段記憶手段51に優先復号化手段として設定される(ステップS12)。また、出力サイズ指定がなければ、任意の復号化手段が優先復号化手段記憶手段51に優先復号化手段として設定される(ステップS13)。
【0126】
すなわち、前述の実施の形態1では、この初期値として、任意の復号化手段が設定されたが、この実施の形態2では、指定された出力サイズ、つまり、出力サイズ取得手段12により取得された出力サイズと同一、あるいは、その出力サイズに最も近い出力サイズを持つ復号化手段が設定され、出力サイズが指定されていなければ、実施の形態1と同じく任意の復号化手段が設定される。
【0127】
また、第2の異なる点は、前述の実施の形態1の説明に用いた図3のフローチャートに示した処理のうち、データ出力(図3におけるステップS4)に係わる部分である。このデータ出力に係わる部分の処理は、この実施の形態2では、図9に示すような処理がなされる。
【0128】
図9において、まず、出力サイズ指定があるか否かを判定し(ステップS21)、出力指定があれば、優先復号化手段記憶手段51に記憶されている優先復号化手段の出力サイズが指定出力サイズ(出力サイズ取得手段12で指定されたデータサイズ)と同一か否かを判定し(ステップS22)、同一でなければ復号化データ拡大・縮小手段13により復号化データのサイズを調整したのちに(ステップS23)、その調整後の復号化データを出力する(ステップS24)。
【0129】
また、ステップS21において出力サイズ指定がない場合や、ステップS22において優先復号化手段記憶手段51に記憶されている優先復号化手段の出力サイズが指定出力サイズ(出力サイズ取得手段12で取得されたデータサイズ)と同一である場合には、その復号化データの出力サイズを調整する処理を行わずに出力する(ステップS24)。
【0130】
このように、この実施の形態2では、データ出力を行う際、復号化手段選択手段52より選択された復号化データの出力サイズと、出力サイズ取得手段12より得られた出力サイズが異なれば、復号化データは復号化データ拡大・縮小手段13によって取得された出力サイズとなるようなサイズ調整がなされるものである。
【0131】
また、第3の異なる点は、優先復号化手段の更新にかかわる処理である。すなわち、この実施の形態2の場合、優先復号化手段としては出力サイズ取得手段12より得られた出力サイズに適合した出力サイズを有する復号化手段が初期値として設定されるが、この優先復号化手段にパケットロスが発生したとき、例外的な復号化データ選択処理として、出力サイズ取得手段12より得られた出力サイズとは異なる出力サイズの復号化データが選択されることがある。
【0132】
このような例外的な復号化データ選択処理を行った場合も、例外的な復号化データ選択処理でない場合と同様、復号化手段選択手段52は、その出力サイズの異なる復号化データを出力する復号化手段を優先復号化手段として優先復号化手段記憶手段51に設定するが(図3のステップS6)、この例外的な復号化データ選択処理を行った場合は、その出力サイズの異なる優先復号化手段からの復号化データの選択を行ったあと、優先復号化手段記憶手段51に設定される優先復号化手段を、出力サイズ取得手段12によって取得された出力サイズを有する復号化手段(初期値として設定された復号化手段)に復帰させる処理を行う。なお、この処理手順については図示されていない。
【0133】
図10および図11はこの実施の形態2の復号化処理を説明するためのものである。なお、この実施の形態2では、図6で説明したように、符号化手段303に対してはデータ縮小手段11によって縮小されたデータが与えられ、この符号化手段303からの符号化データはその縮小されたデータに対応する符号化データとなっており、その符号化データは復号化手段403に入力される。
【0134】
また、この図10および図11においては、縮小されたデータは、そのデータの小ささを考慮して、全てのフレームにおいて単独で復号化可能(すべてのフレームがIピクチャ)であるように符号化されているものとしている。なお、この縮小されたそれぞれのフレームはフレームs1,s2,s3,・・・と表すことにする。
【0135】
まず、図10について説明する。この図10は、優先復号化手段記憶手段51には初期値として復号化手段401が設定されている例が示されている。すなわち、この場合、出力サイズ取得手段12で取得された出力サイズと同一の出力サイズ(または最も近い出力サイズ)を有する復号化手段は、復号化手段401と復号化手段42であって、これらの復号化手段401,402のうち、復号化手段401が優先復号化手段として設定された例である。
【0136】
ここで、図10(a)に示すように、復号化手段401に入力された符号化データにおいては、フレームF3とフレームF6にパケットロス(図中、×印が付されている)が発生し、同図(b)に示すように、復号化手段42に入力された符号化データにおいては、フレームF2とフレームF6にパケットロス(図中、×印が付されている)が発生したとする。また、図10(c)に示すように、復号化手段403に入力された符号化データにおいては、パケットロスは発生していないものとする。なお、それぞれのフレームに対する処理手順は実施の形態1で詳細に説明したので、ここでは簡略化して説明する。
【0137】
まず、フレームF1が復号化手段401,402,403で受信され、復号化処理が開始される。そして、優先復号化手段として初期設定された復号化手段401ではフレームF1のパケットロスが検出されないので、その復号化手段401の復号化データが選択される。フレームF2も同様に、優先復号化手段として初期設定された復号化手段401ではフレームF1のパケットロスが検出されないので、その復号化手段401の復号化データが選択される。
【0138】
続いて、フレームF3が復号化手段401,402,403で受信されるが、現時点における優先復号化手段である復号化手段401では、図10(a)からもわかるように、そのフレームF3のパケットロスが検出される。
【0139】
これによって、復号化手段選択手段52は、そのフレームF3を適正に復号化可能な復号化手段が他にあるか否かを調べ、その結果、復号化手段402で適正な復号化が可能であることが検出されると、優先復号化手段記憶手段51の記憶内容は復号化手段402が優先復号化手段として更新され、このフレームF3に対しては、復号化手段402の復号化データが選択されて、その復号化データがデータ出力となる。なお、復号化手段403もフレームF3の復号化が可能であるが、この場合、要求される出力サイズ(出力サイズ取得手段12で取得された出力サイズ)と同じ出力サイズを有する復号化手段402を優先する。
【0140】
続いて、フレームF4が復号化手段401,402,403で受信されるが、現時点における優先復号化手段である復号化手段402では、図10(b)からもわかるように、そのフレームF4のパケットロスが検出されない。したがって、この場合は、優先復号化手段である復号化手段402の復号化データが選択され、その復号化データがデータ出力となる。フレームF5も同様に、その時点の優先復号化手段として設定されている復号化手段402ではフレームF5のパケットロスが検出されないので、その復号化手段402での復号化データが選択される。
【0141】
なお、ここまでの処理において、要求される出力サイズ(出力サイズ取得手段12で取得された出力サイズ)は、復号化手段401および復号化手段42の出力サイズと同一であるので、これら復号化手段401,402から出力される符号化データに対して、サイズの調整(拡大または縮小)がなされることはない。
【0142】
続いて、フレームF6が復号化手段401,402,403で受信されるが、現時点における優先復号化手段である復号化手段402では、図10(b)からもわかるように、その時点の優先復号化手段である復号化手段402においてパケットロスが検出される。
【0143】
これによって、復号化手段選択手段52は、そのフレームF6を適正に復号化可能な復号化手段が他にあるか否かを調べる。その結果、このフレームF6は、復号化手段401でもパケットロスが発生しており、この場合は、復号化手段403で適正な復号化が可能であることが検出される。これにより、優先復号化手段記憶手段51の記憶内容は復号化手段403が優先復号化手段として更新され、このフレームF6に対しては、復号化手段403のフレームs6の復号化データが選択されて、その復号化データがデータ出力となる。
【0144】
このとき、復号化手段403に入力されている符号化データは縮小サイズの符号化データとなっているので、それを復号化して得られた復号化データも当然のことながらそのデータサイズは、要求される出力サイズ(出力サイズ取得手段12で取得される出力サイズ)よりも小さいために、復号化データ拡大・縮小手段13によって、出力サイズの調整(この場合は拡大処理)が行われ、拡大処理されることによって、要求される出力サイズ(出力サイズ取得手段12で取得された出力サイズ)と同じ出力サイズとなった復号化データがデータ出力として出力される。
【0145】
そして、次のフレームF7が復号化手段401,402,403で受信され、この時点における優先復号化手段でパケットロスが検出されたか否かが判定される。ここで、この時点においては、優先復号化手段記憶手段51には復号化手段403が優先復号化手段として設定されており、これまでの例では、復号化手段403が優先復号化手段として処理がなされるが、この実施の形態2の場合、要求される出力サイズが指定されているので、その要求された出力サイズ(出力サイズ取得手段12で取得された出力サイズ)での復号化データを出力させる必要がある。
【0146】
すなわち、この図10の例では、要求される出力サイズと同一の出力サイズは、復号化手段401と復号化手段402の復号化データとされているので、復号化手段403の復号化データ(縮小された復号化データ)を用いるのは、この場合、復号化手段401または復号化手段402の復号化データを用いることのできない場合の例外的な復号化データ選択処理であるといえる。
【0147】
したがって、このような例外的な復号化データ選択処理を行った場合は、前述したように、復号化手段選択手段52は、出力サイズの異なる復号化手段による復号化データの選択を行ったあと、優先復号化手段記憶手段51に記憶される優先復号化手段を、要求される出力サイズ(出力サイズ取得手段12によって取得された出力サイズ)を有する復号化手段に復帰させる処理を行う。
【0148】
すなわち、図10の場合、例外的な復号化データ選択処理として復号化手段403による復号化データが出力されたあと、優先復号化手段記憶手段51に記憶される優先復号化手段は、元の出力サイズを有する復号化手段401または復号化手段402に戻されて、次のフレームF7についての処理がなされる。
【0149】
なお、この図10の場合は、復号化手段401,402がともにフレームF6でパケットロスが検出されている。ここで、復号化手段401のフレームF7はPピクチャであり、復号化手段402のフレームF7はIピクチャであるので、復号化手段402の復号化データが採用され、その復号化データがデータ出力される。この復号化手段402によるフレームF7の復号化データは、要求される出力サイズと同一であるので、出力データのサイズ調整(拡大または縮小)の必要はない。
【0150】
以上のように、この図10の例では、破線Aで示すような順序で復号化データが選択されて出力される。すなわち、フレームF1,F2は復号化手段401の復号化データが選択され、フレームF3,F4,F5は復号化手段402の復号化データが選択され、フレームF6に対応するフレームとしては例外的に復号化手段403のフレームs6の復号化データが選択され、フレームF7は復号化手段402の復号化データが選択される。
【0151】
図11は、優先復号化手段記憶手段51の初期値として、復号化手段403が選択されている例を示す。すなわち、この図11は、出力サイズ取得手段12で取得された出力サイズと同一の出力サイズ(または最も近い出力サイズ)を有する復号化手段として、復号化手段403が選択された例である。
【0152】
ここで、図11に示すように、図10の場合と同様、復号化手段401に入力された符号化データにおいては、フレームF3、フレームF6にパケットロス(図中、×印が付されている)が発生し、復号化手段402に入力された符号化データにおいては、フレームF2、フレームF6にパケットロス(図中、×印が付されている)が発生し、また、この図11の例においては、復号化手段403に入力された符号化データにおいては、フレームs3、フレームs4にパケットロス(図中、×印が付されている)が発生したとする。
【0153】
この図11の例においては、図11における破線Aで示したように、フレームs1、フレームs2までのデータは、優先復号化手段である復号化手段403で復号される。ここまでは、要求される出力サイズは、復号化手段403の出力サイズと同一であるので、出力データのサイズ調整(拡大または縮小)されることはない。その後、フレームs3がパケットロスしていることが検出される。
【0154】
このとき、このフレームs3に対応するフレームの復号が可能な復号化手段があるか否かを調べた結果、この場合、復号化手段401に入力された符号化データもフレームF3がパケットロスしていることが検出されるので、復号化手段402のフレームF3が復号化可能であると判定され、復号化手段402のフレームF3の復号化データが選択されることになる。
【0155】
この復号化手段402の復号化データは、この図11の例においては、要求される出力サイズよりも大きいサイズであるので、出力サイズの調整(この場合、縮小処理)が行われ、要求される出力サイズ(出力サイズ取得手段12で取得された出力サイズすなわち復号化手段403の復号化データと同じサイズ)にまで縮小処理された復号データが出力データとなる。なお、この時点における優先復号化手段は復号化手段402に更新されているが、前述したように、この場合は、例外的な復号化データ選択処理として出力サイズの異なる復号化手段402の復号化データを選択している。
【0156】
このような例外的な復号化データ選択処理を行った場合は、前述同様、出力サイズの異なる復号化手段による復号化データの選択を行ったあとは、優先復号化手段記憶手段51に記憶される優先復号化手段は、要求される出力サイズ(出力サイズ取得手段12によって取得された出力サイズ)を有する復号化手段に復帰されるものとする。
【0157】
すなわち、図11の場合、例外的な復号化データ選択処理として復号化手段402による復号化データが出力されたあと、優先復号化手段記憶手段51に記憶される優先復号化手段は、元の出力サイズを有する復号化手段403に復帰し、この復号化手段403が現時点における優先復号手段となって、次のフレームs4についての処理がなされる。
【0158】
これによって、現時点の優先復号手段である復号化手段403において、このフレームs4がパケットロスしていることが検出され、この場合も、復号化手段402のフレームF4が例外的な復号化データ選択処理として選択されることになる。このとき、復号化手段402に入力されている符号化データは要求される出力サイズよりも大きいサイズであるので、縮小処理が行われ、その縮小処理された復号化データが出力データとなる。
【0159】
そして、上述同様、例外的な復号化データ選択処理としての復号化手段402による復号化データが出力されたあと、優先復号化手段記憶手段51に記憶される優先復号化手段は、初期設定された復号化手段403に戻されて、次のフレームs5についての処理がなされる。
【0160】
このフレームs5はパケットロスが検出されないので、そのフレームs5はそのまま復号化される。なお、復号化手段403に入力される符号化データはすべて単独で復号化可能なIピクチャであるので、直前のフレームの状態に依存されることなくそのフレーム単独での復号化が可能である。
【0161】
したがって、この図11の例では、復号化の順番としては、破線Aで示すように、復号化手段403のフレームs1,s2、復号化手段402のフレームF3,F4(これらについては縮小処理が行われる)、復号化手段403のフレームs5,s6,s7というような順番となる。
【0162】
以上の説明より明らかであるように、この実施の形態2は前述の実施の形態1で説明した効果に加え、以下のような効果をもつ。
第1には、アプリケーションが要求するサイズに最も近い符号化データを用いて復号化することができるため、データの品質劣化を最小限にとどめることができる。
【0163】
次に、特に縮小されたデータを用いるとき、たとえば、画像においてはサンプル表示、あるいは動画版サムネール表示などを容易に実現することができる。これを実現するに際して、この実施の形態2では、データ送信装置から送られてくる縮小された符号化データをデータ受信装置側で受け取って、データ受信装置ではそれを復号化するだけとすることができるので、データ受信装置側での処理の負荷を軽減することができるとともに、ネットワーク上の負荷の軽減が図れる。また、データ受信装置でサムネール画像などを見ることができることで、ユーザ側からすれば使い勝手のよいデータ通信システムとなる。
【0164】
なお、本発明は上述の実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲で種々変形実施可能となるものである。たとえば、上述の実施の形態1および実施の形態2では、処理対象となるリアルタイムデータとしては動画データを例にとって説明したが、動画データに限られるものではなく、前述したように、音楽や音声についても同様に実施することができる。
【0165】
なお、音楽や音声の場合、処理対象となる符号化単位(符号化対象データ)は、予め設定した所定の時間長のデータとする。また、実施の形態2における縮小データは動画などの画像データの場合は、サムネール画像の表示用などに用いることができるが、音楽や音声の場合は、試聴用データなどの出力用として用いることができる。
【0166】
また、本発明は以上説明した本発明を実現するための処理手順が記述された処理プログラムを作成し、その処理プログラムをフロッピィディスク、光ディスク、ハードディスクなどの記録媒体に記録させておくこともでき、本発明は、その処理プログラムの記録された記録媒体をも含むものである。また、ネットワークから当該処理プログラムを得るようにしてもよい。
【図面の簡単な説明】
【図1】 本発明のデータ送信装置の実施の形態1の構成を示すブロック図である。
【図2】 本発明のデータ受信装置の実施の形態1の構成を示すブロック図である。
【図3】 本発明のデータ受信装置の復号化処理手順を示すフローチャートである。
【図4】 本発明のデータ送信装置における符号化処理を説明する例として、符号化手段が2つの場合の符号化処理の一例を説明する図である。
【図5】 本発明のデータ受信装置における復号化処理を説明する例として、復号化手段が2つの場合の復号化処理(パケットロスを含む復号化処理)の一例を説明する図である。
【図6】 本発明のデータ送信装置の実施の形態2の構成を示すブロック図である。
【図7】 本発明のデータ受信装置の実施の形態2の構成を示すブロック図である。
【図8】 図3のフローチャートにおける優先復号化手段記憶手段の初期化に係わる処理を実施の形態2に適用可能とするように処理手順を加えた図である。
【図9】 図3のフローチャートにおけるデータ出力に係わる処理を実施の形態2に適用可能とするように処理手順を加えた図である。
【図10】 実施の形態2による復号化処理(パケットロスを含む復号化処理)の一例を説明する図である。
【図11】 実施の形態2による復号化処理(パケットロスを含む復号化処理)の他の例を説明する図である。
【図12】 従来のデータ通信を説明するための図である。
【図13】 従来のパケットロスを含むデータ通信を説明するための図である。
【図14】 従来のパケットロスを含むデータ通信を説明するための図である。
【図15】 従来のパケットロスを含むデータ通信を説明するための図である。
【図16】 従来のデータ送信装置の構成を示すブロック図である。
【符号の説明】
1 データ入力手段、2 データ分配手段、301〜30N 符号化手段、401〜40N 復号化手段、5 復号化手段管理手段、51 優先復号化手段記憶手段、52 復号化手段選択手段、6 データ出力手段、10 データ通信路、11 データ縮小手段、12 出力サイズ取得手段、13 復号化データ拡大・縮小手段、31 データ符号化手段、32 符号化データ送信手段、41 符号化データ受信手段、42 データエラー検出手段(パケットロス検出手段)、43 符号化データ復号化手段、F1,F2,・・・ フレーム、s1,s2,・・・ 縮小データのフレーム
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a data transmission device and data reception device, a data transmission method and a data reception method, and a data communication system for communicating real-time data such as encoded moving images, music, and voice via a network.
[0002]
[Prior art]
With the expansion of the Internet environment, a great amount of data has been communicated via a network. The data to be communicated includes real-time data such as moving images, music, and voice in addition to non-real-time data such as characters and still images.
[0003]
In order to communicate these real-time data via a network, some encoding process is performed. In order to increase the encoding efficiency, these encoding processes use a method of encoding and communicating only difference data with reference data using the strength of correlation in the temporal vicinity of the data. Many. However, this method requires that the encoded data is transmitted to the receiving side in the correct order, without omission and at an appropriate timing.
[0004]
On the other hand, the Internet protocol (hereinafter abbreviated as IP) is the basis of current network communication. Features of communication using IP include packet-type communication in which data is divided and communicated, and best-effort type communication.
[0005]
In this best effort type communication, it is not guaranteed that transmitted data reaches the receiving side in the order of transmission. Furthermore, it is not guaranteed that the transmitted data reaches the receiving side. In an actual network environment, a packet that does not reach the receiving side, that is, packet loss may reach as much as 10 percent.
That is, there are many problems to perform real-time data communication on such a network.
Among these problems, (1) retransmission, (2) error correction, (3) other (resynchronization), etc. are conceivable as techniques for dealing with packet loss.
[0006]
The retransmission of (1) is the most frequently used technique, for example, a transmission control protocol (hereinafter abbreviated as TCP) or the like. The details of TCP are described in IETF technical document RFC793.
[0007]
In simple terms, this method involves data communication while handshaking between the transmitting side and the receiving side. That is, data communication proceeds by sending back ACK, which is data indicating that the data has been properly received from the receiving side to the transmitting side. The transmitting side retransmits data when ACK is not returned within a certain time. Thus, the handshake using ACK guarantees that the transmission data has arrived at the receiving side.
[0008]
Further, as an example of the error correction of the above (2), there is a method introduced as a conventional example in “Encoding method and encoder” described in Japanese Patent Laid-Open No. 2000-134619.
These methods are simply to detect and restore packet loss by interleaving data, distributing it into a plurality of packets, and attaching error correction codes to them.
[0009]
For example, k pieces of data are interleaved into h + k pieces of data, and error correction codes are attached. The transmitting side transmits this h + k pieces of data. On the receiving side, if, for example, arbitrary k pieces of data among h + k pieces of data can be received, the entire transmission data can be completely restored by using the data included therein and the error correction code.
The ratio between h and k is determined by statistical information of the network, and it is probabilistically guaranteed that transmission data is properly restored on the receiving side.
[0010]
As an example of resynchronization in (3) above, there is a “transmitting apparatus and method thereof and receiving apparatus and method thereof” described in JP-A-2002-10265. Unlike the above-mentioned techniques (1) and (2), this technique aims at minimizing the influence of packet loss on video, music, and voice communication rather than data integrity. is there.
[0011]
First, with reference to FIGS. 12 and 13, the influence of packet loss taking moving image data as an example will be briefly described. The squares F1, F2,. Called ..)
[0012]
Of these frames F1, F2,..., Thick frames F1 and F5 indicate frame data (hereinafter abbreviated as I picture) that can be decoded alone. Further, the other narrow frame rectangles (frames F2, F3, F4, F6, F7, etc.) indicate frames (hereinafter abbreviated as P pictures) made of differential data that cannot be decoded by themselves. Further, a curved arrow a connecting these squares indicates a dependency relationship between frames.
[0013]
In a normal moving picture coding system, an I picture is set to appear periodically, and a set of data from one I picture to the next I picture is called a group of pictures (hereinafter abbreviated as GOP). In the example of FIG. 12, it can be said that the frames F1 to F4 are one GOP. This GOP can be decoded independently of each other. In other words, if a packet loss occurs in a GOP, data in the same GOP cannot be decrypted properly thereafter.
[0014]
FIG. 12 schematically shows a case where all communication is performed properly. Frames F1, F2,... Corresponding to the respective packets sent from the transmission side shown in FIG. 12A are sent to the reception side in the correct order and without packet loss, as shown in FIG. Suppose you arrive at the right time. In this case, all the frames F1, F2,... Can be properly decoded, whereby the original data can be properly restored.
[0015]
On the other hand, FIG. 13 shows a case where, for example, the frame F3 is lost due to packet loss among the frames F1, F2,... Corresponding to the respective packets sent from the transmission side shown in FIG. Assume that a frame with a cross in the figure lost a packet).
[0016]
In this case, it is natural that the data of the frame F3 cannot be decoded, but even if the data of the subsequent frame F4 is properly received, the frame F4 depends on the data of the frame F3, so that it is decoded properly. The original data cannot be restored properly. For this reason, in order to properly restore the original data, it cannot be resumed until the start frame of the next GOP, that is, the frame F5 is received.
[0017]
In MPEG or the like, generally, data corresponding to about 0.5 seconds is generally a GOP. That is, there is a possibility that data of about 0.5 seconds at maximum cannot be decoded due to packet loss. This is a sufficiently long time for human perception, and causes a large deterioration in image quality. The technique described in Japanese Patent Laid-Open No. 2002-10265 described above is intended to improve such a problem, and the technique described in Japanese Patent Laid-Open No. 2002-10265 will be briefly described below.
First, a technique cited as a conventional example in Japanese Patent Laid-Open No. 2002-10265 will be briefly described with reference to FIG.
[0018]
Simply speaking, when a packet loss is detected, a NACK indicating that the data has not arrived is returned from the receiving side to the transmitting side, whereby the transmitting side transmits data that is the source of the difference (hereinafter referred to as reference data). The data with changed data is transmitted.
[0019]
First, as shown in FIG. 14, when the frame F4 is received while the frame F3 has not arrived, it is detected that the frame F3 has lost a packet. In this state, as in the example of FIG. 13, neither the frame F4 nor the subsequent frame F5 can be properly decoded, and the original data cannot be restored properly.
[0020]
In the technique disclosed in Japanese Patent Laid-Open No. 2002-10265 as a conventional example, a NACK is returned from the reception side to the transmission side in this case. The transmitting side that has received the NACK transmits the data corresponding to the next frame F5 as the difference data corresponding to the frame properly received by the receiving side in the vicinity of the missing frame. For example, in the case of FIG. 14, the frame F2, which is data immediately before the missing frame F3, is used as new reference data.
On the receiving side, since the frame F2 is properly received, the differential data of the frame F5 corresponding thereto can be properly decoded.
[0021]
As described above, according to this technique, the frame F3 and the frame F4 cannot be properly decoded, and the restoration of the original data corresponding thereto fails, but the restoration can be resumed in the subsequent frames. .
[0022]
However, in this technique, when communication is performed between multiple points, in order to cope with a case where a loss occurs in a different frame on each of the receiving sides, reference data corresponding to each receiving side on a one-to-one basis is used. There is a problem that the sender needs to have. The technique described in Japanese Patent Application Laid-Open No. 2002-10265 solves such a problem.
[0023]
In simple terms, the technique described in Japanese Patent Application Laid-Open No. 2002-10265 is such that reference data to be switched when a packet loss occurs is determined in advance as a rule on the transmission side and all reception sides. As a result, the transmitting side only needs to notify all receiving sides that reference data is to be switched, and it is not necessary to have reference data corresponding to each receiving side on a one-to-one basis.
[0024]
FIG. 15 is a diagram for explaining this, and shows a case where the reference frame when the packet loss occurs is designated as the frame F1.
In FIG. 15, for example, when a packet loss corresponding to the frame F3 occurs, the frame F4 is encoded using the frame F1 as reference data.
[0025]
Further, when a packet loss corresponding to the subsequent frame F5 occurs, in this case as well, the frame F1 is used as the reference data, not the frame F4 that is the closest data properly received.
[0026]
In any of the above cases, when the NACK returned by any receiving side is received on the transmitting side, the reference data is switched to data predetermined by the rule, and all that is notified to the receiving side. The data can be properly restored on the receiving side. However, a means for storing the frame data with the possibility of switching is required on all receiving sides.
[0027]
FIG. 16 is a diagram corresponding to FIG. 4 described in Japanese Patent Application Laid-Open No. 2002-10265 and showing the configuration of the transmission side (server device). In Japanese Patent Laid-Open No. 2002-10265, the server apparatus has main encoding means (first encoding module) and second encoding means (second encoding module) that supplements the main encoding means (first encoding module). There may be a plurality of second encoding modules.
[0028]
However, in Japanese Patent Application Laid-Open No. 2002-10265, it is not essential that the second encoding module exists. That is, the presence of the second encoding module has nothing more than the meaning of preparing in advance encoded data corresponding to reference data to be switched when any receiving side detects a packet loss. That is, switching of reference data and re-encoding may be sequentially performed using main encoding means (first encoding module).
[0029]
[Patent Document 1]
JP 2000-134619 A
[Patent Document 2]
JP 2002-10265 A
[0030]
[Problems to be solved by the invention]
In the data communication technique using retransmission as described above, the order and completeness of data are guaranteed. Therefore, it is suitable for non-real time communication. However, in this data communication method, handshaking is always required and a large delay occurs. Therefore, it is not suitable for real-time data communication.
[0031]
In addition, although handshaking is not performed in the error correction technique, in order to interleave the data, the data is dispersed on the time axis, which also causes a large delay. Therefore, it is not suitable for real-time data communication.
Further, the resynchronization process described in Patent Document 2 described above includes a handshake process such as NACK communication. Therefore, a large delay occurs in this part.
[0032]
As described above, most of the conventional techniques employ a data communication method with a delay. However, in bi-directional real-time data communication, delay is a big problem, and communication that does not require a cause of delay such as handshake is required.
[0033]
Moreover, although the example applied to the multipoint communication system is shown in the above-mentioned patent document 2, this technology assumes communication between a very small number of terminals even if it is multipoint communication. It is a thing. For this reason, as the present invention assumes, in the situation where the number of receiving sides becomes extremely large and any receiving side detects packet loss in almost all frame data, the above-mentioned patent document There is a high possibility that the technology of 2 will substantially fail.
[0034]
Therefore, the present invention can minimize data loss and minimize the occurrence of delay, and can be applied to real-time data communication, particularly bidirectional real-time data communication. An object is to provide a data transmission method, a data reception method, and a data communication system.
[0035]
[Means for Solving the Problems]
(1) A data transmission apparatus according to the present invention is a data transmission apparatus that encodes encoding target data input in time series and outputs the encoded data. The data transmission apparatus distributes the encoding target data into a plurality of data. The distribution means and the respective encoding target data distributed by the data distribution means are provided correspondingly, and each of the input encoding target data is independently encoded and obtained And a plurality of encoding means capable of transmitting each encoded data.
[0036]
As described above, the data transmission device described in (1) distributes encoding target data (for example, data for one frame of moving image data) to a plurality of pieces, and corresponds to each distributed encoding target data. The encoding means encodes each independently, and a plurality of encoded data obtained thereby are transmitted as encoded data of a plurality of channels.
[0037]
That is, the encoding means on the data transmission side described in (1) are independent from each other, and, for example, the technique described in the above-mentioned Patent Document 2 is different from that described as a conventional example therein. It is not a thing. That is, conventional techniques can be used as they are as individual encoding means. This is an important factor for maintaining compatibility with the prior art.
[0038]
In addition, the operation on the data transmission side described in (1) simply continues to output data and does not depend on the number on the data reception side. Therefore, it is possible to easily perform broadcast-type communication in which a large number of data receiving sides exist. In addition, since the data transmitting device and the data receiving device do not perform handshake processing, the data delay caused thereby can be minimized. As is obvious, there is no load for handshaking with a large number of data receiving apparatuses.
[0039]
This also has the effect of not degrading the encoding efficiency. For example, the technique used in the technique described in Patent Document 2 described above, when receiving a NACK signal from the receiving side at the time of packet loss, encodes data using temporally separated data as reference data. This reduces the correlation between the data and degrades the encoding efficiency. On the other hand, in the present invention, when encoding, only temporally neighboring data is used as reference data. Therefore, the correlation between data is expected to be high, and the encoding efficiency is not deteriorated.
[0040]
(2) It is preferable that the plurality of encoding units perform encoding processing on each encoding target data by changing encoding parameters between the respective encoding units.
[0041]
This means, for example, that the position of the above-mentioned I picture is made different by a plurality of encoding means, which causes a data error such as packet loss in the encoded data of a certain channel on the receiving side. However, the probability that decoding can be performed using the encoded data of other channels is increased, and the influence of packet loss can be reduced.
[0042]
(3) A data receiving device that decodes the encoded data transmitted from the data transmitting device described in (1) or (2) and outputs the decoded data, and is transmitted from the data transmitting device. Each of the encoded data can be received and decoded, and a plurality of decoding means capable of detecting a data error in the received encoded data and any one of the plurality of decoding means is prioritized. A decoding means management means that can be set as a decoding means and that can select the decoded data of any one of the plurality of decoding means; and the decoding means management means The data error detection state in the decoding means set as the priority decoding means is monitored, and if there is no data error, the decoded data in the priority decoding means is selected and output, and the data If there is any other decoding means that can properly decode the encoded data, it is checked whether there is another decoding means that can properly decode the encoded data. It is characterized by selecting and outputting the decoded data.
[0043]
As described above, in the data receiving device described in (3), the decoding means configured to receive the encoded data of a plurality of channels transmitted from the transmission side by the corresponding decoding means and set as the priority decoding means. When a data error is detected during the decoding process, the decoded data of the other decoding means that can properly decode the encoded data having the data error is selected and output, so that the packet loss The original data can be properly restored without being affected.
[0044]
Further, in the data receiving device described in (3), as in the data transmitting device, as a decoding unit of each of the plurality of decoding units, the conventional example (for example, the technique described in Patent Document 2 described above is used). Among them, those equivalent to those described as conventional examples) can be used.
[0045]
That is, the encoded data transmitted by the data transmitting apparatus of the present invention can be received and decoded by a data receiving apparatus not corresponding to the present invention. However, in this case, the operation performed by the present invention, that is, when there is a data error, the operation of dynamically switching the decoding means that can be decoded and selecting the appropriate decoded data cannot be performed. The significance of being able to use this data receiving device is great.
[0046]
(4) When the decoding means management means determines that there is another decoding means capable of properly decoding the encoded data having the data error, the priority decoding means is assigned to the decoding means. It is preferable to update.
[0047]
In this way, when it is determined that there is another decoding means that can properly decode the encoded data having the data error, by performing processing for updating the priority decoding means to the decoding means, Depending on the time, it is possible to dynamically switch the decoding means capable of decoding properly and select the appropriate decoded data, thereby properly restoring the original data.
[0048]
(5) The data error detected by the data error detection means is a lack of encoded data for each of the encoding target data.
[0049]
By detecting the lack of encoded data with respect to the encoding target data (expressed as packet loss in the embodiment described later) and performing processing corresponding thereto, high quality that is not affected by packet loss Data can be restored.
[0050]
(6) In a data transmitting apparatus that encodes encoding target data input along a time series and outputs the encoded data, a data distribution unit that distributes the encoding target data into a plurality of data, and the data distribution unit Is provided for each encoding target data distributed in the above, and each input encoding target data can be independently encoded, and each encoded data obtained thereby can be transmitted. A plurality of encoding means, and a data reduction means provided on the input side of at least one of the plurality of encoding means and for reducing the data to be encoded distributed by the data distribution means. It is characterized by having.
[0051]
In addition to the effect of the data transmission device of (1) described above, the data transmission device described in (6) inputs reduced data to at least one of the plurality of encoding units. For example, it is possible to easily realize a sample display or a moving image thumbnail display for an image.
[0052]
Also, in the data transmitting apparatus described in (6), as in the data transmitting apparatus in (1), the plurality of encoding units are configured to perform encoding between the respective encoding units for each encoding target data. It is preferable to perform the encoding process by changing the encoding parameter.
[0053]
(7) A data reception device that decodes the encoded data transmitted from the data transmission device according to (6) and outputs the decoded data, and each of the data transmission devices transmitted from the data transmission device A plurality of decoding means capable of receiving and decoding the encoded data and detecting a data error of the received encoded data, and an output size acquisition for acquiring the output size of the decoded data to be output And a decoding means capable of decoding with an output size adapted to the output size acquired by the output size acquisition means can be set as a priority decoding means, and among the plurality of decoding means, A decoding means management means capable of selecting the decoded data of any of the decoding means, and the decoding means management means is a decoding means set as the priority decoding means. The data error detection state is monitored, and if there is no data error, the decoded data in the priority decoding means is selected and output. If there is a data error, the encoded data can be decoded properly. It is characterized by checking whether there is another decoding means, and if there is another decoding means that can be properly decoded, the decoded data of the decoding means is selected and output.
[0054]
Thereby, in addition to the effect of the data receiving apparatus described in (3), for example, sample display or moving image thumbnail display can be easily realized in the image. In order to realize this, the data receiving apparatus only needs to receive the reduced encoded data sent from the data transmitting apparatus side and decode it. In the case of a personal computer, the processing load on the user side device can be reduced and the load on the network can be reduced. In addition, thumbnail images and the like can be viewed on the receiving side.
[0055]
In the data receiving method described in (7), the data error detected by the data error detecting means is a lack of encoded data for the respective encoding target data.
[0056]
(8) Decoding data expansion / reduction means capable of expanding / reducing the decoded data selected by the decoding means management means is provided, and the decoded data expansion / reduction means When the data size is different from the output size acquired by the output size acquisition unit, a data size adjustment process is performed on the decoded data so that the data size matches the output size acquired by the output size acquisition unit. Preferably it is done.
[0057]
As a result, a data error is detected by a decoding means capable of decoding with an output size adapted to the output size specified by the output size specifying means, and decoding is performed by another decoding means having a different output size. Even in this case, the decoded output size can be converted into an output size suitable for the output size specified by the output size specifying means and output.
[0058]
(9) When the decoding means management means determines that there is another decoding means capable of properly decoding the encoded data having the data error, the priority decoding means is assigned to the decoding means. If the output data size of the updated priority decoding means is different from the output size acquired by the output size acquisition means, the decoded data of the priority decoding means is selected and output. Preferably, the priority decoding means is returned to a decoding means that matches the output size acquired by the output size acquisition means.
[0059]
As described above, when it is determined that there is another decoding unit that can appropriately decode the encoded data having the data error, by performing processing for updating the priority decoding unit to the decoding unit, Depending on the time, it is possible to dynamically switch the decoding means capable of decoding properly and select the appropriate decoded data, thereby properly restoring the original data.
[0060]
If the output data size of the updated priority decoding unit is different from the output size acquired by the output size acquisition unit, the decoded data of the priority decoding unit is selected and output, and then the priority Since the decoding means is returned to the decoding means that matches the output size acquired by the output size acquisition means, the output of decoded data different from the output size acquired by the output size acquisition means is minimized. You can stay. As a result, it is possible to minimize the time for enlarging or reducing the decoded data and outputting it, and to suppress degradation of the quality of the output data.
[0061]
(10) In a data transmission method for encoding data to be encoded input along a time series and outputting the encoded data, the data to be encoded is distributed into a plurality of data, and each of the distributed data The encoding target data is input to a plurality of data encoding means corresponding to the respective encoding target data, encoded by the respective encoding means, and each encoded data obtained thereby is encoded. It is characterized by transmitting.
[0062]
By adopting such a data transmission method, it is possible to obtain the same effect as that of the above-described data transmission apparatus (1). Also in the data transmission method described in (10), the plurality of encoding units perform encoding processing on each encoding target data by changing encoding parameters between the encoding units. Is preferred.
[0063]
(11) A data receiving method for decoding encoded data transmitted by the data transmitting method according to (10) and outputting the decoded data, wherein each transmitted encoded data is One of a plurality of decoding means that can receive and decode the received encoded data and can detect a data error of the received encoded data is set as a priority decoding means, and the priority decoding is performed. Monitoring the data error detection state in the decoding means set as the conversion means, if there is no data error, select and output the decoded data in the priority decoding means, if there is a data error, It is checked whether or not there is another decoding means that can properly decode the encoded data. If there is another decoding means that can properly decode the decoded data, the decoded data of the decoding means is selected. It is characterized in that to the output.
[0064]
By adopting such a data receiving method, the same effect as the above-described data receiving apparatus (3) can be obtained.
[0065]
(12) In a data transmission method for encoding data to be encoded input along a time series and outputting the encoded data, the data to be encoded is distributed into a plurality of codes, and each of the distributed codes The data to be encoded is input in correspondence with a plurality of data encoding means provided for the respective encoding target data, and at least one of the plurality of data encoding means In other words, the encoding target data subjected to the data reduction processing by the data reduction means is inputted, encoded by the respective encoding means, and the respective encoded data obtained thereby are transmitted.
[0066]
By adopting such a data transmission method, an effect similar to that of the data transmission apparatus of (6) described above can be obtained. Also, in the data transmission method described in (12), as in the data transmission device of (1), the plurality of encoding units may perform the respective encoding target data between the respective encoding units. It is preferable to perform the encoding process by changing the encoding parameter.
[0067]
(13) A data receiving method for decoding each encoded data transmitted by the data transmitting method described in (12) and outputting the decoded data, and an output size of the decoded data to be output Among the plurality of decoding means capable of receiving and decoding each transmitted encoded data and detecting a data error in the received encoded data. A decoding means capable of outputting decoded data with an output size suitable for the output size set is set as a priority decoding means, and a data error detection state in the decoding means set as the priority decoding means is monitored. If there is no data error, the data decoded by the priority decoding means is selected and output. If there is a data error, the encoded data is appropriately set. It is characterized by checking whether there is other decoding means that can be encoded, and if there is other decoding means that can be properly decoded, the decoded data of the decoding means is selected and output. Yes.
By adopting such a data receiving method, the same effect as that of the data receiving apparatus described in (7) above can be obtained.
[0068]
Also in the data receiving method described in (13), the data error detected by the data error detecting means is a lack of encoded data for the respective encoding target data. Further, when the decoded data size of the selected decoding means is different from the required output size, the data size adjustment processing is performed on the decoded data so that the data size matches the required output size. It is preferable to carry out.
[0069]
Further, when it is determined that there is another decoding means capable of properly decoding the encoded data having the data error, the priority decoding means is updated to the decoding means, and the updated priority decoding is performed. If the output data size of the converting means is different from the required output size, the decoded data of the preferential decoding means is selected and output, and then the preferential decoding means is decoded to match the required output size. It is preferable to return to the converting means.
[0070]
(14) A data transmission apparatus that encodes encoding target data input along a time series and outputs the encoded data, and receives and decodes the encoding target data transmitted from the data transmission apparatus In the data communication system having the data receiving device that outputs the decoded data, the data transmitting device is the data transmitting device according to any one of (1), (2), and (6), A data communication system, wherein the data receiving device is the data receiving device according to any one of (3), (4), (5), (7), (8), and (9).
[0071]
As a result, the data transmitting apparatus side can take over the effects of the data transmitting apparatus described in (1), (2), and (6) as it is, and the data receiving apparatus side can perform the above described (3), ( 4), (5), (7), (8), (9), the effects of the data receiving apparatus can be taken over as they are. For this reason, normal data restoration is possible on the data receiving device side without being affected by packet loss, and in the data communication system of the present invention, no handshake with the data receiving device side is required. Delay can be minimized, and a data communication system optimal for real-time data communication, particularly bidirectional real-time communication can be obtained.
[0072]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below. The contents described in this embodiment include descriptions of the data transmission apparatus and data reception apparatus, data transmission method and data reception method, and data communication system of the present invention. In this embodiment, a moving image is taken as an example of real-time data to be processed. However, the present invention is not limited to a moving image, and can be similarly applied to real-time data such as music and voice.
[0073]
[Embodiment 1]
FIG. 1 is a block diagram showing a configuration example of Embodiment 1 of the data transmission apparatus of the present invention. The data transmission apparatus according to the first embodiment encodes data for each encoding unit (for example, one frame of moving image data) along a time series from real-time data to be transmitted (in this embodiment, a moving image). Data input means 1 for inputting the data to be encoded, data distribution means 2 for distributing the encoding target data input to the data input means 1 into N pieces (N is a natural number), N distributed by the data distribution means 2 N encoding units 301 to 30N are provided corresponding to the respective encoding target data.
[0074]
In the embodiment of the present invention (including Embodiment 1 and Embodiment 2 described later), for the sake of simplicity, it is assumed that the encoding unit is a frame, and one frame is one packet. Will be described as being transmitted.
[0075]
The encoding units 301 to 30N include a data encoding unit 31 that encodes image data corresponding to each of them, and an encoded data transmission unit 32 that transmits the encoded data. In addition, the encoding by each data encoding means 31 is performed by changing the encoding parameter for each of the encoding means 301 to 30N (this will be described later).
[0076]
The encoded data encoded by the data encoding means 31 are output as N-channel encoded data on the data communication path 10 by the corresponding encoded data transmitting means 32, respectively. Not sent to the receiver via the network.
[0077]
FIG. 2 is a block diagram showing a configuration example of the first embodiment of the data receiving apparatus according to the present invention. The data receiving apparatus according to the first embodiment includes a plurality (N) of decoding means 401 to 40N provided independently of each other, decoding means management means 5 (priority decoding means storage means 51 and decoding). A data output means 6 for outputting the decoded data.
[0078]
Note that N of the decoding units 401 to 40N does not necessarily match the N of the encoding units 301 to 30N illustrated in FIG. That is, the number of decoding units 401 to 40N and the number of encoding units 301 to 30N are not necessarily the same.
[0079]
Decoding means 401 to 40N are encoded data receiving means 41 for respectively receiving N channel encoded data sent from the data transmitting apparatus shown in FIG. 1, and when a data error occurs in the received encoded data The data error detecting means 42 for detecting the data error and the encoded data decoding means 43 for decoding the encoded data are provided.
[0080]
In the embodiment of the present invention (including Embodiment 1 and Embodiment 2 described later), the data error to be detected is data loss (hereinafter referred to as packet loss). Therefore, in the following description, the data error detection unit 42 is referred to as a packet loss detection unit 42.
[0081]
Further, as described above, the decoding means management means 5 includes the priority decoding means storage means 51 and the decoding means selection means 52, and the decoding means selection means 52 selects one of the decoding means 401 to 40N. The priority decoding means storage means 51 can be set as the priority decoding means, and the decoding of any of the decoding means 401 to 40N based on the setting contents of the priority decoding means storage means 51 Data can be selected.
[0082]
Specifically, the decoding means selection means 52 sets an arbitrary decoding means as an initial value for the priority decoding means storage means 51 as the priority decoding means, and this priority decoding means storage means 51. The decrypted data by the priority decrypting means is selected from the stored contents of the data, and the selected decrypted data is output to the data output means 6. In the present invention, the encoded data decoding means included in the decoding means not selected by the priority decoding means storage means 51 can be configured to be paused.
[0083]
The decoding means selection means 52 monitors the data error detection state in the decoding means set as the priority decoding means, and when the packet loss is detected by the priority decoding means, the packet lost frame is appropriately It is checked whether or not there are other decoding means that can be decoded. If there is a decoding means that can be properly decoded, the decoding means becomes a new priority decoding means in the priority decoding means storage means 51. It has a function of storing (updating the stored contents), selecting decoded data by the decoding means capable of decoding, and outputting the selected decoded data to the data output means 6. This series of processing will be described later.
[0084]
The data output means 6 outputs the decoded data selected by the decoding means selection means 52 as a data output.
[0085]
In such a configuration, the operation will be described in detail with reference to the flowchart of FIG.
[0086]
First, when the decoding process is started, the priority decoding unit storage unit 51 is initialized (step S1), and any one of the decoding units 401 to 40N has priority as the priority decoding unit. It is stored in the decryption means storage means 51.
[0087]
After that, the N-channel encoded data transmitted from the data transmitting apparatus shown in FIG. 1 is received by the respective encoded data receiving means 41 of the decoding means 401 to 40N corresponding to the respective channels (step S2). . Thereby, the decoding process is started in each of the encoded data decoding units 43 of the decoding units 401 to 40N.
[0088]
At this time, it is determined whether or not a packet loss has been detected in the priority decoding means (priority decoding means initialized by the decoding means selection means 52) stored in the priority decoding means storage means 51 (step S3). If no packet loss is detected, the decoded data decoded by the priority decoding means becomes the data output (step S4).
[0089]
At this time, if a packet loss is detected by the priority decoding means (step S3), it is possible to properly decode the frame corresponding to the encoding target data (in this case, one frame of data) with the packet loss. It is checked whether there is another decoding means (step S5), and if there is a decoding means that can be properly decoded, the decoding means stores the priority decoding means storage means 51 as the priority decoding means. It is set (step S6). Then, the decoded data of the decoding means newly set as the priority decoding means becomes the data output (step S4).
[0090]
Here, being able to decrypt properly means that there is no data error. In the embodiment of the present invention (including Embodiment 1 and Embodiment 2 described later), the data error is a packet loss. However, in addition to the packet loss, this data error includes ▲ 1) Due to jitter, delay, etc., the packet (data) has not arrived at the timing required for decoding, or [2] some error has been detected in the arrived packet (data). In other words, the fact that decoding can be properly performed means that there is no packet loss and the state does not correspond to the above (1) and (2).
[0091]
If there is no decoding means that can properly decode in step S5, some processing for packet loss, for example, processing of continuously using the last decoded data is performed (step S7), and thereafter Then, it waits until any one of the decoding means can be properly decoded (step S8). When any one of the decoding means can be properly decoded, the decoding means is stored as the priority decoding means in the priority decoding means storage means 51 (step S6), and the new priority decoding is performed. The decrypted data of the decrypting means used as the means becomes the data output (step S4).
[0092]
Then, returning again to step S2, each decoding unit 401 to 40N corresponding to the N channel receives data for one frame to be encoded next, and performs the processing after step S3. In this way, the decoding process of the encoded data is performed. Hereinafter, the operation described above will be described in more detail with reference to FIGS.
[0093]
FIG. 4 shows that in the data transmission apparatus according to the first embodiment of the present invention shown in FIG. 2, N of N coding means 301 to 30N is 2 (N = 2), that is, two coding means ( The encoding processing operation in the case where the encoding unit 301 and the encoding unit 302 are assumed to be described will be described.
[0094]
4A shows an example of encoded data encoded by the encoding unit 301, and FIG. 4B shows an example of encoded data encoded by the encoding unit 302. As described in the prior art, the squares F1, F2,... Schematically show data for each frame of the moving image, and the squares F1, F2,. It is called F2, ... Also, thick frames F1 and F5 indicate frame data (I picture) that can be decoded alone. Further, the other narrow frame rectangles (frames F2, F3, F4, F6, F7, etc.) indicate frames (P pictures) made of differential data that cannot be decoded by themselves. In addition, a curved arrow a connecting these squares indicates a dependency relationship between the data.
[0095]
In the example shown in FIGS. 4A and 4B, the encoding unit 301 and the encoding unit 302 encode the same encoding target data, but have different encoding parameters. Here, as shown in FIGS. 4A and 4B, the encoding parameters are set so that the position of a frame that can be decoded independently, that is, the position of the I picture is different. In the example of FIG. 4, in the encoding means 301, the I picture is frames F1, F5,..., And in the encoding means 302, the I picture is frames F3, F7,. The setting is such that the position of the I picture is different.
[0096]
FIG. 5 explains the decoding operation on the data receiving apparatus side when the encoded data as shown in FIG. 4 is input. FIG. 5 shows a case where N in the N decoding means 401 to 40N is 2 (N = 2), that is, there are two decoding means (decoding means 401 and decoding means 402). Will be described with respect to the decryption processing in the decryption means 401 and the decryption means 402.
[0097]
Here, the encoded data encoded by the encoding unit 301 (FIG. 4A) is input to the decoding unit 401 and the encoded data encoded by the encoding unit 302 (FIG. 4B). )) Is input to the decoding means 402. In the example of FIG. 5, it is assumed that a frame with a cross in the figure has lost a packet. At this time, it is assumed that the decoding unit 401 is initially set as the priority decoding unit in the priority decoding unit storage unit 51.
[0098]
First, the frame F1 is received by the decoding means 401 and 402. As can be seen from FIG. 5A, the decoding means 401, which is the priority decoding means at this time, detects the packet loss of the frame F1. Not. Therefore, in this case, the decoded data of the decoding unit 401 which is the priority decoding unit is selected, and the decoded data becomes the data output (corresponding to steps S1, S2, S3 and S4 in FIG. 3). .
[0099]
Subsequently, the frame F 2 is received by the decoding means 401 and 402. In this case, as can be seen from FIG. 5 (a), the frame F2 is not detected by the decoding means 401, which is the priority decoding means at this time, in the same way as the frame F1. Therefore, also for this frame F2, the decoded data of the decoding means 401 which is the priority decoding means is selected, and the decoded data becomes the data output (in steps S1, S2, S3 and S4 in FIG. 3). Corresponding to processing).
[0100]
Subsequently, the frame F3 is received by the decoding means 401 and 402. As can be seen from FIG. 5A, the frame F3 is lost in the decoding means 401, which is the priority decoding means at this time. This is detected by the data error detecting means 42.
[0101]
As a result, the decoding means selection means 52 checks whether there is another decoding means that can properly decode the frame F3, and as a result, the decoding means 402 can perform appropriate decoding. Is detected, the content stored in the priority decoding means storage means 51 is updated by the decoding means 402 as the priority decoding means, and the decoded data by the decoding means 402 is selected for this frame F3. Thus, the decoded data becomes a data output (corresponding to the processes of steps S5, S6, and S4).
[0102]
Subsequently, the frame F4 is received by the decoding means 401, 402. As can be seen from FIG. 5B, the packet loss of the frame F4 is detected in the decoding means 402, which is the priority decoding means at the present time. Not detected. Therefore, in this case, the decoded data of the decoding unit 402, which is the priority decoding unit, is selected, and the decoded data becomes the data output (corresponding to the processes of steps S2, S3, and S4).
[0103]
Subsequently, the frame F5 is received by the decoding means 401 and 402, and the decoding means 402 which is the current priority decoding means, as can be seen from FIG. Since no packet loss is detected by the decoding means 402, the frame F5 is decoded by the decoding means 402, the decoded data that has been decoded is selected, and the decoded data becomes the data output. (Corresponding to steps S2, S3 and S4).
[0104]
Subsequently, the frame F6 is received by the decoding means 401, 402. In this case, the decoding means 402, which is the priority decoding means at the present time, detects that the frame F6 is lost as can be seen from FIG. 5B. At this time, if the decoding means selection means 52 detects that the decoding means 401 can properly decode the frame F6, the contents stored in the priority decoding means storage means 51 are prioritized by the decoding means 401. Updated as the decoding means, the decoded data by the decoding means 401 is selected for this frame F6, and the decoded data becomes the data output (corresponding to the processing of steps S5, S6, S4).
[0105]
Subsequently, the frame F7 is received by the decoding means 401, 402. As can be seen from FIG. 5 (a), the decoding means 401, which is the priority decoding means at the present time, receives the packet in the decoding means 401. Since no loss is detected, the decoded data by the decoding unit 401 is output as data for the frame F7 (corresponding to the processing of steps S2, S3, and S4).
[0106]
The decoding process is performed in the above procedure. Eventually, in this example, the decoded data is output in the order shown by the broken line A in FIGS. 5 (a) and 5 (b). That is, the decoded data of the decoding unit 401 is output for the frames F1 and F2, the decoded data of the decoding unit 42 is output for the frames F3, F4, and F5, and the decoding data of the decoding unit 401 is output for the frames F6 and F7. As the data is output, depending on the packet loss status of each frame sent sequentially from the data transmitting device side, the decoding data of the decoding means that can properly decode is dynamically switched and selected And output it.
[0107]
As a result, in this example, all the frames are properly decoded without packet loss, whereby the original data (herein, moving image data) can be properly restored.
As is clear from the above description, the first embodiment has the following effects.
[0108]
The data transmission apparatus according to the first embodiment distributes encoding target data (for example, data for one frame of moving image data) to a plurality of pieces, and the distributed encoding target data is respectively encoded by corresponding encoding means. Encoding is performed independently, and a plurality of encoded data obtained thereby are transmitted as encoded data of a plurality of channels.
[0109]
That is, the encoding means on the data transmission side are independent from each other, and, for example, the technique described in Patent Document 2 described above is not different from what is cited as a conventional example. That is, conventional techniques can be used as they are as individual encoding means. This is an important factor for maintaining compatibility with the prior art.
[0110]
The operation on the data transmission side simply continues to output data and does not depend on the number of data reception sides. Therefore, it is possible to easily perform broadcast-type communication in which a large number of data receiving sides exist. In addition, since the data transmitting device and the data receiving device do not perform handshake processing, the data delay caused thereby can be minimized. As is obvious, there is no load for handshaking with a large number of data receiving apparatuses.
[0111]
This also has the effect of not degrading the encoding efficiency. For example, in the technique described in Patent Document 2 that receives a NACK signal from the receiving side at the time of packet loss, encoding is performed using data that is temporally separated as reference data. However, in this method, the correlation between the data is small. Thus, the encoding efficiency is deteriorated. On the other hand, in the present invention, when encoding is performed, only neighboring data is used as reference data. Therefore, the correlation between data is expected to be high, and the encoding efficiency is not deteriorated.
[0112]
Next, the operation on the data transmitting apparatus side of the first embodiment simply outputs the encoded data and does not depend on the number on the data receiving apparatus side. Accordingly, it is possible to easily perform broadcast-type communication in which a large number of data receiving apparatuses exist.
[0113]
Next, in the data receiving apparatus, as in the data transmitting apparatus, as the encoded data decoding means 43 used in the respective decoding means 401 to 40N, the same one as in the conventional example can be used. This means that data transmitted by the data transmitting apparatus of the present invention can be received by a data receiving apparatus not corresponding to the present invention.
[0114]
That is, if the data receiving apparatus (see FIG. 2) shown in the first embodiment of the present invention is used, the processing as described in the flowchart of FIG. 3 and FIG. 4 and FIG. 5 can be performed. It is possible to receive real-time data without generating it.
[0115]
On the other hand, when the conventional data receiving apparatus that is not the data receiving apparatus of the present invention as shown in FIG. 2 is used, the processing as described in the flowchart of FIG. 3 and FIG. 4 and FIG. When packet loss is detected by one decoding means, it is impossible to dynamically select and output the decoded data from other decoding means that can be properly decoded, but the conventional decoding process remains as it is It can be carried out. Thus, the present invention can use conventional decoding means as the individual decoding means 401 to 40N. This is an important factor for maintaining compatibility with the prior art.
[0116]
As described above, in the first embodiment, a very large effect can be obtained by making a slight change to the conventional technique.
[0117]
[Embodiment 2]
FIG. 6 is a block diagram showing a configuration example of Embodiment 2 of the data transmission apparatus of the present invention. FIG. 6 is obtained by adding data reduction means 11 to the configuration of the data transmission apparatus of FIG. 1 used for the description of the first embodiment. The other components are the same as those in FIG. The same reference numerals are given. The data reduction unit 11 is provided for one encoding unit in the second embodiment, but may be provided for a plurality of encoding units.
[0118]
In FIG. 1 used for the description in the first embodiment, an example in which the number of encoding means is N of the encoding means 301 to 30N is shown. In FIG. In this example, three encoding units 301, 302, and 303 are provided, and the data reduction unit 11 is provided on the input side of the encoding unit 303.
[0119]
That is, the data to be encoded (for example, one frame of moving image data) input to the data input means 1 is distributed to N (three in the case of FIG. 6) by the data distribution means 2, and each of the distributed data is distributed. Is input to the encoding means 301 and 302 as it is, and is input to the encoding means 303 as reduced data through the data reduction means 11. The other components in FIG. 6 are the same as those in FIG. 2, and thus the same parts are denoted by the same reference numerals.
[0120]
The data reduction unit 11 may be one having a function of reducing the size of image data such as moving image data as processing target data. In addition, music data, audio data, and the like may have a function of converting a sampling rate low, or may have a function of converting multi-channel data to monaural data.
[0121]
FIG. 7 is a block diagram showing a configuration example of Embodiment 2 of the data receiving apparatus of the present invention. FIG. 7 is obtained by adding an output size acquisition unit 12 and a decoded data enlargement / reduction unit 13 to the configuration of the data receiving apparatus of FIG. 2 used for the description of the first embodiment. The same parts are denoted by the same reference numerals.
[0122]
In FIG. 2 used for the description in the first embodiment, an example in which the number of decoding means is N among the decoding means 401 to 40N is shown. In FIG. An example in which the number of converting means includes three decoding means 401, 402, and 403 is shown.
[0123]
The data processing procedure in the data receiving apparatus shown in FIG. 7 is basically the same as the decoding procedure (the flowchart in FIG. 3) of the data receiving apparatus shown in FIG. 2 in the first embodiment. One point is different.
[0124]
The first difference is the part related to the initialization processing of the priority decoding means storage means 51 in the processing shown in the flowchart of FIG. 3 used in the description of the first embodiment.
FIG. 8 is a flowchart for explaining step S1 in the flowchart shown in FIG. 3, that is, the initialization process of the priority decoding means storage means 51.
[0125]
In the initialization processing of the priority decoding means storage means 51 in the second embodiment, according to FIG. 8, it is first determined whether or not there is an output size designation (step S11), and if there is an output size designation. Decoding means having an output size that is the same as or closest to the specified output size (output size acquired by the output size acquisition means 12) is stored in the priority decoding means storage means 51. (Step S12). If no output size is specified, an arbitrary decoding unit is set as the priority decoding unit in the priority decoding unit storage unit 51 (step S13).
[0126]
That is, in the first embodiment, an arbitrary decoding unit is set as the initial value, but in the second embodiment, the designated output size, that is, the output size acquisition unit 12 acquires the specified output size. A decoding unit having an output size that is the same as or closest to the output size is set. If no output size is specified, an arbitrary decoding unit is set as in the first embodiment.
[0127]
The second difference is the part related to data output (step S4 in FIG. 3) in the processing shown in the flowchart of FIG. 3 used in the description of the first embodiment. In the second embodiment, the processing relating to the data output is performed as shown in FIG.
[0128]
In FIG. 9, first, it is determined whether or not there is an output size designation (step S21). If there is an output designation, the output size of the priority decoding means stored in the priority decoding means storage means 51 is designated output. It is determined whether or not it is the same as the size (data size designated by the output size acquisition means 12) (step S22). If not, the decoded data enlargement / reduction means 13 adjusts the size of the decoded data. (Step S23), the decoded data after the adjustment is output (Step S24).
[0129]
If the output size is not specified in step S21, or the output size of the priority decoding unit stored in the priority decoding unit storage unit 51 in step S22 is the specified output size (the data acquired by the output size acquisition unit 12). If it is equal to (size), it is output without performing the process of adjusting the output size of the decoded data (step S24).
[0130]
Thus, in the second embodiment, when data output is performed, if the output size of the decoded data selected by the decoding means selection means 52 and the output size obtained by the output size acquisition means 12 are different, The decoded data is adjusted in size so as to be the output size acquired by the decoded data enlargement / reduction means 13.
[0131]
A third difference is processing related to updating of the priority decoding means. That is, in the case of the second embodiment, as the priority decoding means, a decoding means having an output size suitable for the output size obtained from the output size acquisition means 12 is set as an initial value. When packet loss occurs in the means, decoded data with an output size different from the output size obtained from the output size acquisition means 12 may be selected as an exceptional decoded data selection process.
[0132]
Even when such exceptional decoded data selection processing is performed, the decoding means selection means 52 outputs the decoded data having different output sizes as in the case where the exceptional decoded data selection processing is not performed. The priority decoding means is set as the priority decoding means in the priority decoding means storage means 51 (step S6 in FIG. 3). When this exceptional decoded data selection processing is performed, priority decoding with different output sizes is performed. After selecting the decoded data from the means, the priority decoding means set in the priority decoding means storage means 51 is changed to a decoding means having an output size acquired by the output size acquisition means 12 (as an initial value). A process of returning to the set decoding means) is performed. Note that this processing procedure is not shown.
[0133]
10 and 11 are for explaining the decoding process of the second embodiment. In the second embodiment, as described in FIG. 6, the data reduced by the data reduction unit 11 is given to the encoding unit 303, and the encoded data from the encoding unit 303 is The encoded data corresponds to the reduced data, and the encoded data is input to the decoding unit 403.
[0134]
In FIGS. 10 and 11, the reduced data is encoded so that it can be decoded independently in all frames (all frames are I pictures) in consideration of the size of the data. It is supposed to be. Each reduced frame is represented as frames s1, s2, s3,.
[0135]
First, FIG. 10 will be described. FIG. 10 shows an example in which the decoding unit 401 is set as an initial value in the priority decoding unit storage unit 51. That is, in this case, the decoding means having the same output size (or the closest output size) as the output size acquired by the output size acquisition means 12 are the decoding means 401 and the decoding means 42, Of the decoding units 401 and 402, the decoding unit 401 is set as a priority decoding unit.
[0136]
Here, as shown in FIG. 10A, in the encoded data input to the decoding means 401, packet loss (marked with x in the figure) occurs in the frames F3 and F6. As shown in FIG. 6B, in the encoded data input to the decoding means 42, it is assumed that packet loss (marked with x in the figure) occurs in the frames F2 and F6. . As shown in FIG. 10C, it is assumed that no packet loss has occurred in the encoded data input to the decoding means 403. Since the processing procedure for each frame has been described in detail in the first embodiment, it will be described here in a simplified manner.
[0137]
First, the frame F1 is received by the decoding means 401, 402, 403, and the decoding process is started. Then, since the decoding unit 401 initially set as the priority decoding unit does not detect the packet loss of the frame F1, the decoded data of the decoding unit 401 is selected. Similarly, in the frame F2, since the packet loss of the frame F1 is not detected in the decoding unit 401 initially set as the priority decoding unit, the decoded data of the decoding unit 401 is selected.
[0138]
Subsequently, the frame F3 is received by the decoding means 401, 402, 403. As can be seen from FIG. 10A, the packet 401 of the frame F3 is received by the decoding means 401, which is the priority decoding means at the present time. Loss is detected.
[0139]
As a result, the decoding means selection means 52 checks whether there is another decoding means that can properly decode the frame F3, and as a result, the decoding means 402 can perform appropriate decoding. Is detected, the content stored in the priority decoding means storage means 51 is updated by the decoding means 402 as the priority decoding means, and the decoded data of the decoding means 402 is selected for this frame F3. Thus, the decoded data becomes the data output. The decoding means 403 can also decode the frame F3. In this case, the decoding means 402 having the same output size as the requested output size (the output size acquired by the output size acquisition means 12) is used. Prioritize.
[0140]
Subsequently, the frame F4 is received by the decoding means 401, 402, and 403. As can be seen from FIG. 10B, the packet of the frame F4 is received by the decoding means 402, which is the priority decoding means at the present time. Loss is not detected. Therefore, in this case, the decoded data of the decoding unit 402 which is the priority decoding unit is selected, and the decoded data becomes the data output. Similarly, since the packet loss of the frame F5 is not detected in the decoding unit 402 set as the priority decoding unit at that time, the decoded data in the decoding unit 402 is selected.
[0141]
In the processing so far, the required output size (the output size acquired by the output size acquisition unit 12) is the same as the output size of the decoding unit 401 and the decoding unit 42. Size adjustment (enlargement or reduction) is not performed on the encoded data output from 401 and 402.
[0142]
Subsequently, the frame F6 is received by the decoding means 401, 402, and 403. The decoding means 402, which is the priority decoding means at the present time, as shown in FIG. The packet loss is detected by the decoding means 402 which is the converting means.
[0143]
Thereby, the decoding means selection means 52 checks whether there is another decoding means that can properly decode the frame F6. As a result, this frame F6 is also detected by the decoding means 401, and in this case, the decoding means 403 detects that proper decoding is possible. As a result, the content stored in the priority decoding means storage means 51 is updated by the decoding means 403 as the priority decoding means, and the decoded data of the frame s6 of the decoding means 403 is selected for this frame F6. The decoded data becomes the data output.
[0144]
At this time, since the encoded data input to the decoding means 403 is encoded data of reduced size, the decoded data obtained by decoding the data is of course the required data size. Since the output size is smaller than the output size (the output size acquired by the output size acquisition unit 12), the output size is adjusted (in this case, the expansion process) by the decoded data expansion / reduction unit 13, and the expansion process is performed. As a result, the decoded data having the same output size as the requested output size (the output size acquired by the output size acquisition means 12) is output as the data output.
[0145]
Then, the next frame F7 is received by the decoding means 401, 402, 403, and it is determined whether or not a packet loss is detected by the priority decoding means at this time. Here, at this time point, the decoding means 403 is set as the priority decoding means in the priority decoding means storage means 51. In the examples so far, the decoding means 403 is processed as the priority decoding means. However, in the case of the second embodiment, since the required output size is specified, the decoded data at the requested output size (the output size acquired by the output size acquisition means 12) is output. It is necessary to let
[0146]
That is, in the example of FIG. 10, since the output size that is the same as the requested output size is the decoded data of the decoding unit 401 and the decoding unit 402, the decoded data (reduced size) of the decoding unit 403 is reduced. In this case, it can be said that the decoded data selection process is an exceptional decoded data selection process when the decoded data of the decoding unit 401 or the decoding unit 402 cannot be used.
[0147]
Therefore, when such exceptional decoded data selection processing is performed, as described above, the decoding means selection means 52 selects the decoded data by the decoding means having different output sizes, and then A process of returning the priority decoding means stored in the priority decoding means storage means 51 to the decoding means having the required output size (the output size acquired by the output size acquisition means 12) is performed.
[0148]
That is, in the case of FIG. 10, after the decoded data by the decoding means 403 is output as an exceptional decoded data selection process, the priority decoding means stored in the priority decoding means storage means 51 is the original output. Returning to the decoding means 401 or the decoding means 402 having the size, the process for the next frame F7 is performed.
[0149]
In the case of FIG. 10, both the decoding means 401 and 402 have detected a packet loss in the frame F6. Here, since the frame F7 of the decoding unit 401 is a P picture and the frame F7 of the decoding unit 402 is an I picture, the decoded data of the decoding unit 402 is adopted, and the decoded data is output as data. The Since the decoded data of the frame F7 by the decoding unit 402 is the same as the required output size, there is no need to adjust (enlarge or reduce) the size of the output data.
[0150]
As described above, in the example of FIG. 10, the decoded data is selected and output in the order shown by the broken line A. That is, the decoded data of the decoding unit 401 is selected for the frames F1 and F2, the decoded data of the decoding unit 402 is selected for the frames F3, F4, and F5, and the frames corresponding to the frame F6 are exceptionally decoded. The decoded data of the frame s6 of the encoding unit 403 is selected, and the decoded data of the decoding unit 402 is selected for the frame F7.
[0151]
FIG. 11 shows an example in which the decoding unit 403 is selected as the initial value of the priority decoding unit storage unit 51. That is, FIG. 11 shows an example in which the decoding unit 403 is selected as the decoding unit having the same output size (or the closest output size) as the output size acquired by the output size acquisition unit 12.
[0152]
Here, as shown in FIG. 11, in the encoded data input to the decoding means 401, as in the case of FIG. 10, packet loss (x mark in the figure) is added to the frames F3 and F6. In the encoded data input to the decoding means 402, packet loss (marked with x in the figure) occurs in the frames F2 and F6, and the example of FIG. In FIG. 5, it is assumed that packet loss (marked with x in the figure) occurs in the frames s3 and s4 in the encoded data input to the decoding means 403.
[0153]
In the example of FIG. 11, as indicated by the broken line A in FIG. 11, the data up to the frames s1 and s2 is decoded by the decoding means 403 which is the priority decoding means. Up to this point, since the required output size is the same as the output size of the decoding unit 403, the output data size is not adjusted (enlarged or reduced). Thereafter, it is detected that the frame s3 has lost a packet.
[0154]
At this time, as a result of checking whether or not there is a decoding unit capable of decoding the frame corresponding to the frame s3, in this case, the frame F3 also loses packet loss in the encoded data input to the decoding unit 401. Therefore, it is determined that the frame F3 of the decoding unit 402 can be decoded, and the decoded data of the frame F3 of the decoding unit 402 is selected.
[0155]
Since the decrypted data of the decrypting means 402 is larger than the required output size in the example of FIG. 11, the output size is adjusted (in this case, reduction processing) and requested. The decoded data that has been reduced to the output size (the output size acquired by the output size acquiring unit 12, that is, the same size as the decoded data of the decoding unit 403) becomes the output data. Note that the priority decoding means at this point is updated to the decoding means 402, but as described above, in this case, the decoding of the decoding means 402 having a different output size is performed as an exceptional decoded data selection process. Data is selected.
[0156]
When such exceptional decoded data selection processing is performed, as described above, after the decoded data is selected by the decoding means having different output sizes, it is stored in the priority decoding means storage means 51. The priority decoding means is returned to the decoding means having the required output size (the output size acquired by the output size acquisition means 12).
[0157]
That is, in the case of FIG. 11, after the decoded data by the decoding unit 402 is output as an exceptional decoded data selection process, the priority decoding unit stored in the priority decoding unit storage unit 51 is the original output. Returning to the decoding means 403 having the size, the decoding means 403 becomes the current priority decoding means, and the process for the next frame s4 is performed.
[0158]
As a result, the decoding unit 403, which is the current priority decoding unit, detects that the frame s4 is lost. In this case as well, the frame F4 of the decoding unit 402 is an exceptional decoded data selection process. Will be selected. At this time, since the encoded data input to the decoding unit 402 is larger than the required output size, a reduction process is performed, and the decoded data subjected to the reduction process becomes output data.
[0159]
Then, as described above, after the decoded data by the decoding unit 402 as an exceptional decoded data selection process is output, the priority decoding unit stored in the priority decoding unit storage unit 51 is initialized. Returning to the decoding means 403, processing for the next frame s5 is performed.
[0160]
Since no packet loss is detected in the frame s5, the frame s5 is decoded as it is. Since all the encoded data input to the decoding means 403 is an I picture that can be decoded independently, it is possible to decode only that frame without depending on the state of the immediately preceding frame.
[0161]
Therefore, in the example of FIG. 11, as shown by the broken line A, the decoding order is the frames s1 and s2 of the decoding unit 403, and the frames F3 and F4 of the decoding unit 402 (reduction processing is performed on these). And the order of frames s5, s6, and s7 of the decoding means 403.
[0162]
As is clear from the above description, the second embodiment has the following effects in addition to the effects described in the first embodiment.
First, since decoding can be performed using encoded data that is closest to the size required by the application, data quality degradation can be minimized.
[0163]
Next, when using particularly reduced data, for example, a sample display or a moving image thumbnail display can be easily realized in an image. In realizing this, the second embodiment may receive the reduced encoded data sent from the data transmitting apparatus on the data receiving apparatus side, and the data receiving apparatus only decodes it. Therefore, the processing load on the data receiving apparatus side can be reduced and the load on the network can be reduced. In addition, since a thumbnail image or the like can be viewed by the data receiving device, the data communication system is easy to use from the user side.
[0164]
The present invention is not limited to the above-described embodiment, and various modifications can be made without departing from the gist of the present invention. For example, in the first embodiment and the second embodiment described above, moving image data has been described as an example of real-time data to be processed. However, the present invention is not limited to moving image data. Can be similarly implemented.
[0165]
In the case of music or voice, the encoding unit (encoding target data) to be processed is data of a predetermined time length set in advance. The reduced data in the second embodiment can be used for displaying thumbnail images in the case of image data such as a moving image, but can be used for outputting preview data in the case of music or voice. it can.
[0166]
Further, the present invention can create a processing program in which the processing procedure for realizing the present invention described above is described, and the processing program can be recorded on a recording medium such as a floppy disk, an optical disk, a hard disk, The present invention also includes a recording medium on which the processing program is recorded. Further, the processing program may be obtained from a network.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a first embodiment of a data transmission apparatus of the present invention.
FIG. 2 is a block diagram showing a configuration of a first embodiment of a data receiving apparatus of the present invention.
FIG. 3 is a flowchart showing a decoding processing procedure of the data receiving apparatus of the present invention.
FIG. 4 is a diagram illustrating an example of an encoding process when there are two encoding units as an example of describing an encoding process in the data transmission apparatus of the present invention.
FIG. 5 is a diagram illustrating an example of a decoding process (decoding process including a packet loss) when there are two decoding units as an example of the decoding process in the data receiving apparatus of the present invention.
FIG. 6 is a block diagram showing a configuration of a second embodiment of the data transmitting apparatus of the present invention.
FIG. 7 is a block diagram showing a configuration of a data receiving apparatus according to a second embodiment of the present invention.
FIG. 8 is a diagram in which processing procedures are added so that processing relating to initialization of preferential decoding means storage means in the flowchart of FIG. 3 can be applied to the second embodiment;
FIG. 9 is a diagram in which processing procedures are added so that processing relating to data output in the flowchart of FIG. 3 can be applied to the second embodiment;
FIG. 10 is a diagram for explaining an example of a decoding process (decoding process including packet loss) according to the second embodiment;
FIG. 11 is a diagram for explaining another example of decoding processing (decoding processing including packet loss) according to the second embodiment;
FIG. 12 is a diagram for explaining conventional data communication.
FIG. 13 is a diagram for explaining data communication including conventional packet loss.
FIG. 14 is a diagram for explaining conventional data communication including packet loss.
FIG. 15 is a diagram for explaining data communication including conventional packet loss.
FIG. 16 is a block diagram showing a configuration of a conventional data transmission apparatus.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 Data input means, 2 Data distribution means, 301-30N encoding means, 401-40N decoding means, 5 Decoding means management means, 51 Preferential decoding means Storage means, 52 Decoding means selection means, 6 Data output means DESCRIPTION OF SYMBOLS 10 Data communication path, 11 Data reduction means, 12 Output size acquisition means, 13 Decoded data expansion / reduction means, 31 Data encoding means, 32 Encoded data transmission means, 41 Encoded data reception means, 42 Data error detection Means (packet loss detection means), 43 encoded data decoding means, F1, F2,... Frame, s1, s2,.

Claims (7)

時系列に沿って入力される符号化対象データを符号化して符号化データを出力するデータ送信装置において、
前記符号化対象データを複数に分配するデータ分配手段と、
前記データ分配手段で分配された前記符号化対象データ毎に設けられ、入力される前記符号化対象データに対し、それぞれが独立して符号化処理を行ない、前記符号化処理によって得られたそれぞれの符号化データを送信可能な複数の符号化手段とを有し、
前記複数の符号化手段は、それぞれの前記符号化対象データに対し、それぞれの前記符号化手段間で符号化パラメータを変えて符号化処理することを特徴とするデータ送信装置。
In a data transmitting apparatus that encodes encoding target data input along a time series and outputs encoded data,
Data distribution means for distributing the data to be encoded into a plurality of data;
Provided for each of the encoding target data distributed by the data distribution unit, each of the input encoding target data is independently encoded, and each of the encoding target data obtained by the encoding processing A plurality of encoding means capable of transmitting encoded data;
The data transmission device, wherein the plurality of encoding units perform encoding processing on each of the encoding target data by changing an encoding parameter between the encoding units.
前記請求項1に記載のデータ送信装置から送信されてくる前記符号化データを復号して復号化データを出力するデータ受信装置であって、
前記データ送信装置から送信されてくるそれぞれの前記符号化データを受信して復号化処理可能であるとともに、受信した前記符号化データのデータエラーを検出可能な複数の復号化手段と、
複数の前記復号化手段のいずれかを優先復号化手段として設定可能で、かつ、複数の前記復号化手段のうちのいずれかの復号化手段の復号化データを選択可能な復号化手段管理手段とを有し、
前記復号化手段管理手段は、前記優先復号化手段として設定した復号化手段でのデータエラー検出状態を監視し、データエラーがなければ、前記優先復号化手段での復号化データを選択して出力し、データエラーがある場合には、当該符号化データを適正に復号化可能な他の復号化手段があるか否かを調べ、適正に復号化可能な他の復号化手段の復号化データを選択して出力することを特徴とするデータ受信装置。
A data receiving device that decodes the encoded data transmitted from the data transmitting device according to claim 1 and outputs decoded data,
A plurality of decoding means capable of receiving and decoding each of the encoded data transmitted from the data transmitting device, and detecting a data error of the received encoded data;
A decoding means management means capable of setting any one of the plurality of decoding means as a priority decoding means and capable of selecting the decoded data of any one of the plurality of decoding means; Have
The decoding means management means monitors the data error detection state in the decoding means set as the priority decoding means, and if there is no data error, selects and outputs the decoded data in the priority decoding means If there is a data error, it is checked whether there is any other decoding means that can properly decode the encoded data, and the decoded data of the other decoding means that can properly decode the decoded data. A data receiving apparatus that selects and outputs the data.
前記復号化手段管理手段は、前記データエラーのあった符号化データを適正に復号化可能な他の復号化手段があると判定した場合、前記優先復号化手段を当該復号化手段に更新することを特徴とする請求項2記載のデータ受信装置。  When the decoding means management means determines that there is another decoding means capable of properly decoding the encoded data having the data error, the decoding means management means updates the priority decoding means to the decoding means. The data receiving device according to claim 2. 前記データエラーは、前記符号化対象データに対応する符号化データの欠落であることを特徴とする請求項2または3記載のデータ受信装置。4. The data receiving apparatus according to claim 2 , wherein the data error is a lack of encoded data corresponding to the encoding target data. 時系列に沿って入力される符号化対象データを符号化してその符号化データを出力するデータ送信方法において、
前記符号化対象データを複数に分配し、
分配されたそれぞれの前記符号化対象データをこれらそれぞれの符号化対象データ毎に設けられた複数個のデータ符号化手段に入力させて、前記複数個のデータ符号化手段間で独立し、かつそれぞれの前記符号化対象データに対し、それぞれの前記符号化手段間で符号化パラメータを変えて符号化処理し、それによって得られたそれぞれの符号化データを送信する、
ことを特徴とするデータ送信方法。
In a data transmission method for encoding encoding target data input along a time series and outputting the encoded data,
Distributing the encoding target data to a plurality of;
The dispensing each of the coded data was by the input to the plurality of data encoding means provided for each of each of these coded data, independently among the plurality of data encoding means, and respectively The encoding target data is encoded by changing encoding parameters between the encoding means, and the encoded data obtained thereby is transmitted.
A data transmission method characterized by the above.
請求項5に記載のデータ送信方法によって送信されてくる前記符号化データを復号して復号化データを出力するデータ受信方法であって、
前記送信されてくるそれぞれの前記符号化データを受信して復号化処理可能であるとともに、受信した前記符号化データのデータエラーを検出可能な複数の復号化手段のうちのいずれかの復号化手段を優先復号化手段として設定し、
優先復号化手段として設定された復号化手段でのデータエラー検出状態を監視し、前記データエラーがなければ、当該優先復号化手段での復号化データを選択して出力し、前記データエラーがある場合には、当該符号化データを適正に復号化可能な他の復号化手段があるか否かを調べ、適正に復号化可能な他の復号化手段の復号化データを選択して出力する、
ことを特徴とするデータ受信方法。
A data receiving method for decoding the encoded data transmitted by the data transmitting method according to claim 5 and outputting decoded data,
One of a plurality of decoding means capable of receiving and decoding each of the transmitted encoded data and capable of detecting a data error of the received encoded data Is set as the preferred decoding means,
The data error detection state in the decoding means set as the priority decoding means is monitored, and if there is no data error, the decoded data in the priority decoding means is selected and output, and there is the data error. In this case, it is checked whether there is another decoding means that can properly decode the encoded data, and the decoded data of the other decoding means that can be appropriately decoded is selected and output.
A data receiving method.
時系列に沿って入力される符号化対象データを符号化して符号化データを出力するデータ送信装置と、前記データ送信装置から送信されてくる前記符号化データを受信し、復号化して復号化データを出力するデータ受信装置とを有するデータ通信システムにおいて、
前記データ送信装置は、前記請求項1に記載のデータ送信装置であって、前記データ受信装置は、前記請求項2ないし4のいずれか一項に記載のデータ受信装置であることを特徴とするデータ通信システム。
A data transmitting apparatus that encodes data to be encoded that is input along a time series and outputs encoded data; and the encoded data transmitted from the data transmitting apparatus is received, decoded, and decoded data In a data communication system having a data receiving device that outputs
The data transmission device is the data transmission device according to claim 1, and the data reception device is the data reception device according to any one of claims 2 to 4. Data communication system.
JP2003194448A 2003-07-09 2003-07-09 Data transmitting apparatus and data receiving apparatus, data transmitting method and data receiving method, and data communication system Expired - Fee Related JP4241227B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003194448A JP4241227B2 (en) 2003-07-09 2003-07-09 Data transmitting apparatus and data receiving apparatus, data transmitting method and data receiving method, and data communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003194448A JP4241227B2 (en) 2003-07-09 2003-07-09 Data transmitting apparatus and data receiving apparatus, data transmitting method and data receiving method, and data communication system

Publications (2)

Publication Number Publication Date
JP2005033373A JP2005033373A (en) 2005-02-03
JP4241227B2 true JP4241227B2 (en) 2009-03-18

Family

ID=34205610

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003194448A Expired - Fee Related JP4241227B2 (en) 2003-07-09 2003-07-09 Data transmitting apparatus and data receiving apparatus, data transmitting method and data receiving method, and data communication system

Country Status (1)

Country Link
JP (1) JP4241227B2 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100829558B1 (en) 2005-01-12 2008-05-14 삼성전자주식회사 Scalable audio data arithmetic decoding method and apparatus, and method for truncating audio data bitstream
KR101001746B1 (en) 2005-01-12 2010-12-15 삼성전자주식회사 Scalable audio data arithmetic decoding method and apparatus
JP2007124131A (en) * 2005-10-26 2007-05-17 Hitachi Kokusai Electric Inc Ip communication system
US7849362B2 (en) * 2005-12-09 2010-12-07 International Business Machines Corporation Method and system of coherent design verification of inter-cluster interactions
JP4633025B2 (en) * 2006-09-19 2011-02-16 日本電信電話株式会社 Data signal transfer method and receiving apparatus
KR101001745B1 (en) 2007-01-15 2010-12-15 삼성전자주식회사 Scalable BSAC(Bit Sliced Arithmetic Coding) audio data arithmetic decoding method and apparatus
JP4702397B2 (en) * 2008-05-23 2011-06-15 ソニー株式会社 Content server, information processing apparatus, network device, content distribution method, information processing method, and content distribution system
JP5428734B2 (en) * 2009-10-14 2014-02-26 ソニー株式会社 Network device, information processing apparatus, stream switching method, information processing method, program, and content distribution system

Also Published As

Publication number Publication date
JP2005033373A (en) 2005-02-03

Similar Documents

Publication Publication Date Title
JP4405689B2 (en) Data transmission
JP4405875B2 (en) Method and apparatus for generating data for error correction, generation program, and computer-readable recording medium storing the program
JP5141197B2 (en) Encoder
EP1813115B1 (en) Buffering packets of a media stream
KR100908646B1 (en) Assemble Forward Error Correction Frames
JP2014131297A (en) Video encoding method
US20110029684A1 (en) Staggercasting with temporal scalability
KR20030014709A (en) Video error resilience
JP2006262288A (en) Video data delivery server and video data delivery method
EP1554812B1 (en) System and method for providing error recovery for streaming fgs encoded video over an ip network
EP2538695A1 (en) Image data distribution control method, device, system, and program
JP5344541B2 (en) Data transmission apparatus, transmission method and program
JP4241227B2 (en) Data transmitting apparatus and data receiving apparatus, data transmitting method and data receiving method, and data communication system
US9331815B2 (en) Transmission device, reception device, transmission method, and reception method
US9379845B2 (en) Transmission device, reception device, transmission method, and reception method
JP2015504288A (en) Method and apparatus for providing a streaming service
JPH10341217A (en) Multimedia multiplex communication system
KR100916312B1 (en) An apparatus for transmitting video using adaptive weighted error correction coding and multiple description coding and method thereof
JP4049378B2 (en) Server in bidirectional image communication system, processing method thereof, and program
JP2004120148A (en) Transmitter and receiver for multimedia contents
JP2011077801A (en) Device and method for transmitting data
JPH11205787A (en) Picture communication method and its equipment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060609

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070403

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080430

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080625

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080909

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081007

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20081118

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081209

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081222

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120109

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: 20120109

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130109

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130109

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140109

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees