JP2006211227A - データ送信装置およびデータ送信方法 - Google Patents
データ送信装置およびデータ送信方法 Download PDFInfo
- Publication number
- JP2006211227A JP2006211227A JP2005019794A JP2005019794A JP2006211227A JP 2006211227 A JP2006211227 A JP 2006211227A JP 2005019794 A JP2005019794 A JP 2005019794A JP 2005019794 A JP2005019794 A JP 2005019794A JP 2006211227 A JP2006211227 A JP 2006211227A
- Authority
- JP
- Japan
- Prior art keywords
- data
- packet
- checksum
- receiving device
- receiving
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】同一のコンテンツを複数の受信装置に送信する際の負荷を低減させたデータ送信装置およびデータ送信方法を提供する。
【解決手段】同一のコンテンツデータを複数のデータ受信装置に送信する際、マルチキャスト送信等が許されない場合に、第1受信装置に送信するパケットについてチェックサムを生成するときに得られた積算値をCPU15内のレジスタに保持しておく。そして、第2受信装置以降の受信装置に対してチェックサムを生成するときには、保持した積算値と、第1受信装置との宛先アドレスの差分とに基づいて、第2パケットに対する積算値を算出し、第2チェックサムを生成する。
【選択図】図2
【解決手段】同一のコンテンツデータを複数のデータ受信装置に送信する際、マルチキャスト送信等が許されない場合に、第1受信装置に送信するパケットについてチェックサムを生成するときに得られた積算値をCPU15内のレジスタに保持しておく。そして、第2受信装置以降の受信装置に対してチェックサムを生成するときには、保持した積算値と、第1受信装置との宛先アドレスの差分とに基づいて、第2パケットに対する積算値を算出し、第2チェックサムを生成する。
【選択図】図2
Description
本発明は、画像、音声等の様々なコンテンツデータをストリームデータとして複数の受信装置に配信するデータ送信装置およびデータ送信方法に関する。
昨今、インターネット通信など、様々な通信媒体を介した画像、音声データ等の様々なコンテンツのデータ転送が盛んに行われている。特に、近年においては、インターネット上のデータ転送において、従来から利用されているダウンロード型伝送方式に加えて、ストリーム型伝送方式によるサービスが増加してきている。
ストリーム型伝送方式は、送信側から受信端末にデータ送信が行われている間に、並列して受信データの再生処理を実行するものであり、インターネット電話・遠隔テレビ会議や、たとえばビデオオンデマンド(VOD)等、様々なコンテンツをストリーミング映像配信によって行うサービスに利用されている。
ストリーム型伝送方式は、送信側から受信端末にデータ送信が行われている間に、並列して受信データの再生処理を実行するものであり、インターネット電話・遠隔テレビ会議や、たとえばビデオオンデマンド(VOD)等、様々なコンテンツをストリーミング映像配信によって行うサービスに利用されている。
また、放送・通信・蓄積といったすべてのアプリケーションに対して汎用的に使用できる動画像圧縮方式として、MPEG(Moving Picture Experts Group)が知られている。
上記ストリーム型伝送方式では、MPEGによるトランスポートストリーム(以下、MPEG−TSと称する)を、イーサネット(登録商標)コントローラあるいはIEEE802.11に準拠した無線コントローラにより伝送することが行われている。たとえば、MPEG−TSは、RTP(Real-time Transport Protocol)/UDP(User Datagram Protocol)やHTTP(Hyper Text Transfer Protocol)/TCP(Transport Control Protocol)などのプロトコルに従ってパケット単位で伝送される。
上記ストリーム型伝送方式では、MPEGによるトランスポートストリーム(以下、MPEG−TSと称する)を、イーサネット(登録商標)コントローラあるいはIEEE802.11に準拠した無線コントローラにより伝送することが行われている。たとえば、MPEG−TSは、RTP(Real-time Transport Protocol)/UDP(User Datagram Protocol)やHTTP(Hyper Text Transfer Protocol)/TCP(Transport Control Protocol)などのプロトコルに従ってパケット単位で伝送される。
このようなストリーム型伝送方式では、パケット処理に対する負荷が大きく、高速・大容量のデータ転送におけるボトルネックとなっているため、この負荷を軽減するための様々な技術開発が行われている。
たとえば、下記特許文献1には、イーサネット対応コントローラと弾性バッファとを有し、受信したTCPパケットを再組み立て/再転送することなく処理し、パケット処理の負荷を低減させる技術が提案されている。
たとえば、下記特許文献1には、イーサネット対応コントローラと弾性バッファとを有し、受信したTCPパケットを再組み立て/再転送することなく処理し、パケット処理の負荷を低減させる技術が提案されている。
ところで、ネットワーク上で著作権に対応したコンテンツの伝送を行うための規格として、DTCP/IP(Digital Transmission Content Protection over Internet Protocol)が知られている。DTCP/IPは、IEEE1394用の著作権保護方式として規格化されたDTCP方式をIPネットワークに対応させるために、機能およびセキュリティの強化が図られた伝送方式である。
DTCP/IPによる伝送においては、コンテンツが意図しない宛て先に送信されることを防止するため、送信装置は、いわゆるマルチキャスト送信ではなく、受信装置に対して1:1で認証およびコンテンツの伝送を行う。したがって、送信装置は、同一のコンテンツを複数の受信装置に転送する場合であっても、すべての受信装置に対して送信処理(パケット生成、認証、送信処理)を行う必要があり、その処理負荷が非常に大きいという課題がある。
たとえば、DTCP/IPによる伝送においては、1台の送信装置に対し、規格上34台の受信装置まで接続することが可能であるが、HD(高密度)動画のコンテンツ(25Mbps/本)を8台分(200Mbps)送信する場合、2000MIPS級のCPUを使用してもCPUの負荷率は約80%に達してしまうため、送信側のCPUは実質上他の処理を実行することができない。
したがって、DTCP/IPによる伝送では、送信側のCPUの負荷を低減させることが特に要望される。
したがって、DTCP/IPによる伝送では、送信側のCPUの負荷を低減させることが特に要望される。
上述した観点に鑑み、本発明の目的は、同一のコンテンツを複数の受信装置に送信する際の処理の負荷を低減させたデータ送信装置およびデータ送信方法を提供することにある。
上記課題を克服するために、本発明の第1の観点は、一のコンテンツデータを複数の受信装置に送信するデータ送信装置であって、前記一のコンテンツデータと、受信装置毎に異なる識別データとを有するパケットであって、各受信装置に対応する複数のパケットを生成するパケット生成部と、前記複数の受信装置のうち第1受信装置に対応する第1パケットのデータを積算した積算値に基づいて、前記第1パケットに対する第1チェックサムを生成するチェックサム生成部と、前記第1受信装置と、第1受信装置以外の第2受信装置との識別データの差分を取得し、当該識別データの差分と前記積算値とに基づいて、前記第2受信装置に対応する第2パケットの第2チェックサムを生成するチェックサム更新部と、前記チェックサム生成部またはチェックサム更新部により生成されたチェックサムを含むパケットを、前記複数の受信装置に順次送信するデータ送信部と、を有するデータ送信装置である。
好適には、前記第1パケットは、前記パケット生成部が生成した最初のパケットである。
好適には、前記識別データは、少なくとも受信装置のアドレスデータを含む。
好適には、前記パケット生成部は、受信装置毎に異なるヘッダデータを有する複数のパケットを生成し、前記チェックサム更新部は、前記第1受信装置と、第1受信装置以外の第2受信装置とに対応するヘッダデータの積算値差分を取得し、当該積算値差分と前記積算値とに基づいて、前記第2受信装置に対応する第2パケットの第2チェックサムを生成する。
上記課題を克服するために、本発明の第2の観点は、一のコンテンツデータを複数の受信装置に送信するためのデータ送信方法であって、前記一のコンテンツデータと、複数の受信装置のうち第1受信装置固有の識別データとを有するパケットであって、前記第1受信装置に対応する第1パケットを生成するステップと、第1パケットのデータを積算し、その積算値に基づいて前記第1パケットに対する第1チェックサムを生成し、前記第1パケットに付加するステップと、前記第1パケットを前記第1受信装置に送信するステップと、前記第1受信装置と、第1受信装置以外の第2受信装置との識別データの差分を算出するステップと、当該識別データの差分と前記積算値とに基づいて、前記第2受信装置に対応する第2チェックサムを生成するステップと、前記一のコンテンツデータに対して、前記第2チェックサムと前記第2受信装置の識別データとを付加し、前記第2受信装置に対応する第2パケットを生成するステップと、前記第2パケットを前記第2受信装置に送信するステップと、を有するデータ送信方法である。
好適には、前記識別データは、少なくとも受信装置のアドレスデータを含む。
本発明に係るデータ送信装置の作用は、以下の通りである。
すなわち、パケット生成部は、一のコンテンツデータと、複数の受信装置のうち第1受信装置固有の識別データとを有するパケットであって、前記第1受信装置に対応する第1パケットを生成する。パケット生成部は、第1パケットのデータを積算し、その積算値に基づいて前記第1パケットに対する第1チェックサムを生成し、前記第1パケットに付加する。データ送信部は、第1パケットを第1受信装置に送信する。
次に、第2受信装置に対しては、先ず、第1受信装置との識別データの差分を算出する。そして、チェックサム更新部は、その識別データの差分と、第1チェックサムを生成する際に得られた積算値とに基づいて、第2受信装置に対応する第2チェックサムを生成する。
さらに、パケット生成部は、前記一のコンテンツデータに対して、生成された第2チェックサムと第2受信装置の識別データとを付加し、前記第2受信装置に対応する第2パケットを生成し、データ送信部は、第2パケットを第2受信装置に送信する。
この第2受信装置に対する処理は、残りの複数の受信装置のすべてに対して同様に行われる。
すなわち、パケット生成部は、一のコンテンツデータと、複数の受信装置のうち第1受信装置固有の識別データとを有するパケットであって、前記第1受信装置に対応する第1パケットを生成する。パケット生成部は、第1パケットのデータを積算し、その積算値に基づいて前記第1パケットに対する第1チェックサムを生成し、前記第1パケットに付加する。データ送信部は、第1パケットを第1受信装置に送信する。
次に、第2受信装置に対しては、先ず、第1受信装置との識別データの差分を算出する。そして、チェックサム更新部は、その識別データの差分と、第1チェックサムを生成する際に得られた積算値とに基づいて、第2受信装置に対応する第2チェックサムを生成する。
さらに、パケット生成部は、前記一のコンテンツデータに対して、生成された第2チェックサムと第2受信装置の識別データとを付加し、前記第2受信装置に対応する第2パケットを生成し、データ送信部は、第2パケットを第2受信装置に送信する。
この第2受信装置に対する処理は、残りの複数の受信装置のすべてに対して同様に行われる。
本発明によれば、同一のコンテンツを複数の受信装置に送信する場合に、チェックサム演算における積算値の算出を第1受信装置に対してのみ行えばよいので、全体として、送信に伴う処理の負荷を低減させることができる。
以下、本発明に係るデータ送信装置の一実施形態について添付図面に関連付けて説明する。
図1は、実施形態に係るデータ送受信システムのコンテンツ送信態様を模式的に表した図である。
図1は、実施形態に係るデータ送受信システムのコンテンツ送信態様を模式的に表した図である。
本実施形態に係るデータ送信装置1は、DTCP/IP規格に準拠してコンテンツデータを複数のデータ受信装置に送信する。ここで、DTCP/IP規格のデータ伝送においては、意図しない宛先にデータが送信されないことを保証するため、いわゆるブロードキャストあるいはマルチキャスト送信は許可されていない。
したがって、同一のコンテンツデータを複数のデータ受信装置に送信する場合であっても、図1に示すように、データ送信装置1は、TCP/IPパケット(以下、単にパケット,あるいはTCPパケットと略記する)をその宛先(データ受信装置2a,2b,2c,2d)毎に別々に作成する必要がある。なお、図1では、1つのパケットの送信を1つの矢印で示している。
したがって、同一のコンテンツデータを複数のデータ受信装置に送信する場合であっても、図1に示すように、データ送信装置1は、TCP/IPパケット(以下、単にパケット,あるいはTCPパケットと略記する)をその宛先(データ受信装置2a,2b,2c,2d)毎に別々に作成する必要がある。なお、図1では、1つのパケットの送信を1つの矢印で示している。
データ送信装置1では、送信するパケット毎にそのパケットのチェックサムデータを生成する必要があるが、そのチェックサムの演算方法を改良することで、DTCP/IP規格に準拠したパケット送信に伴うCPUの負荷を低減することを目的としている。
図2は、本発明に係るデータ処理装置を含むデータ送受信システムの一実施形態を示すシステム構成図である。
なお、図2に示すデータ送受信システムでは、データ送信装置1とデータ受信装置2とが1:1でデータの授受を行っているかのように記載されているが、実際には、データ送信装置1から同一のコンテンツデータがデータ受信装置2と同一の構成を有する複数のデータ受信装置に配信される。また、図2に示した例では、地上波デジタル放送による動画コンテンツをTVセットで再生する場合について示している。
なお、図2に示すデータ送受信システムでは、データ送信装置1とデータ受信装置2とが1:1でデータの授受を行っているかのように記載されているが、実際には、データ送信装置1から同一のコンテンツデータがデータ受信装置2と同一の構成を有する複数のデータ受信装置に配信される。また、図2に示した例では、地上波デジタル放送による動画コンテンツをTVセットで再生する場合について示している。
以下、図2に示すデータ送受信システムの構成について説明する。
本実施形態に係るデータ送受信システムは、画像データを送信するデータ送信装置1、画像データを受信するデータ受信装置2、画像データを再生するTVセット3、から構成される。
本実施形態に係るデータ送受信システムは、画像データを送信するデータ送信装置1、画像データを受信するデータ受信装置2、画像データを再生するTVセット3、から構成される。
データ送信装置1は、受信アンテナ11、デジタルチューナ12、チャンネルデコーダ13、DTCP/IP暗号化器14、CPU15、インタフェース16、を含んで構成される。
以下では、MPEGによる符号化を一例としてMPEG−TS(トランスポートストリーム)データの場合を説明するが、パケット毎にチェックサムが演算されるストリームデータであれば、MPEG−TSデータ以外のストリームデータに適用可能である。
以下では、MPEGによる符号化を一例としてMPEG−TS(トランスポートストリーム)データの場合を説明するが、パケット毎にチェックサムが演算されるストリームデータであれば、MPEG−TSデータ以外のストリームデータに適用可能である。
デジタルチューナ12は、受信アンテナ11が受信した地上波デジタル放送波に用いるOFDM(Orthogonal Frequency Division Multiplexing)の周波数を周波数変換によりダウンコンバートして、任意のチャンネル(放送局)の地上波デジタル放送信号S12を抽出する。
チャンネルデコーダ13は、地上波デジタル放送信号S12を、たとえばQPSK復調して復調信号を生成するとともに、当該復調信号から、コンテンツデータとしてのトランスポートストリームデータ(MPEG−TSデータ)S13を生成する。その際、このMPEG−TSデータS13は、所定のバイト長、たとえば1500バイト以下のデータ単位(分割データ)に分割される。
なお、以下の説明においては、送信対象の分割データを、それぞれコンテンツデータ#1,コンテンツデータ#2,…,コンテンツデータ#Nと表記する。
チャンネルデコーダ13は、地上波デジタル放送信号S12を、たとえばQPSK復調して復調信号を生成するとともに、当該復調信号から、コンテンツデータとしてのトランスポートストリームデータ(MPEG−TSデータ)S13を生成する。その際、このMPEG−TSデータS13は、所定のバイト長、たとえば1500バイト以下のデータ単位(分割データ)に分割される。
なお、以下の説明においては、送信対象の分割データを、それぞれコンテンツデータ#1,コンテンツデータ#2,…,コンテンツデータ#Nと表記する。
DTCP/IP暗号化器14は、MPEG−TSデータS13を暗号化し、暗号化MPEG−TSデータS14を生成する。暗号化の方法としては、たとえばAES−128/256方式が使用される。
また、DTCP/IP暗号化器14は、通信を確立させるときに、データ受信装置2のDTCP/IP復号器24と認証処理を行う。
また、DTCP/IP暗号化器14は、通信を確立させるときに、データ受信装置2のDTCP/IP復号器24と認証処理を行う。
CPU15は、データ送信装置1の全体の処理を統括するとともに、暗号化MPEG−TSデータS14に対して、RTP/UDPやHTTP/TCPなどのプロトコルに従ったパケット単位のデータを生成する。
すなわち、CPU15では、暗号化された分割データに対して、TCPヘッダとIPヘッダを付加してTCPパケットを生成する。その際に、TCPパケットに対するチェックサムデータを生成し、そのチェックサムデータをTCPヘッダ内の所定のアドレスに書き込む。CPU15によるチェックサムの演算処理については、後述する。
すなわち、CPU15では、暗号化された分割データに対して、TCPヘッダとIPヘッダを付加してTCPパケットを生成する。その際に、TCPパケットに対するチェックサムデータを生成し、そのチェックサムデータをTCPヘッダ内の所定のアドレスに書き込む。CPU15によるチェックサムの演算処理については、後述する。
CPU15により生成されたパケットは、たとえば、イーサネットコントローラあるいはIEEE802.11に準拠した無線コントローラ等を含むインタフェース16を通して、データ受信装置2に対して送信される。
データ受信装置2は、インタフェース21、CPU22、FIFOバッファ23と、DTCP/IP復号器24、MPEG−TSデコーダ25、を含んで構成される。
データ受信装置2では、データ送信装置1より送信された、動画コンテンツとしてのTCPパケットを順次復号して、TVセット3の表示画面上でその動画コンテンツを再生する。
データ受信装置2では、データ送信装置1より送信された、動画コンテンツとしてのTCPパケットを順次復号して、TVセット3の表示画面上でその動画コンテンツを再生する。
インタフェース21は、送信側からの信号を正しく受信できるように、たとえば、イーサネットコントローラあるいはIEEE802.11に準拠した無線コントローラ等を含む。
CPU22は、データ受信装置2全体の処理を統括するとともに、RTP/UDPやHTTP/TCPなどのプロトコルに従ったパケット単位の受信データからMPEG−TSパケットデータを抽出して、FIFOバッファ23に順次格納する。
CPU22は、データ受信装置2全体の処理を統括するとともに、RTP/UDPやHTTP/TCPなどのプロトコルに従ったパケット単位の受信データからMPEG−TSパケットデータを抽出して、FIFOバッファ23に順次格納する。
なお、MPEG−TSパケットを伝送する際には、ネットワークの特性上、パケットドロップが発生する場合があり、その場合には、パケットの再送信を行われる。
その際、上記パケットドロップおよびパケット再送信が行われた場合に元々のパケット間のタイミングを補償すること、DTCP/IP復号器24での処理による遅延に対してタイミングを補償すること等を目的として、データ受信装置2は、受信したMPEG−TSデータをFIFOバッファ23に一時的に格納する構成としている。
なお、FIFOバッファ23は、CPU22内部に構成されていてもよい。
その際、上記パケットドロップおよびパケット再送信が行われた場合に元々のパケット間のタイミングを補償すること、DTCP/IP復号器24での処理による遅延に対してタイミングを補償すること等を目的として、データ受信装置2は、受信したMPEG−TSデータをFIFOバッファ23に一時的に格納する構成としている。
なお、FIFOバッファ23は、CPU22内部に構成されていてもよい。
CPU22では、送信されてきた各パケットのチェックサムの値が正しい値であるかを確認する。すなわち、送信側で行われたチェックサム演算と同様の演算を行って、各パケットに書き込まれたチェックサムと一致するか否かを確認する。そして、一致していれば、そのパケットをFIFOバッファ23に転送し、一致していなければ、データ送信装置1に対して、そのパケットの再送信を要求する。
なお、本実施形態に係るデータ送受信システムにおいて、データ受信装置2では、受信した単一のパケットに対してのみチェックサム演算を行えばよいので、チェックサム演算に伴うCPU22の負荷は、データ送信装置1のCPU15ほど重くはない。
なお、本実施形態に係るデータ送受信システムにおいて、データ受信装置2では、受信した単一のパケットに対してのみチェックサム演算を行えばよいので、チェックサム演算に伴うCPU22の負荷は、データ送信装置1のCPU15ほど重くはない。
FIFOバッファ23に一時的に格納されたパケットは、所定のタイミングで順次DTCP/IP復号器24により暗号が解除(復号化)され、MPEG−TSとしての信号S24として出力される。そして、このMPEG−TSは、MPEG−TSデコーダ25によりデコードされて、表示のためにTVセット3に送出される。
以上、図2に関連付けて本実施形態に係るデータ送受信システムの構成について述べたが、データ送信装置の構成は、上述した構成に限られない。
すなわち、図2では、データ送信装置がコンテンツデータを受信アンテナ経由で取得する場合について説明したが、これに限られず、データ送信装置は、光ディスクやハードディスク等のデータストレージから取得するようにしてもよい。
すなわち、図2では、データ送信装置がコンテンツデータを受信アンテナ経由で取得する場合について説明したが、これに限られず、データ送信装置は、光ディスクやハードディスク等のデータストレージから取得するようにしてもよい。
図3は、データ送信装置がデータストレージからコンテンツデータを取得する場合の一構成例を示す図である。
図3に示すデータ送信装置4は、光ディスクやハードディスク等のデータストレージ41、バス−ATAブリッジ42、DTCP/IPエンジン43、CPU44、EPROM45、SDRAM46、インタフェース47を含んで構成される。
データ送信装置4では、CPU44と、バス−ATAブリッジ42,DTCP/IPエンジン43,インタフェース47とがシステムバスにより接続され、データストレージ41とバス−ATAブリッジ42とがATAインタフェースにより接続されて、相互にデータ転送が行われる。
図3に示すデータ送信装置4は、光ディスクやハードディスク等のデータストレージ41、バス−ATAブリッジ42、DTCP/IPエンジン43、CPU44、EPROM45、SDRAM46、インタフェース47を含んで構成される。
データ送信装置4では、CPU44と、バス−ATAブリッジ42,DTCP/IPエンジン43,インタフェース47とがシステムバスにより接続され、データストレージ41とバス−ATAブリッジ42とがATAインタフェースにより接続されて、相互にデータ転送が行われる。
図3に示すデータ送信装置4では、先ず、データストレージ41に格納されたコンテンツデータが、バス−ATAブリッジ42を介して、CPU44に転送される。CPU44は、転送されたコンテンツデータをDTCP/IPエンジン43に転送し、そこで暗号化が行われる。そして、暗号化されたコンテンツデータは、CPU44によりパケット化され、イーサコントローラ等を含むインタフェース47を介して図示しないデータ受信装置へ送信される。
図3に示すデータ送信装置4においても、同一のコンテンツデータを複数のデータ受信装置2に配信する際に各パケットに付加するチェックサムの演算は、CPUにより実行される。
図3に示すデータ送信装置4においても、同一のコンテンツデータを複数のデータ受信装置2に配信する際に各パケットに付加するチェックサムの演算は、CPUにより実行される。
次に、データ送信装置1のCPU15(または、データ送信装置4のCPU44)によって行われる、TCPパケットのチェックサム演算処理について、図4〜6に関連付けて説明する。
図4は、TCPパケットの構成の概略を示す図である。
図4に示すように、CPU15により生成されるTCPパケットは、TCPヘッダとコンテンツデータ(分割データ)を含み、TCPヘッダ(以下、ヘッダと略記する)には、パケットの宛先アドレスと送信元アドレスとが書き込まれている。
図4に示すように、CPU15により生成されるTCPパケットは、TCPヘッダとコンテンツデータ(分割データ)を含み、TCPヘッダ(以下、ヘッダと略記する)には、パケットの宛先アドレスと送信元アドレスとが書き込まれている。
宛先アドレスは、以下デスティネーションアドレスとも称し、データ受信装置2固有の識別データである。送信元アドレスは、以下ソースアドレスとも称し、データ送信装置1固有の識別データである。
なお、TCPパケットは、16ビット単位でデータが配列されているとする。
なお、TCPパケットは、16ビット単位でデータが配列されているとする。
CPU15は、図4に示すように、TCPパケットについて最初のアドレスから最後のアドレスまでのすべての16ビットデータを積算し、その積算値を図示しない32ビットのレジスタに保持する。その際、ヘッダの9ワード目のアドレスにチェックサムを書き込むので、この9ワード目のアドレスは、16進数で「0x0000」のデータとし、実質的に積算を行わない。
さらに、32ビットのレジスタに保持されるデータに対して、上位16ビットのデータと下位16ビットのデータとを加算し、その加算結果を反転した結果がチェックサムの値である。このチェックサムがヘッダの9ワード目に書き込まれる。
さらに、32ビットのレジスタに保持されるデータに対して、上位16ビットのデータと下位16ビットのデータとを加算し、その加算結果を反転した結果がチェックサムの値である。このチェックサムがヘッダの9ワード目に書き込まれる。
データ送信装置1のCPU15は、同一のコンテンツデータを送信する場合には、1台目のデータ受信装置に送信するパケットについて上述したチェックサム演算を行うが、2台目以降のデータ受信装置に送信するパケットについては、すでに行われた1台目に対して得られた積算値を利用して演算負荷を低減する。
図5は、同一のコンテンツデータを複数のデータ受信装置に送信する場合の処理を模式的に表した図である。
図5では、コンテンツデータが分割された複数の分割データに対して、順次パケットを生成し、送信する場合の処理を示す。図では、コンテンツデータ#1についての処理を例示するが、他の分割データ(コンテンツデータ#2,#3,…,#N,…)についても同様である。また、図5では、3つのデータ受信装置として、第1〜第3受信装置に同一のコンテンツデータを送信する場合について示す。
図5では、コンテンツデータが分割された複数の分割データに対して、順次パケットを生成し、送信する場合の処理を示す。図では、コンテンツデータ#1についての処理を例示するが、他の分割データ(コンテンツデータ#2,#3,…,#N,…)についても同様である。また、図5では、3つのデータ受信装置として、第1〜第3受信装置に同一のコンテンツデータを送信する場合について示す。
図5において、データ送信装置1では、コンテンツデータ#1がDTCP/IP暗号化器14により暗号化され(ステップST1)、CPU15により、第1受信装置に対してTCP/IPもしくはUDP/IP規格に準拠したパケットが生成される(ステップST2)。そして、生成されたパケットに対して、上述したチェックサム演算を行って、ヘッダにチェックサムを書き込む。さらに、生成されたパケットは、インタフェース16により第1受信装置に送信される(ステップST3)。
なお、チェックサム演算を行う際に、第1受信装置に対するパケットに対して得られた、32ビットレジスタに格納された積算値(X0)は、すべての受信装置に対してコンテンツデータ#1の送信が完了するまで、そのレジスタに保持しておく。
2台目以降の受信装置に対する処理では、すでに1台目向けに生成されたパケットを利用してCPU15の負荷を低減する。すなわち、コンテンツデータ#1は1台目と同一であり、ヘッダでは、宛先アドレスが1台目と異なるだけであるため、1台目向けに生成されたパケットを更新することによって第2受信装置向けのパケットを生成し(ステップST4)、送信する(ステップST5)。
ここで、第1受信装置向けに生成されたパケットを第1パケット、第1パケットに書き込まれたチェックサムを第1チェックサムとし、第2受信装置向けに生成するパケットを第2パケット、第2パケットに書き込むべきチェックサムを第2チェックサムと称する。
すると、第1パケットおよび第2パケットに含まれるコンテンツデータ#1は、全く同一のデータであるため、第2パケットは、第1パケットと比較して、ヘッダの中の宛先アドレス(デスティネーションアドレス)とチェックサムを更新すればよい。
すると、第1パケットおよび第2パケットに含まれるコンテンツデータ#1は、全く同一のデータであるため、第2パケットは、第1パケットと比較して、ヘッダの中の宛先アドレス(デスティネーションアドレス)とチェックサムを更新すればよい。
パケットの更新は、具体的には以下の通りである。
(a)積算値の変更処理
まず、下記式(1)に従って、チェックサム演算における積算値を変更する。
X=X0−a1+a2 …(1)
なお、
a1:第1受信装置の宛先アドレス
a2:第2受信装置の宛先アドレス
X0:32ビットレジスタに保持する積算値
X :更新された積算値
(a)積算値の変更処理
まず、下記式(1)に従って、チェックサム演算における積算値を変更する。
X=X0−a1+a2 …(1)
なお、
a1:第1受信装置の宛先アドレス
a2:第2受信装置の宛先アドレス
X0:32ビットレジスタに保持する積算値
X :更新された積算値
(b)反転処理
上記式(1)により得られた積算値Xを反転処理して、第2チェックサムを生成する。
上記式(1)により得られた積算値Xを反転処理して、第2チェックサムを生成する。
上記処理(a)および(b)に示したように、第2チェックサムを生成する際には、大容量のコンテンツデータを再度積算する必要がないので、CPUの負荷が大幅に軽減される。
第3受信装置向けの処理についても、第2受信装置向けの処理と同様に、第1受信装置向けに生成されたパケットを更新することによって第2受信装置向けのパケットを生成し(ステップST6)、送信する(ステップST7)。
次に、CPU15により行われるチェックサム演算の処理について、フローチャートを用いて、より具体的に説明する。
図6は、同一のコンテンツデータを複数のデータ受信装置に送信する複数のパケットを生成する場合のチェックサムの演算処理を示すフローチャートである。
なお、図6において、ステップST10〜ST17の処理は、図5における第1受信装置向けのパケットに書き込むチェックサムを算出する処理であり、ステップST18〜ST20は、図5における第2受信装置以降の受信装置に対するパケットに書き込むべきチェックサムを算出する処理である。
図6は、同一のコンテンツデータを複数のデータ受信装置に送信する複数のパケットを生成する場合のチェックサムの演算処理を示すフローチャートである。
なお、図6において、ステップST10〜ST17の処理は、図5における第1受信装置向けのパケットに書き込むチェックサムを算出する処理であり、ステップST18〜ST20は、図5における第2受信装置以降の受信装置に対するパケットに書き込むべきチェックサムを算出する処理である。
図6に示すように、第1受信装置向けのパケットについて、各アドレスのデータを順次16ビットレジスタに入力して積算し、積算結果を32ビットレジスタに格納する(ステップST10,11)。ヘッダの9ワード目は、チェックサムを書き込む領域であるため、「0x0000」とし、パケットの最後のアドレスまで積算を行う(ステップST12〜14)。そして、ステップST10〜14で得られた積算値に対して、ステップST15では、送信元アドレス(ソースアドレス)と宛先アドレス(デスティネーションアドレス)、プロトコル番号、パケットのバイト長を加算し、32ビットレジスタに格納する。
さらに、32ビットレジスタの上位16ビットの値と下位16ビットの値を加算して反転し(ステップST16)、第1受信装置向けのパケットに対するチェックサムを出力する(ステップST17)。
さらに、32ビットレジスタの上位16ビットの値と下位16ビットの値を加算して反転し(ステップST16)、第1受信装置向けのパケットに対するチェックサムを出力する(ステップST17)。
第2受信装置以降の受信装置向けのパケットについては、送信対象のコンテンツデータが第1受信装置向けにすでに生成したパケットに含まれるコンテンツデータと異なる場合には(ステップST18)、図6の処理を終了し、ステップST10〜ST17と同様の処理によってチェックサムを生成する。
一方、送信対象のコンテンツデータが第1受信装置向けにすでに生成したパケットに含まれるコンテンツデータと同一である場合には(ステップST18)、前述した式(1)に従って、宛先アドレスの差分に応じてチェックサムを生成し(ステップST19)、出力する(ステップST20)。
一方、送信対象のコンテンツデータが第1受信装置向けにすでに生成したパケットに含まれるコンテンツデータと同一である場合には(ステップST18)、前述した式(1)に従って、宛先アドレスの差分に応じてチェックサムを生成し(ステップST19)、出力する(ステップST20)。
以上説明したように、本実施形態に係るデータ送信装置1によれば、同一のコンテンツデータを複数のデータ受信装置に送信する際、マルチキャスト送信等が許されない場合に、第1受信装置に送信するパケットについてチェックサムを生成するときに得られた積算値をレジスタに保持しておく。そして、第2受信装置以降の受信装置に対してチェックサムを生成するときには、保持した積算値と、第1受信装置との宛先アドレスの差分とに基づいて、第2パケットに対する積算値を算出し、第2チェックサムを生成するので、以下の効果が得られる。
すなわち、2台目以降の受信装置に送信するパケットに対して、再度積算演算を行う必要がないので、データ送信装置1のCPUの負荷が大幅に軽減される。特に、大容量のコンテンツデータを多数の受信装置に送信する場合に、CPUの負荷の軽減代が顕著である。
すなわち、2台目以降の受信装置に送信するパケットに対して、再度積算演算を行う必要がないので、データ送信装置1のCPUの負荷が大幅に軽減される。特に、大容量のコンテンツデータを多数の受信装置に送信する場合に、CPUの負荷の軽減代が顕著である。
なお、本発明は上述した実施形態の内容に限定されず、本発明の要旨を変更しない範囲で当業者が適宜改変し得るものである。
たとえば、上述した実施形態では、最初に送信対象となる受信装置向けのパケットに対してチェックサムを演算し、2番目以降に送信対象となる受信装置向けのパケットに対して、そのチェックサムを更新するように構成したが、チェックサムを演算する対象となるパケットは、最初に送信対象となる受信装置向けのパケットに限られず、任意のタイミングで設定し得る。
たとえば、上述した実施形態では、最初に送信対象となる受信装置向けのパケットに対してチェックサムを演算し、2番目以降に送信対象となる受信装置向けのパケットに対して、そのチェックサムを更新するように構成したが、チェックサムを演算する対象となるパケットは、最初に送信対象となる受信装置向けのパケットに限られず、任意のタイミングで設定し得る。
上述した実施形態では、受信装置間の宛先アドレスの差分を考慮して第2受信装置以降の受信装置に対するチェックサムを生成したが、ヘッダの積算値の差分を考慮してチェックサムを生成してもよい。かかる場合には、宛先アドレスの差分のみを考慮する場合と比較すると、CPUの負荷が若干重くなるが、大容量のコンテンツデータと比較してヘッダデータのデータ量は小さいため、すべての受信装置に対して1からチェックサムを演算する場合と比較すればCPUの負荷軽減の効果がある。
また、受信装置毎にヘッダの内容のうち複数のデータ項目を変更する必要がある場合には、ヘッダの積算値の差分を考慮すべき場合があり得る。
かかる場合には、第1受信装置に対するチェックサム演算の際に、パケット全体の積算値とヘッダの積算値とをそれぞれ32ビットレジスタに格納しておき、第2受信装置以降の受信装置に対するチェックサム演算では、第1受信装置とのヘッダの積算値の差分に基づいて、すでに格納した積算値を変更する。
また、受信装置毎にヘッダの内容のうち複数のデータ項目を変更する必要がある場合には、ヘッダの積算値の差分を考慮すべき場合があり得る。
かかる場合には、第1受信装置に対するチェックサム演算の際に、パケット全体の積算値とヘッダの積算値とをそれぞれ32ビットレジスタに格納しておき、第2受信装置以降の受信装置に対するチェックサム演算では、第1受信装置とのヘッダの積算値の差分に基づいて、すでに格納した積算値を変更する。
本発明の識別データは、本実施形態では宛先アドレスに相当するが、これに限られない。
ヘッダにおいて、受信装置毎に異なる他のデータ項目があれば、その他のデータ項目のデータ差分を考慮して、積算値を変更する必要があることは明らかである。
たとえば、積算値の変更処理を以下式(2)のように行う。
ヘッダにおいて、受信装置毎に異なる他のデータ項目があれば、その他のデータ項目のデータ差分を考慮して、積算値を変更する必要があることは明らかである。
たとえば、積算値の変更処理を以下式(2)のように行う。
X=X0−(i11−i21)−(i12−i22)−… …(2)
なお、
i11,i12,…:第1受信装置の識別データ1,識別データ2,…
i21,i22,…:第2受信装置の識別データ1,識別データ2,…
X0 :32ビットレジスタに保持する積算値
X :更新された積算値
なお、
i11,i12,…:第1受信装置の識別データ1,識別データ2,…
i21,i22,…:第2受信装置の識別データ1,識別データ2,…
X0 :32ビットレジスタに保持する積算値
X :更新された積算値
<改良例>
以下、上述した実施形態の改良例について述べる。
上述した実施形態に係るデータ送信装置1では、第1受信装置に対するチェックサムの演算をCPU内部で行っているが、以下に述べる改良例では、このチェックサム演算処理をCPUの外部のハードウエア(ASIC等)で行うことで、CPUの負荷をさらに低減させることを目的としている。
したがって、本改良例に係るデータ送信装置のシステム構成は、図2に示したデータ送信装置1の構成と同様であり、CPU15の処理の一部(チェックサム生成部分)が外部のチェックサム生成用ASICで実行される。
以下、上述した実施形態の改良例について述べる。
上述した実施形態に係るデータ送信装置1では、第1受信装置に対するチェックサムの演算をCPU内部で行っているが、以下に述べる改良例では、このチェックサム演算処理をCPUの外部のハードウエア(ASIC等)で行うことで、CPUの負荷をさらに低減させることを目的としている。
したがって、本改良例に係るデータ送信装置のシステム構成は、図2に示したデータ送信装置1の構成と同様であり、CPU15の処理の一部(チェックサム生成部分)が外部のチェックサム生成用ASICで実行される。
図7は、チェックサム生成用ASIC17の構成を示す図である。
チェックサム生成用ASIC17は、16ビットのシフトレジスタ171、32ビットのレジスタ172,173、加算器174、遅延器175を含む。
図7において、シフトレジスタ171には、コンテンツデータ(分割データ)が順次16ビット単位でチェックサム生成用ASIC17に入力されてシフトされる。レジスタ172,173には、コンテンツデータのデータの積算値が格納されていく。
レジスタ173には、チェックサム生成用ASIC17がパケットを処理する際には、外部のCPUによりCLR端子を介してリセットされる。
チェックサム生成用ASIC17は、16ビットのシフトレジスタ171、32ビットのレジスタ172,173、加算器174、遅延器175を含む。
図7において、シフトレジスタ171には、コンテンツデータ(分割データ)が順次16ビット単位でチェックサム生成用ASIC17に入力されてシフトされる。レジスタ172,173には、コンテンツデータのデータの積算値が格納されていく。
レジスタ173には、チェックサム生成用ASIC17がパケットを処理する際には、外部のCPUによりCLR端子を介してリセットされる。
チェックサム生成用ASIC17は以下の通り動作する。
まず、データ#1とレジスタ173の積算値(最初は「0」)と加算器174により加算されて、レジスタ172にデータ#1が格納される。
次に、レジスタ172に格納されたデータ#1は遅延器175により遅延されてレジスタ173に転送される。さらに、シフトレジスタ171でシフトされたデータ#2と、レジスタ173に格納されたデータ#1とが加算され、(データ#1+データ#2)がレジスタ172に格納される。
以上、同様に処理が行われる結果、レジスタ172には、コンテンツデータの積算値が格納されることになる。
まず、データ#1とレジスタ173の積算値(最初は「0」)と加算器174により加算されて、レジスタ172にデータ#1が格納される。
次に、レジスタ172に格納されたデータ#1は遅延器175により遅延されてレジスタ173に転送される。さらに、シフトレジスタ171でシフトされたデータ#2と、レジスタ173に格納されたデータ#1とが加算され、(データ#1+データ#2)がレジスタ172に格納される。
以上、同様に処理が行われる結果、レジスタ172には、コンテンツデータの積算値が格納されることになる。
さらに、レジスタ172に格納された積算値に対して、送信元アドレス(ソースアドレス)と宛先アドレス(デスティネーションアドレス)、プロトコル番号、パケットのバイト長を加算する。この32ビットの加算結果のうち上位16ビットと下位16ビットと加算し、その結果を反転する。この積算値に対する処理を、チェックサム生成用ASIC17内に論理回路で構成する。
以上のように、同一のコンテンツデータを複数の受信装置に配信する際に、最初に送信対象となる受信装置に対するチェックサムの生成をCPUによらずに行うことで、さらにCPUの負荷を軽減することができる。
1…データ送信装置、11…受信アンテナ、12…デジタルチューナ、13…チャンネルデコーダ、14…DTCP/IP暗号化器、15…CPU、16…インタフェース、2,2a,2b,2c,2d…データ受信装置、21…インタフェース、22…CPU、23…FIFOバッファ、24…DTCP/IP復号器、25…MPEG−TSデコーダ、3…TVセット、4…データ送信装置、41…データストレージ、42…バス−ATAブリッジ、43…DTCP/IPエンジン、44…CPU、45…EPROM、46…SDRAM、47…インタフェース、5…ルータ、17…チェックサム生成用ASIC、171…シフトレジスタ、172,173…レジスタ、174…加算器、175…遅延器。
Claims (6)
- 一のコンテンツデータを複数の受信装置に送信するデータ送信装置であって、
前記一のコンテンツデータと、受信装置毎に異なる識別データとを有するパケットであって、各受信装置に対応する複数のパケットを生成するパケット生成部と、
前記複数の受信装置のうち第1受信装置に対応する第1パケットのデータを積算した積算値に基づいて、前記第1パケットに対する第1チェックサムを生成するチェックサム生成部と、
前記第1受信装置と、第1受信装置以外の第2受信装置との識別データの差分を取得し、当該識別データの差分と前記積算値とに基づいて、前記第2受信装置に対応する第2パケットの第2チェックサムを生成するチェックサム更新部と、
前記チェックサム生成部またはチェックサム更新部により生成されたチェックサムを含むパケットを、前記複数の受信装置に順次送信するデータ送信部と、
を有するデータ送信装置。 - 前記第1パケットは、前記パケット生成部が生成した最初のパケットである
請求項1記載のデータ送信装置。 - 前記識別データは、少なくとも受信装置のアドレスデータを含む
請求項1記載のデータ送信装置。 - 前記パケット生成部は、受信装置毎に異なるヘッダデータを有する複数のパケットを生成し、
前記チェックサム更新部は、前記第1受信装置と、第1受信装置以外の第2受信装置とに対応するヘッダデータの積算値差分を取得し、当該積算値差分と前記積算値とに基づいて、前記第2受信装置に対応する第2パケットの第2チェックサムを生成する
請求項1記載のデータ送信装置。 - 一のコンテンツデータを複数の受信装置に送信するためのデータ送信方法であって、
前記一のコンテンツデータと、複数の受信装置のうち第1受信装置固有の識別データとを有するパケットであって、前記第1受信装置に対応する第1パケットを生成するステップと、
第1パケットのデータを積算し、その積算値に基づいて前記第1パケットに対する第1チェックサムを生成し、前記第1パケットに付加するステップと、
前記第1パケットを前記第1受信装置に送信するステップと、
前記第1受信装置と、第1受信装置以外の第2受信装置との識別データの差分を算出するステップと、
当該識別データの差分と前記積算値とに基づいて、前記第2受信装置に対応する第2チェックサムを生成するステップと、
前記一のコンテンツデータに対して、前記第2チェックサムと前記第2受信装置の識別データとを付加し、前記第2受信装置に対応する第2パケットを生成するステップと、
前記第2パケットを前記第2受信装置に送信するステップと、
を有するデータ送信方法。 - 前記識別データは、少なくとも受信装置のアドレスデータを含む
請求項5記載のデータ送信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005019794A JP2006211227A (ja) | 2005-01-27 | 2005-01-27 | データ送信装置およびデータ送信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005019794A JP2006211227A (ja) | 2005-01-27 | 2005-01-27 | データ送信装置およびデータ送信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006211227A true JP2006211227A (ja) | 2006-08-10 |
Family
ID=36967600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005019794A Pending JP2006211227A (ja) | 2005-01-27 | 2005-01-27 | データ送信装置およびデータ送信方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006211227A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008109473A (ja) * | 2006-10-26 | 2008-05-08 | Canon Inc | データ処理装置及び方法 |
-
2005
- 2005-01-27 JP JP2005019794A patent/JP2006211227A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008109473A (ja) * | 2006-10-26 | 2008-05-08 | Canon Inc | データ処理装置及び方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5715669B2 (ja) | ネットワークにおけるストリーミングデータコンテンツ | |
TWI419565B (zh) | 緩衝媒體流之封包的方法、緩衝媒體流之系統、用於傳送之裝置與晶片組、伺服器、以及電腦程式產品 | |
US11368731B2 (en) | Method and apparatus for segmenting data | |
US7908624B2 (en) | System and method for just in time streaming of digital programs for network recording and relaying over internet protocol network | |
JP5738865B2 (ja) | Mpeg−2ts多重化マルチメディアストリームのエレメンタリパケットの選択による、mpeg−2ts多重化マルチメディアストリームの配信 | |
JP4345816B2 (ja) | ネットワークシステムおよび中継装置 | |
JP6617809B2 (ja) | 復号装置、復号方法、および復号用プログラム | |
EP2486683B1 (en) | A digital receiver and corresponding digital transmission system server | |
KR20160140873A (ko) | Mmtp 디캡슐화 버퍼의 시그날링 및 동작 | |
JP6753500B2 (ja) | 受信機器、および復号・提示方法 | |
US20090268730A1 (en) | Data transmitting apparatus and method and program for controlling transmission rate | |
JP2022121493A (ja) | 受信方法および端末 | |
US20060222181A1 (en) | Method for transporting real-time audio and video data | |
US20100119059A1 (en) | Integrated Circuit Device and Data Transmission System | |
JP2006211227A (ja) | データ送信装置およびデータ送信方法 | |
JP4491290B2 (ja) | パケットエラー監視型mpegデコーダ、mpeg映像伝送システム及びmpeg映像伝送方法 | |
JP4561240B2 (ja) | データ処理装置およびデータ処理方法並びにデータ送受信システム | |
JP2006323455A (ja) | 送信装置、中継装置 | |
CN101291292B (zh) | 调制解调器前端设备和方法 | |
WO2023013124A1 (ja) | 再送出装置、再送出方法、受信装置、及び受信方法 | |
JPH11308582A (ja) | データ受信装置及び方法、並びにデータ送信方法 | |
JP2015159469A (ja) | 多重化装置、送信装置、送信システム、多重化方法、送信方法 | |
JP2009182628A (ja) | 誤り訂正符号生成装置、誤り訂正符号生成プログラム、データ提供装置及びデータ提供システム |